Indexへ
(15772)//【15752】→(15753)
------------------------
【タイトル】【要望】範囲コマンドに移行する外部変形
【記事番号】 15752 (*)
【 日時 】09/09/21 12:26
【 発言者 】LA

みなさん、こんにちは。

外変を作るとき、LAがよく思う事です。
JWWから渡された選択内容から特定の物を抽出し、それに対し様々な操作を行う
というのが、外変の基本形の一つだと思うのですが、前半の、抽出の部分だけ外変で行い、後半の、様々な操作を行う という部分について、あえて外変でやる必要ない というよりむしろ JWW上でやりたい と...

外変上でしたら、複数線色種、文字色、文字列の内容 図形角度 図形寸法 等も選択条件として利用でき、選択条件を固定したり、特定用途に特化した選択条件というのもできますし、それを移動・複写・属変するだけなら、JWW上で出来た方が使い勝手もいいと思います。
(もっと欲をいえば、範囲コマンドに移行してから抽出された選択範囲を手動で修正した後、それをそのまま次の外変の選択範囲に利用できたり...)


○○と○○eの間を選択範囲にし、これが使われているjwc_temp.txtを読み込んだ場合は終了後、範囲コマンドに移行する。といった仕様がいいと思います。 
(○○に何が入るか悩みますね。se(lect)だとソリッドと被るし、ch(eck)だと文字と被るし、m(ar)kとか、何か他にいいのないかな...)


これが実現されると、いろいろと出来る事の幅が広がると思いますがいかがでしょうか。


Indexへ
(15752)←【15753】→(15755)
------------------------
【タイトル】Re(1):【要望】範囲コマンドに移行する外部変形
【記事番号】 15753 (15752)
【 日時 】09/09/21 18:37
【 発言者 】sugi

sugiです。LAさん、こんにちは。

LAさん wrote:
> 外変上でしたら、複数線色種、文字色、文字列の内容 図形角度 
> 図形寸法 等も選択条件として利用でき、選択条件を固定したり、
> 特定用途に特化した選択条件というのもできますし、それを移動・
> 複写・属変するだけなら、JWW上で出来た方が使い勝手もいいと思
> います。

外変で選択させておいて「範囲」−「前範囲」で選択させ直したら
どうだろう・・・と思い、こんな ruby の外部変形を考えてみたの
ですが、どうでしょう。

「select.bat」を実行後、作成された「select.lzh」を展開して
外部変形のバッチファイルを取り出して下さい。

=== select.bat (ここから) ===
ruby -Ks -x "%~f0"
exit

#! ruby
$stderr=open("error.log","w")
$stdout=open("select.lzh","wb")
print "
JfMtbGg1LcoDAAC0BgAAtJA1OyABDJTNiM2RSZHwLkJBVAa6TQUAQCAAAAAD
bGuDEbbUh52k+/z4VOOp1jrmyyUExWW6XKLOyRWyqcFKRSN/I5a4/g37HLdM
JX3whtrqTXRCRwbg3IHILbgOI4Kg4twAjlvObjvZ/tt26mOAQI5MIsbWNpt6
mzV2AeX1fR6s1bN0IoagmnBgHfvooYBkGDQ00UDsNDeiim4tNoy8HGuLg8sz
zxcII+9H8kfKXozG7F9Beb6fwL95fPxas7bi/htyzmdFlPLn9Pj+w7tR2U8s
zdT05i5yfhgngpxoHF1hRwmU2me+Hhm4Cmcaa88CUv7DM8x/7gxFCmaDaZg1
oePgBvRNXCCxY1SZCA6el67vooSVGcF01ZB8QOttRQgJdfIB+G9wA0sgNLuw
A0PnvrTV1p1bGuict1rGxVr2kUOq0CKFD3gSu3dgRQoA4/xz24yR6ketH4eX
8y8/H5i854p9+AjYn32B4xPUQm4jfVdHgCoGIKZ3g7AOEkzAZUqaGAzLnxfL
DhfEBKLC9SXG6JL2I23fgkTJHJ6Gb9fDqePzeD9qKytLPeM9wCaYWVpHWbcA
n6S4GAdtlVt0chTDIjCmde2K+DAIlwwc2OI1HshKLkTzZlgAXob5nkPxrBBo
g7KxqOABgt2jI7Zz2pZrKvCiopQyCCSiXcES3IEWjA9RJRJmzWN5rJJoyvSr
V112QgUMOKHIVYMPCKRe+IkL70iOF7Hda36IamiFPcW3TXOebMemtq4J108A
Vq9JewzVkgANvaafw4yK7R1p5YkZlamPHUaJh+a6QVEO9FcNMks6uRMW+uQZ
6JKB7gia43xYHxwvNyyWFTc3VAshTVPHkmAEmKsezH34+WNzxcxf05Bl9BjV
0QsYDV9ngDaE83vi4IKIdCrtHur7GEADhEu2fktFM/ORLsLImy5YBLbbcSqv
Q4tZzC7NBUCSgElmbLKW6eiUOK40dZcxvjaBJeM8RXj06SrMpJ97KetS+U9u
Djrh+oMN8Ac1g+34WGGMH9X9XT+HS0++fURWa2Cn8lqgFjScYJOLMLAnkkv2
5yl85eY3/1l/Iv3Hme+L21t6sL9fDPWSrkN2ZZs2T+kpMDjjN8U8ALqLG+Dy
dHi5Pq5/J+4U/8Yg1L+TWG8R8burdf7C8Af/c7Qxu3rr8sE0j4Df85UKS/a7
SwVFv9YNWEhBvGCpq0pzZhnvpx+mOvH4I70dcvRm+svrNgviY9uqfTkiAJ8R
NgUEF3AI2RSTKW7o9hSWknTidorK9k4L7ICyLraahqZpgoLH507excZ1du1a
sV+3Yt10fc+LqdT4vT6nzbsooAA=
".unpack("m")
=== select.bat (ここまで) ===

LAさん wrote:
> これが実現されると、いろいろと出来る事の幅が広がると思います
> がいかがでしょうか。

標準でこういった機能が備わると確かに便利そうですね。どういう
風に選択されるのが嬉しいかはいろんな意見が出そうですが、例え
ば外部変形実行後に図形や文字が選択状態になってくれれば、文字
を検索させる外部変形とかを作ってみたいです。

--
sugi


Indexへ
(15753)←【15755】→(15754)
------------------------
【タイトル】Re(2):【要望】範囲コマンドに移行する外部変形
【記事番号】 15755 (15753)
【 日時 】09/09/22 13:59
【 発言者 】LA

▼sugiさん:
こんにちは。レスありがとうございます。

>外変で選択させておいて「範囲」−「前範囲」で選択させ直したら
>どうだろう・・・と思い、こんな ruby の外部変形を考えてみたの
>ですが、どうでしょう。
早速試してみました。
外変開始時に選択した図形を、WSHを使って前範囲で再選択する外変ですね。
API関数に渡す記号の意味がよく分からないけど、いろいろと参考になります。ありがとうございました。

もしや、と思い、
echo he 範囲選択 > jwc_temp.txt を、echo h# 範囲選択 >> jwc_temp.txt (改行) jwc_temp.txt
に変更し、外変を起動して適当な範囲を指定して(範囲1とする)エデイタでhqをhd に、適当な図形を削って試してみました。
(範囲1から図形が削られた状態を範囲2とする。この範囲が取得できれば成功です)

前範囲の時点で データがありません 表示 (範囲0とする)
戻るで外変開始前に戻り、前範囲で 範囲1
さらに 進む→前範囲 だと 範囲1のままで、
直線コマンドに移ると、外変で削った図形が消え、
さらに範囲→前範囲で範囲0
で、やはり、範囲2は取得できませんでした。

ここで一旦外変を起動し直して先と同じようにエディタ上で図形を削り、
全選択(範囲3とする)して、
戻る→前範囲 すると 範囲3ではなく、削られる図形を含めた全範囲
という結果になりました。

やはり、前範囲を使って外変で抽出した範囲を取得するのは、現時点では無理なのかな...


>標準でこういった機能が備わると確かに便利そうですね。どういう
>風に選択されるのが嬉しいかはいろんな意見が出そうですが、例え
>ば外部変形実行後に図形や文字が選択状態になってくれれば、文字
>を検索させる外部変形とかを作ってみたいです。
やはり、これが実現されると嬉しいですよね。同意して頂き、ありがとうございます。


昨日言った他にも、
選択条件として、他図形が利用できたり(特定文字列の原点を通る直線 とか)、
範囲コマンドから移行できるコマンドだって、ハッチとか複線とかブロック化とか重複・連結処理とか測定とか、結構あります。

選択後の作業にあえて外変を使わない必要もない という意見もあると思うけど、外変中はJWWが止まっているんで、図面を見たくても、直前に保存して別にJWW立ち上げるとかしないとできないんですよね。単純な移動・複写にしても、JWW上でなら仮表示できますし、意外に、結構メリットはあると思います。


Indexへ
(15755)←【15754】→(15756)
------------------------
【タイトル】Re(1):【要望】範囲コマンドに移行する外部変形
【記事番号】 15754 (15752)
【 日時 】09/09/21 18:43
【 発言者 】mirror

▼LAさん:
年のせいでボケているのか、生来読解力が不足しているのか
あまり内容が理解できていませんが

範囲選択の条件を予め指定しておいて、範囲指定(図形要素指定)を行いたい
という意味ではないかと解釈しました
そのような意味合いであれば、下記のような考え方で可能になると思います

jwwの範囲指定で、作図領域の矩形範囲を指定してクリップボードにコピーし
上記の矩形範囲を消去します(敢えて消去する必要はありませんが)
クリップボードデータを、予め指定しておいた条件により選別処理し
条件に一致する要素群と不一致要素群に分け、一時記憶領域に保存します
不一致要素群のデータでクリップボードを書換え、貼り付けで作図領域に書き戻します
後は、一致する要素群を選択データとしてjwwに渡す事により処理する事ができます

外部変形機能というよりは、範囲選択(図形要素指定)のスペシャル版のような理解ですが
どうでしょう・・・か
勿論、外部変形機能や座標ファイルでも同様な選別処理迄は可能ですが
ブロック図形内部データへのアクセスと選択データをjwwに渡すコマンド割込みの観点から
今回はクリップボードデータ処理の方向から記述してみました

尤も
上記では如何にも簡単そうに記述して有りますが
実際に機能を実現できるだけの能力があるとすれば
条件により要素を選別処理した時点で、あえてjwwでやる必要も無く
全ての、目的とする処理を完了させてしまう・・・と私は思います

取敢えず、外部変形機能で、条件により図形要素を選別処理し
範囲選択コマンドに、一致する要素群を選択データとして渡す事が可能になれば
用途が広がる可能性は有るだろうと思います


Indexへ
(15754)←【15756】→(15757)
------------------------
【タイトル】Re(2):【要望】範囲コマンドに移行する外部変形
【記事番号】 15756 (15754)
【 日時 】09/09/22 15:21
【 発言者 】LA

▼mirrorさん:
こんにちは。レスありがとうございます。

>あまり内容が理解できていませんが
...
>外部変形機能というよりは、範囲選択(図形要素指定)のスペシャル版のような理解ですが
あまり、文章書くのうまくないんで、すいません。
ご指摘の通り、範囲選択のスペシャル版ですね。


>jwwの範囲指定で、作図領域の矩形範囲を指定してクリップボードにコピーし
>上記の矩形範囲を消去します(敢えて消去する必要はありませんが)
>クリップボードデータを、予め指定しておいた条件により選別処理し
>条件に一致する要素群と不一致要素群に分け、一時記憶領域に保存します
>不一致要素群のデータでクリップボードを書換え、貼り付けで作図領域に書き戻します
>後は、一致する要素群を選択データとしてjwwに渡す事により処理する事ができます
クリップボードは解析すればいいとして(それでも閾は高いです)、問題は、最後の、要素群を選択データとしてjwwに渡す の部分ですね。貼り付けでは選択の内容が変化しないので、JWW側に、座標以外の方法で、外部から直接選択内容を指定できるしくみがなければ出来ないと思いますが、それができるという事でしょうか。


>取敢えず、外部変形機能で、条件により図形要素を選別処理し
>範囲選択コマンドに、一致する要素群を選択データとして渡す事が可能になれば
>用途が広がる可能性は有るだろうと思います
ご同意、ありがとうございます。


Indexへ
(15756)←【15757】→(15764)
------------------------
【タイトル】Re(3):【要望】範囲コマンドに移行する外部変形
【記事番号】 15757 (15756)
【 日時 】09/09/23 13:03
【 発言者 】mirror

▼LAさん:
>>一致する要素群を選択データとしてjwwに渡す・・・
・・・流石ですね、気が付かれたようです
残念ながら、jwwでは外部から直接選択内容を指定する仕組みは無いようですが
力技としてであれば、幾つかの手法が考えられます
判りやすいのは、jwwの範囲選択オプションの前範囲指定を使用する方法です
つまり、条件に一致する要素群のみが前範囲として指定できれば良い事になります

>>選択データをjwwに渡すコマンド割込みの観点・・・
上記の一文は、その意味で記述していますが、具体的には、jwwのコマンド発生ツール等で
範囲指定(矩形指定)→コピー→範囲内要素全削除→選別処理→貼付(不一致要素群を復元)→
貼付(一致要素群を別の場所に退避)→範囲指定→全選択→範囲指定→前範囲→(目的のコマンド)
のような手順で可能だと考えています(文章だと長いですが、処理は一瞬でした)

目的の作業内容が
>移動・複写・属変するだけ・・・
であれば、貼付コマンドのみで処理を達成する事も可能な場合がありそうですが
やはり、処理手順は目的の作業内容に左右されるようです
jwwに外部から直接選択内容を指定する仕組み、があれば、手順は簡略できそうです

何れにしても
範囲選択(図形要素指定)のスペシャル版と云う事であれば
外部変形機能や座標ファイルで利用する中間ファイルの、jwwでの読み込み時に
範囲選択属性記号を付けておくと、範囲指定の前範囲として一時記憶領域に退避される
というのが、すっきりしてていいのかも知れません
範囲選択属性記号 要素行頭に[!]とか単純なものが、私は好みです

jwwに外部から直接選択内容を指定する仕組みの場合だと
属性フラグに選択状態フラグのビットがあれば嬉しいと思います
それにしても、考えてみれば、何かしらのフラグは有りそうな気がしますが


Indexへ
(15757)←【15764】//(15761)
------------------------
【タイトル】Re(4):【要望】範囲コマンドに移行する外部変形
【記事番号】 15764 (15757)
【 日時 】09/09/27 19:39
【 発言者 】LA

▼mirrorさん:
こんにちは。レスが遅くなってしまいごめんなさい。

>範囲指定(矩形指定)→コピー→範囲内要素全削除→選別処理→貼付(不一致要素群を復元)→
>貼付(一致要素群を別の場所に退避)→範囲指定→全選択→範囲指定→前範囲→(目的のコマンド)
>のような手順で可能だと考えています(文章だと長いですが、処理は一瞬でした)
不一致要素群の復元は、全選択の後ですよね。
一致要素群のみにして全選択→前範囲 てのは先のsugiさんへのレスの時に気がついたけど、不一致要素群の復元に 戻る を使う事を考えていたんで、そこから先がつながりませんでした...


>何れにしても
>範囲選択(図形要素指定)のスペシャル版と云う事であれば
>外部変形機能や座標ファイルで利用する中間ファイルの、jwwでの読み込み時に
>範囲選択属性記号を付けておくと、範囲指定の前範囲として一時記憶領域に退避される
>というのが、すっきりしてていいのかも知れません
>範囲選択属性記号 要素行頭に[!]とか単純なものが、私は好みです
やっぱり、mirrorさんのおっしゃるように、選択図形毎に印をつける方式もいいですよね。
実をいうと、最初の提案の時、コマンドで囲むか、コマンドそのものを変えるか迷ったんですよ。
後者は、互換性の面で気になって、結局、提案しなかったんですが、後でよく考えたら、JWWからの書出データに影響があるわけじゃないんで、コマンドが変わる仕様でも問題ないですよね。
ただ、属性指定なんかは以降全てに影響する仕様なんで、要素毎ではなく、範囲指定できるような方法も、あった方がいいと思います。この場合、逆に範囲内でも選択から除外できるような範囲選択属性記号もあると便利だと思います。


あと、後で考えて、やはりあった方がいいな と思っているのが、hd◎選択データを削除 と同じ立ち位置で、
記述要素を全て選択状態とする (図形の書き換えは行われない。データの並び替え・追加は不可)
指定です。括弧内の後半は、同座標図形が複数ある場合や該当図形が存在しない場合の対策です。


>jwwに外部から直接選択内容を指定する仕組みの場合だと
>属性フラグに選択状態フラグのビットがあれば嬉しいと思います
>それにしても、考えてみれば、何かしらのフラグは有りそうな気がしますが
属性フラグはWORD型で16bit、公表されてるのが12bitまでですから、4bit空きがありますね。確かに、これを選択フラグとして使えれば、嬉しいですね。