Indexへ
(2490)//【2492】→(2493)
------------------------
【タイトル】外部変形の機能について(要望)
【記事番号】 2492 (*)
【 日時 】05/07/05 08:41
【 発言者 】seijyu

Jw_cadには、いつもお世話になっております。

さて、私のやりたい事は以下です。
レイヤグループ0レイヤ0の線要素を選択して外部変形(自作)を起動→
レイヤグループ0レイヤ1に処理した線要素を書き込む。
次に
同じ外部変形を再度実施するにあたり、既に書き込まれた
レイヤグループ0レイヤ1の要素は邪魔になるので削除します。
この削除を忘れた場合、最初に書き込まれた要素と次に書き込まれた要素が
重なりあってしまい、問題となります。

そこで
1)指定したレイヤグループ・レイヤの要素を削除する機能
2)レイヤグループ・レイヤの「線要素・文字要素のあるなし」を書き出す機能
 があれば対処できると思い探したのですが、見つかりませんでした。

単なる私の見落としで既に実装されておりましたら教えて下さい。
又、私のやりたい事を別のアプローチで解決する方法がありましたらご教授
頂ければ幸いです。

作者様へ
1),2)の機能が、もし未実装でありましたら両方もしくわどちらかでも
構いませんので、ご検討頂けますようお願い致します。


Indexへ
(2492)←【2493】→(2498)
------------------------
【タイトル】Re(1):外部変形の機能について(要望)
【記事番号】 2493 (2492)
【 日時 】05/07/05 09:06
【 発言者 】スター

▼seijyuさん:
>Jw_cadには、いつもお世話になっております。
>
>さて、私のやりたい事は以下です。
>レイヤグループ0レイヤ0の線要素を選択して外部変形(自作)を起動→
>レイヤグループ0レイヤ1に処理した線要素を書き込む。
>次に
>同じ外部変形を再度実施するにあたり、既に書き込まれた
>レイヤグループ0レイヤ1の要素は邪魔になるので削除します。
>この削除を忘れた場合、最初に書き込まれた要素と次に書き込まれた要素が
>重なりあってしまい、問題となります。

トライアルのような外変ですか、それで消してから再実行するのですか?
外変が毎回レイヤ1に書き込むようにしているのですか?
もしそうであれば、外変の書き込み固定を外し、右クリックでレイヤ2を書き込みレイヤにしておけばレイヤ2に書き出せますが、それではだめなのですか?(必要ならレイヤ1は非表示にする)

>
>そこで
>1)指定したレイヤグループ・レイヤの要素を削除する機能

一発で消えるようなコマンドは危険だと思い賛成できません。
ALLでそのレイヤのみ書き込みレイヤにし、全選択、消去でいいと思います。

>2)レイヤグループ・レイヤの「線要素・文字要素のあるなし」を書き出す機能
> があれば対処できると思い探したのですが、見つかりませんでした。

レイヤ表示バーの左右の赤線が線、文字を示していますが?

>
>単なる私の見落としで既に実装されておりましたら教えて下さい。
>又、私のやりたい事を別のアプローチで解決する方法がありましたらご教授
>頂ければ幸いです。
>
>作者様へ
>1),2)の機能が、もし未実装でありましたら両方もしくわどちらかでも
>構いませんので、ご検討頂けますようお願い致します。


Indexへ
(2493)←【2498】→(2501)
------------------------
【タイトル】Re(2):外部変形の機能について(要望)
【記事番号】 2498 (2493)
【 日時 】05/07/05 10:07
【 発言者 】seijyu

▼スターさん:コメントありがとうございます。

>トライアルのような外変ですか、それで消してから再実行するのですか?
消さないと線が重なりあうからです。

>外変が毎回レイヤ1に書き込むようにしているのですか?
そうです。

>もしそうであれば、外変の書き込み固定を外し、右クリックでレイヤ2を書き込みレイヤにしておけばレイヤ2に書き出せますが、それではだめなのですか?(必要ならレイヤ1は非表示にする)
訳あってレイヤ1の固定は変えられません。

>レイヤ表示バーの左右の赤線が線、文字を示していますが?
判っております。その状態を書き出してほしいという要望です。


Indexへ
(2498)←【2501】→(2502)
------------------------
【タイトル】Re(3):外部変形の機能について(要望)
【記事番号】 2501 (2498)
【 日時 】05/07/05 10:47
【 発言者 】スター

▼seijyuさん:
ということは

>1)指定したレイヤグループ・レイヤの要素を削除する機能

はコマンドの追加

>2)レイヤグループ・レイヤの「線要素・文字要素のあるなし」を書き出す機能
 があれば対処できると思い探したのですが、見つかりませんでした。

は外変でのデータとして上記を取り込みレイヤ1に要素があった場合未実行にすると言うことですか?

他の方のコメントのように0,1とも選択しhdを加えて1レイヤのデータをJWC_TEMP.TXTに戻さない以外に方法は無いとおもいます。

hdは範囲選択したデータを消去します。
しかし、仮に先頭にhdを付加し範囲選択したデータを全て書き出せば実行前と実行後の状態は何の変化もないということです。


Indexへ
(2501)←【2502】→(2509)
------------------------
【タイトル】Re(4):外部変形の機能について(要望)
【記事番号】 2502 (2501)
【 日時 】05/07/05 10:49
【 発言者 】seijyu

▼スターさん:

>>1)指定したレイヤグループ・レイヤの要素を削除する機能
>
>はコマンドの追加

そうです。

>>2)レイヤグループ・レイヤの「線要素・文字要素のあるなし」を書き出す機能
> があれば対処できると思い探したのですが、見つかりませんでした。
>
>は外変でのデータとして上記を取り込みレイヤ1に要素があった場合未実行にすると言うことですか?

というよりも#gnを拡張してほしいということです。
以下はJWW_SMPL.BATからの引用です。
-------------------------------------------------------------------
  ◎「#gn」によるレイヤグループ状態、名
lg%x %d        ( %x:レイヤグループ番号 %d:レイヤグループ状態 )
                     ↓
                    ( 11:編集可能、表示状態 )
                    ( 01:編集不可、表示状態 )
                    ( 00:編集不可、非表示状態)

-------------------------------------------------------------------
例えば
ly1 11 (現状)を
ly1 1110 
線あり↑↑文字なし のようにして頂けたら...という要望です。
この場合消す事はできませんがプログラム側でアラーム停止させる
ことは可能となります。

>他の方のコメントのように0,1とも選択しhdを加えて1レイヤのデータをJWC_TEMP.TXTに戻さない以外に方法は無いとおもいます。

はい。私もそう思って機能を要望しました。


Indexへ
(2502)←【2509】→(2513)
------------------------
【タイトル】Re(5):hdについて
【記事番号】 2509 (2502)
【 日時 】05/07/05 12:19
【 発言者 】スター

▼seijyuさん:
どうも外部変形の基本機能に誤解があるように思います。
乱暴な言い方をすれば外部変形は、最終的にJWC_TEMP.TXTに記述されたデータを読込追加するだけです。コマンド的な命令はありません。

いま、あなたは範囲指定しJWC_TEMP.TXTに書き込まれたデータを加工し、結果のみを新たにJWC_TEMP.TXTに書き込み終了していますね。

これに対し、範囲指定で得られたJWC_TEMP.TXTを例えばTEMP.TXTに先頭のhrをhdに書き換え保存します。
計算終了後、結果とTEMP.TXTを合わせてJWC_TEMP.TXTに出力すれば全く同じ結果になります。
hdにより範囲選択データは削除されますが再び書き込まれるので同じになります。

線を加工するタイプの外部変形では普通に行われています。その際に加工の元となるデータはTEMP.TXTから外します。

れいや1のデータを削除すると言うことは、TEMP.TXTに保存する時にly1以降の次のly*までのデータを保存しないということで成立します。


Indexへ
(2509)←【2513】→(2494)
------------------------
【タイトル】Re(6):hdについて
【記事番号】 2513 (2509)
【 日時 】05/07/05 13:00
【 発言者 】seijyu

▼スターさん:

私も沢山の外部変形を作成しており仰せの内容は全て理解しているつもりです。
全てのデータを書き出せば消すのも書き込むのも自由にできるのは判って
おりますし、私もできます。

何度も書き込んでおりますが、「レイヤ0の特定の要素だけを書き出して」と
いう条件付きです。訳あってこの条件は変えられません。

現状では不可能と判断しております。


Indexへ
(2513)←【2494】→(2496)
------------------------
【タイトル】Re(1):条件分岐
【記事番号】 2494 (2492)
【 日時 】05/07/05 09:10
【 発言者 】コジマ

▼seijyuさん:
>Jw_cadには、いつもお世話になっております。
>同じ外部変形を再度実施するにあたり、既に書き込まれた
>レイヤグループ0レイヤ1の要素は邪魔になるので削除します。
>この削除を忘れた場合、最初に書き込まれた要素と次に書き込まれた要素が
>重なりあってしまい、問題となります。

これは、プログラミング用語の「条件分岐」のことですか?
(レイヤグループ0レイヤ1以外の要素を選択する)

どの言語にも、この手法は用意されています。

rubyでは、以下のような記述になります。

while ARGF.gets
  xy=split
  if xy[0]=~/^lg/
     lg=xy[0]
  end
  if xy[0]=~/^ly/
     ly=xy[0]
  end
  if xy[0]=~/^\d|^-/
    unless lg=="lg0" && ly=="ly1"#レイヤグループ0レイヤ1以外の線要素に対して実行する
       やりたい処理を記述
    end
  end
end


Indexへ
(2494)←【2496】→(2497)
------------------------
【タイトル】Re(2):条件中止
【記事番号】 2496 (2494)
【 日時 】05/07/05 09:21
【 発言者 】コジマ

以下のような記述にすると、レイヤグループ0、レイヤ1の要素があった場合、実行を中止できます。(未実行)


while ARGF.gets
  xy=split
  if xy[0]=~/^lg/
     lg=xy[0]
  end
  if xy[0]=~/^ly/
   if lg=="lg0" && xy[0]=="ly1"
     puts "hq"
   end
  end
  やりたい処理を記述
end


Indexへ
(2496)←【2497】→(2500)
------------------------
【タイトル】Re(3):追記
【記事番号】 2497 (2496)
【 日時 】05/07/05 09:58
【 発言者 】コジマ

以下の記述で、レイヤグループ0、レイヤ1の既存の要素を消去して、新たな要素を書き込みします。

puts "hd"
while ARGF.gets
  xy=split
  if xy[0]=~/^hq/

  elsif xy[0]=~/^lg/
     lg=xy[0]
     print $_
  elsif xy[0]=~/^ly/
     ly=xy[0]
     print $_
  elsif xy[0]=~/^\d|^-/
    if lg=="lg0" && ly=="ly1"
     else
       print $_
     end
     やりたい処理
  else
     print $_
 end
end


Indexへ
(2497)←【2500】→(2503)
------------------------
【タイトル】Re(4):追記
【記事番号】 2500 (2497)
【 日時 】05/07/05 10:30
【 発言者 】seijyu

▼コジマさん:コメントありがとうございます。

そして、いろいろなサンプルありがとうございます。
私はDelphiで外変をつくっております。
分岐処理も判ります。
確認したいのはhdコマンドです。
これは選択したデータの削除ですよね。
私の実行したい内容ですが
レイヤ0の特定の要素(全要素ではない)を選択し
処理した要素をレイヤ1に書き込む事です。
そして書き込む前にレイヤ1の全要素を自動で消したいのです。
※消す事ができない場合レイヤ1にデータがあるので
 処理を中止する方法でもOK(要望2)で実現可能と判断)

ご紹介頂いたコードで実現可能でしょうか?


Indexへ
(2500)←【2503】→(2505)
------------------------
【タイトル】Re(5):追記
【記事番号】 2503 (2500)
【 日時 】05/07/05 10:59
【 発言者 】コジマ

▼seijyuさん:
>▼コジマさん:コメントありがとうございます。
>
>そして、いろいろなサンプルありがとうございます。
>私はDelphiで外変をつくっております。
>分岐処理も判ります。
>確認したいのはhdコマンドです。
>これは選択したデータの削除ですよね。
>私の実行したい内容ですが
>レイヤ0の特定の要素(全要素ではない)を選択し
>処理した要素をレイヤ1に書き込む事です。
>そして書き込む前にレイヤ1の全要素を自動で消したいのです。
>※消す事ができない場合レイヤ1にデータがあるので
> 処理を中止する方法でもOK(要望2)で実現可能と判断)
>
>ご紹介頂いたコードで実現可能でしょうか?


外部変形では、特定の要素を消す処理(加工する処理)は以下のような処理になります。

1、最初に hd と記述して全要素を消去する。

2、条件分岐を使って、特定の要素以外の要素を書き戻す。

3、特定の要素を加工して、書き戻す。


線色変更やレイヤ移動などの外変は、全てこの手法を用います。

Delphiでの記述はわかりませんが、

ruby では、以下の記述で、特定条件以外の要素を書き戻します。

if lg=="lg0" && lc=="lc1"  #レイヤグループ0、レイヤ1 の時
   加工した処理
else             #それ以外の時
   print $_        #消去した要素を書き戻す
end


Indexへ
(2503)←【2505】→(2507)
------------------------
【タイトル】Re(6):追記
【記事番号】 2505 (2503)
【 日時 】05/07/05 11:11
【 発言者 】seijyu

▼コジマさん:

>外部変形では、特定の要素を消す処理(加工する処理)は以下のような処理になります。
>
>1、最初に hd と記述して全要素を消去する。
>
>2、条件分岐を使って、特定の要素以外の要素を書き戻す。
>
>3、特定の要素を加工して、書き戻す。
>
>
>線色変更やレイヤ移動などの外変は、全てこの手法を用います。

話がかみ合っていないように思うのですが。。。
結論として上記の手法しか取れないという事は私の望む処理は現状の
機能では実現できないという事になるようです。
ありがとうございました。


Indexへ
(2505)←【2507】→(2508)
------------------------
【タイトル】Re(7):追記
【記事番号】 2507 (2505)
【 日時 】05/07/05 11:38
【 発言者 】コジマ

>結論として上記の手法しか取れないという事は私の望む処理は現状の
>機能では実現できないという事になるようです。
>ありがとうございました。

内容がわかれば、簡単に作成できると思います。

図形削除の順番に、こだわっておられるようですが、
順番は、どうあれ、最終的な結果が肝心なのではないでしょうか。


Indexへ
(2507)←【2508】→(2516)
------------------------
【タイトル】Re(8):追記
【記事番号】 2508 (2507)
【 日時 】05/07/05 12:18
【 発言者 】seijyu

▼コジマさん:

>図形削除の順番に、こだわっておられるようですが、
>順番は、どうあれ、最終的な結果が肝心なのではないでしょうか。

図形削除の順番にはこだわっておりません。
また、最終的な結果は既に得ています。
最終的な結果とはレイヤ0の特定の要素を選択し外部変形で補正
レイヤ1に書き込むという事を指します。
ただし選択しない(JW_TEMP.TXTに書き出さない)データの削除ができる
かという点には、こだわりがあります。

この点について現状では不可能だと判断しております。


Indexへ
(2508)←【2516】→(2519)
------------------------
【タイトル】Re(9):二つの外部変形を循環することで可能
【記事番号】 2516 (2508)
【 日時 】05/07/05 14:07
【 発言者 】コジマ

>ただし選択しない(JW_TEMP.TXTに書き出さない)データの削除ができる
>かという点には、こだわりがあります。

>この点について現状では不可能だと判断しております。

ひでとさんの回答とかさなりますが、
二つの外部変形を循環することで可能です。

1、最初に実行する(グループ0、レイヤ1のデータを消す)のバッチファイルに REM #h4 範囲選択をしない。 を記述
REM #h/次に実行するバッチファイル名 を記述

ただし、危険な外変なので、メリットなし。

範囲選択した、レイヤ1のデータを消去して、レイヤ1に書込む外変のほうが、普通でしょう。


Indexへ
(2516)←【2519】→(2523)
------------------------
【タイトル】Re(10):二つの外部変形を循環することで可能
【記事番号】 2519 (2516)
【 日時 】05/07/05 15:01
【 発言者 】seijyu

▼コジマさん:
>ひでとさんの回答とかさなりますが、
>二つの外部変形を循環することで可能です。
>
>1、最初に実行する(グループ0、レイヤ1のデータを消す)のバッチファイルに REM #h4 範囲選択をしない。 を記述
>REM #h/次に実行するバッチファイル名 を記述
>
>ただし、危険な外変なので、メリットなし。
>
>範囲選択した、レイヤ1のデータを消去して、レイヤ1に書込む外変のほうが、普通でしょう。

ありがとうございます。
参考になりました。
チャレンジしてみます。


Indexへ
(2519)←【2523】→(2526)
------------------------
【タイトル】Re(11):消去、書き戻し外変の バッチファイル記述の注意事項
【記事番号】 2523 (2519)
【 日時 】05/07/05 19:31
【 発言者 】コジマ

ご存知かもしれませんが、消去、書き戻し の外変では、

バッチファイルに以下の記述が必要です。

(ブロックの消去、寸法図形の寸法属性消失、属性の消失、線幅の消失 がおこります)


REM #ht10 ブロックの書き出しと消去をしない
REM #ht30 寸法図形の書き出しと消去をしない
REM #zz 属性の書き出し(ハッチ、図形、寸法、建具)
REM #zw 線幅の書き出し


Indexへ
(2523)←【2526】→(2495)
------------------------
【タイトル】Re(12):消去、書き戻し外変の バッチファイル記述の注意事項
【記事番号】 2526 (2523)
【 日時 】05/07/05 23:09
【 発言者 】名無し

余計な事かも知れないけれど

1つ目の外変でレイヤ1に書き込むデータを作成
この時
REM #hp を使って基点を左下固定にしておき、書出したデータはJwc_temp.txt以外の名前のままにしてjwwに反映させない
データ最初には hd 記入

1のbatファイルからVBSとか利用して SendKeys でJWWにキーコードを送って
レイヤ1のみ表示それ以外非表示にするレイヤ設定ファイルを読ませる
(Alt+sfr ファイル名、レイヤ設定ファイルは予めJWWフォルダに用意しておく)
2つ目の外変は
REM #h4 で全データ出力させて
REM #hp で基点を左下固定

後はJwc_temp.txt を削除して、1で作ったデータをJwc_temp.txtにリネーム

これでレイヤ1の内容を入れ替え出来る

但し2つ目の外変を
REM #h/
で選ぶと2つ目が実行されてからレイヤ設定ファイルの読み込みに行くのでウマくない

そこで、Ctrl+任意のキーで2つ目の外変を起動出来るように設定しておいて
レイヤ設定ファイルの読み込み後にやはり SendKeys でキーコードを送って
2つ目の外変を起動させる

ってのはどうかにゃ?


Indexへ
(2526)←【2495】→(2499)
------------------------
【タイトル】Re(1):外部変形の機能について(要望)
【記事番号】 2495 (2492)
【 日時 】05/07/05 09:21
【 発言者 】ひでと

▼seijyuさん:
良くは分からないのですが...
batファイルの中で
REM #g0 でレイヤグループの選択
REM #h4 または#h1等で図形の選択

jwc_temp.txtファイルの中で
hd で選択図形の削除
lg%x レイヤグループの指定
ly%x レイヤの指定

ができます。この辺りの処理をすればいいのでは?

>Jw_cadには、いつもお世話になっております。
>
>さて、私のやりたい事は以下です。
>レイヤグループ0レイヤ0の線要素を選択して外部変形(自作)を起動→
>レイヤグループ0レイヤ1に処理した線要素を書き込む。
>次に
>同じ外部変形を再度実施するにあたり、既に書き込まれた
>レイヤグループ0レイヤ1の要素は邪魔になるので削除します。
>この削除を忘れた場合、最初に書き込まれた要素と次に書き込まれた要素が
>重なりあってしまい、問題となります。
>
>そこで
>1)指定したレイヤグループ・レイヤの要素を削除する機能
>2)レイヤグループ・レイヤの「線要素・文字要素のあるなし」を書き出す機能
> があれば対処できると思い探したのですが、見つかりませんでした。
>
>単なる私の見落としで既に実装されておりましたら教えて下さい。
>又、私のやりたい事を別のアプローチで解決する方法がありましたらご教授
>頂ければ幸いです。
>
>作者様へ
>1),2)の機能が、もし未実装でありましたら両方もしくわどちらかでも
>構いませんので、ご検討頂けますようお願い致します。


Indexへ
(2495)←【2499】→(2514)
------------------------
【タイトル】Re(2):外部変形の機能について(要望)
【記事番号】 2499 (2495)
【 日時 】05/07/05 10:18
【 発言者 】seijyu

▼ひでとさん:コメントありがとうございます。

>良くは分からないのですが...
>batファイルの中で
>REM #g0 でレイヤグループの選択
>REM #h4 または#h1等で図形の選択
>
>jwc_temp.txtファイルの中で
>hd で選択図形の削除
>lg%x レイヤグループの指定
>ly%x レイヤの指定
>
>ができます。この辺りの処理をすればいいのでは?

hdは選択図形の削除ですので、うまくいかないのです。
選択図形はレイヤ0にあり選択していない既存のレイヤ1に
ある図形を自動で消したいのです。


Indexへ
(2499)←【2514】→(2518)
------------------------
【タイトル】Re(3):外部変形の機能について(要望)
【記事番号】 2514 (2499)
【 日時 】05/07/05 13:40
【 発言者 】ひでと

▼seijyuさん:
>▼ひでとさん:コメントありがとうございます。
>
>>良くは分からないのですが...
>>batファイルの中で
>>REM #g0 でレイヤグループの選択
>>REM #h4 または#h1等で図形の選択
>>
>>jwc_temp.txtファイルの中で
>>hd で選択図形の削除
>>lg%x レイヤグループの指定
>>ly%x レイヤの指定
>>
>>ができます。この辺りの処理をすればいいのでは?
>
>hdは選択図形の削除ですので、うまくいかないのです。
>選択図形はレイヤ0にあり選択していない既存のレイヤ1に
>ある図形を自動で消したいのです。

既存のレイヤ1にある 特定の図形を消すという事でしょうか。
特定の図形は、何かの条件で求められるならば、REM #h4で全体のデータを取得して、
条件に合う図形を除いた図形を書き出す、という方法では?

特定の図形をあらかじめ選択しておく処理ならば、
選択して消去する batファイルと、書き出すbatファイルを分けて #h/を使う
というのでは、どうでしょう?


Indexへ
(2514)←【2518】→(2504)
------------------------
【タイトル】Re(4):外部変形の機能について(要望)
【記事番号】 2518 (2514)
【 日時 】05/07/05 14:43
【 発言者 】seijyu

▼ひでとさん
>既存のレイヤ1にある 特定の図形を消すという事でしょうか。
>特定の図形は、何かの条件で求められるならば、REM #h4で全体のデータを取得して、
>条件に合う図形を除いた図形を書き出す、という方法では?
>
>特定の図形をあらかじめ選択しておく処理ならば、
>選択して消去する batファイルと、書き出すbatファイルを分けて #h/を使う
>というのでは、どうでしょう?

ありがとうございます。一つの方法として参考にします。

このツリーの皆さんの意見をまとめると
「全てのデータを書き出し、必要なデータだけ書き込む」という事に
なろうかと思います。確かに外部変形の処理を変えれば現状の機能でも
実現は可能ですが、そのように変えた所でまた別の問題が発生する
であろうことは当方の業務環境から容易に推測できるのです。

ツリーの立ち上げ時に書けば良かったのですが
自作の外部変形を使うのは私ではなく不特定多数の方で
Jw_cadを使うのが初めてという方が殆どです。
不特定要素を出力し特定要素のみを拾い上げるという事は特定要素に
なる条件を満たすように書き込んでおく事が重要になります。
(例えば線種、線色、レイヤ等になると思いますが。。。)
レイヤ1のデータを全て消すだけのために外変を作り変え上記作業を
教えるぐらいなら現状の外変を使い「外変の前に必ずレイヤ1の要素を
消しなさい」と教える方が私としては有益です。

もとより私自信が使うのであればレイヤ1に残されたデータを削除
するのは何の苦もなく、今回要望した機能も必要ありません。
作業者がおかすポカミスをソフト側で簡単に対処できればいいなと
思い要望した次第です。現状の自分の環境に手を加えず楽をして改善
しようなんて、ちょっと虫が良すぎたかもしれません。

横道にそれてきたのでこの辺にします。(長文失礼しました)


Indexへ
(2518)←【2504】→(2506)
------------------------
【タイトル】Re(1):外部変形の機能について(要望)
【記事番号】 2504 (2492)
【 日時 】05/07/05 11:00
【 発言者 】じゃば __shirato@a2.mbn.or.jp

ちぃっす。じゃばでぃす

何したいのか理解しないで発言しますが、(^^;;
特定のレイヤ ・線種などだけ処理したいということは
よくあることだし、基本的なテクと思います。
例えば・・

----------- .bat----
@rem Edit4
@echo off
rem  2005年 7月 05日 火曜日 10:28 AM 作成
rem #jww
rem #h1
rem #e
mawk32 -f lyer0.awk jwc_temp.txt > temp.txt
del jwc_temp.txt
ren temp.txt jwc_temp.txt
----------- lyer0.awk----
BEGIN{
#消去するレイヤ
ely="ly2";
}
{
if(/hq/){print"hd";printf"h# %s 消したよ\n",ely;next}
if(/^ *[-0-9\.]/){if(ly==ely){next;}}
if(/^ly/){ly=$1}
print
}
-----------------------
で、線だけは消せると思います。
円弧・文字・ソリッド等はチャレンジしてみてください。
同じAWKで、ly1に対する処理を書いておけば、
やりたいことと、消去を同時に行えるとおもいますよ。


Indexへ
(2504)←【2506】→(2517)
------------------------
【タイトル】Re(2):外部変形の機能について(要望)
【記事番号】 2506 (2504)
【 日時 】05/07/05 11:17
【 発言者 】seijyu

▼じゃばさん:コメントありがとうございます。

>何したいのか理解しないで発言しますが、(^^;;
>特定のレイヤ ・線種などだけ処理したいということは
>よくあることだし、基本的なテクと思います。

http://hpcgi2.nifty.com/jw_cad/c-board.cgi?cmd=one;no=2500;id=003

↑これを確認して頂けないでしょうか。
その上で、ご紹介頂いたコードは実現可能なのでしょうか?


Indexへ
(2506)←【2517】→(2520)
------------------------
【タイトル】Re(3):外部変形の機能について(要望)
【記事番号】 2517 (2506)
【 日時 】05/07/05 14:13
【 発言者 】じゃば __shirato@a2.mbn.or.jp

ちぃっす。
 うむぅ・・・

hd をこわがっているんですか?
選択されたデータは消えてなくなってしまうわけではなくて、
jwc_temp.txtに書かれているのですよ
必要な物だけ書き戻してやればいいだけのこと。
そういうAWKを書いてあげたつもりなのですが・・・

 書かれた順番が意味を持つケースというのもありますが、
そうではないでしょうから・・・
  
 要望という点で言えば、外部プログラムのほうで対応できると、
あっしなら判断しますが・・・どうだろか? 

もっと言うなら・・・

BEGIN{
#消去するレイヤ
ely="ly2";
#加工するレイヤ
oly="ly1";

}
{
if(/hq/){print"hd";printf"h# %s 消したよ\n",ely;next}
if(/^ *[-0-9\.]/){if(ly==ely){next;}
         if(ly==oly){nantara();}
}
if(/^ly/){ly=$1}
print
}
function nantara()
{
#レイヤ1の線に対する処理
}

とでもして、やればいいでしょう・・・
もちろん、delphiでも同じ事ですよ。

ご紹介したコードはもちろん、実現可能です。(^^;;


Indexへ
(2517)←【2520】//(2510)
------------------------
【タイトル】Re(4):外部変形の機能について(要望)
【記事番号】 2520 (2517)
【 日時 】05/07/05 15:04
【 発言者 】seijyu

▼じゃばさん:

サンプルコードありがとうございます。

↓ここで教えて頂いた方法でやってみます。
http://hpcgi2.nifty.com/jw_cad/c-board.cgi?cmd=one;no=2516;id=003