Indexへ
(25691)//【25690】→(25701)
------------------------
【タイトル】頂くデータのレイヤ整理について
【記事番号】 25690 (*)
【 日時 】05/01/06 22:52
【 発言者 】みどり

お世話になります。

A業者さん  文字はレイヤ3 寸法はレイヤ4
B業者さん  文字はレイヤ5 寸法はレイヤ6

という感じで毎回バラバラなのです。
これを、当方の環境に、変更してます。


jwf ファイルやjwlファイルを訂正したり組み合わせたりして使ってるのです。


当方は  文字はAレイヤです。 寸法はBレイヤです。
文字はBレイヤ 寸法はAレイヤで頂いた時は、一時他のレイヤに移して
訂正するので、動作がワンアクション多いのです。

レイヤを管理修正できる外部変形はありませんか?

頂いたデータを見て、 このレイヤは 1に移動 このレイヤは2に移動と
外変でできたら最高の幸せなんですが、こんなのありますか?
なんども言いますけど、JWの標準機能でできるのですが、結構大変なので m(__)m


Indexへ
(25690)←【25701】→(25703)
------------------------
【タイトル】Re(1):頂くデータのレイヤ整理について
【記事番号】 25701 (25690)
【 日時 】05/01/07 09:26
【 発言者 】コジマ

▼みどりさん:
>お世話になります。
>
>A業者さん  文字はレイヤ3 寸法はレイヤ4
>B業者さん  文字はレイヤ5 寸法はレイヤ6
>
>という感じで毎回バラバラなのです。
>これを、当方の環境に、変更してます。
>
>
>jwf ファイルやjwlファイルを訂正したり組み合わせたりして使ってるのです。
>
>
>当方は  文字はAレイヤです。 寸法はBレイヤです。
>文字はBレイヤ 寸法はAレイヤで頂いた時は、一時他のレイヤに移して
>訂正するので、動作がワンアクション多いのです。
>
>レイヤを管理修正できる外部変形はありませんか?
>
>頂いたデータを見て、 このレイヤは 1に移動 このレイヤは2に移動と
>外変でできたら最高の幸せなんですが、こんなのありますか?
>なんども言いますけど、JWの標準機能でできるのですが、結構大変なので m(__)m

これは、jwlファイルの設定で行う作業です。
jwlファイルを作っておけば、読み込むだけで、レイヤ移動してくれます。
(多分、外変は無いと思います。(作る必要がない。))

以下、sampl.jwlからの抜粋です。

#     ◎指定レイヤに指定データ移動の設定
# レイヤ番号
#  |  線色      
#  |   | 線種    
#  |   |  | 点色  
#  |   |  |  | 文種
#  |   |  |  |  | ハッチ属性[1]・図形属性[2]・寸法属性[3]・建具属性[4]
#  |   |  |  |  |  | ・曲線属性[5]を指定、寸法図形[6]・ソリッド図形[7]
#  |   |  |  |  |  | ・ブロック図形[8]を指定
LAY_0  = 8  0  0  0  0
#
LAY_1_N =kutai
LAY_1  = 2  0  0  0  0
LAY_2_N =kikicl
LAY_2  = 4  5  0  0  0
LAY_3_N =kiki
LAY_3  = 3  0  0  0  0
LAY_4_N =pit
LAY_4  = 5  0  0  0  0
LAY_8_N =kiso
LAY_8  = 7  0  0  0  0
LAY_9_N =haikancl
LAY_9  = 1  5  0  0  0
LAY_a_N =haikan
LAY_a  = 6  0  0  0  0
#
LAY_7_N = hatch
LAY_7  = 1  1  0  0  1    ハッチ 指定
LAY_6_N = sunpou
LAY_6  = 1  1  0  0  3    寸 法  指定
LAY_5_N = moji
LAY_5  = 1  1  0  0  0    文字  指定
#
#
#
#   ◎レイヤ整理の指定のない線・円・実点・文字・寸法図形・ソリッド図形
#    ・ブロック図形を指定レイヤに移動する。
#   この記述が無い場合は、指定のないデータのレイヤは移動しない。
#   レイヤ設定ファイルの書出しでは、常に「注釈行」になる。
#
# レイヤ番号
#  |
LAY_5_F = 1  0  0  1  1  0  0
#     |  |  |  |  |  |  |
#     |  |  |  |  |  | ブロック図形
#     |  |  |  |  | ソリッド図形
#     |  |  |  |寸法図形
#     |  |  | 文字
#     |  | 実点
#     | 円弧
#     線(0:レイヤ移動無し 1:レイヤ移動)
#


Indexへ
(25701)←【25703】→(25710)
------------------------
【タイトル】Re(2):頂くデータのレイヤ整理について
【記事番号】 25703 (25701)
【 日時 】05/01/07 10:27
【 発言者 】みどり

▼コジマさん:


>>A業者さん  文字はレイヤ3 寸法はレイヤ4
>>B業者さん  文字はレイヤ5 寸法はレイヤ6
>>
>>という感じで毎回バラバラなのです。
>>これを、当方の環境に、変更してます。
>>
>>
>>jwf ファイルやjwlファイルを訂正したり組み合わせたりして使ってるのです。
>>
>>
>>当方は  文字はAレイヤです。 寸法はBレイヤです。
>>文字はBレイヤ 寸法はAレイヤで頂いた時は、一時他のレイヤに移して
>>訂正するので、動作がワンアクション多いのです。
>>
>>レイヤを管理修正できる外部変形はありませんか?


>これは、jwlファイルの設定で行う作業です。
>jwlファイルを作っておけば、読み込むだけで、レイヤ移動してくれます。
>(多分、外変は無いと思います。(作る必要がない。))

ありがとうございます。
参考に、http://2style.net/kaneko/jwwdata1.htm を利用させて
もらってますが・・・

その旨を書いたつもりですが・・・ (^^ゞ
jwlファイルを以前はマメに作って読み込んで変更してました。
頂くデータが一定の法則で作られてるのであれば、おっしゃる方法で
問題ないのですが、毎回 色もバラバラ、レイヤもバラバラですと
お手上げです。ファイル作成に結構時間がかかるのです。
(テキストエディターで編集して毎回書き換えたり、書き足したりしてました。)

外変メニューで、1レイヤに書いてるのは、4レイヤに、2レイヤはAレイヤと
一度にたくさんのレイヤを一度にできないかなぁって感じです。
頂くデータは、一応個別のやり方ですが、レイヤ管理はされてます。

上記のアドレスの外変はそんな事ができるような気がして
試みたのですが、違うのかなぁ?


Indexへ
(25703)←【25710】→(25712)
------------------------
【タイトル】Re(3):頂くデータのレイヤ整理について
【記事番号】 25710 (25703)
【 日時 】05/01/07 11:46
【 発言者 】コジマ

>
>外変メニューで、1レイヤに書いてるのは、4レイヤに、2レイヤはAレイヤと
>一度にたくさんのレイヤを一度にできないかなぁって感じです。
>頂くデータは、一応個別のやり方ですが、レイヤ管理はされてます。
>
>上記のアドレスの外変はそんな事ができるような気がして
>試みたのですが、違うのかなぁ?

説明書を読んだ感じでは、出来ないようです。
(線色や属性で分ける・・・JWLの簡易版)

単純に、レイヤ間のデータ移動ならば、以下のスクリプトで可能です。
同じrubyスクルプトなので、そのままの環境で実行できます。
(但し、レイヤ名の変更は出来ません。)

コピペ後、全角スペースを半角スペースに一括置換してください。

◎バッチファイル(ファイル名 レイヤ変更.bat)

@REM 全レイヤの線色を一括変更する。
@echo off
REM #jww
REM #cd
REM #zz
REM #h1
REM #e
copy jwc_temp.txt temp.txt > nul
del jwc_temp.txt 
ruby -Ks レイヤ変更.rb

◎スクリプトファイル(ファイル名 レイヤ変更.rb)

#レイヤ別線色の変更 外部変形Rubyスクリプト
$deta=[]
$deta << "hd\n"

puts "↓レイヤ0のデータを移動するレイヤ番号を入力してください(変更無:ENTER)"
ly0=gets
if ly0=="\n";ly0c="ly0";else;ly0c="ly"+ly0;end

puts "↓レイヤ1のデータを移動するレイヤ番号を入力してください(変更無:ENTER)"
ly1=gets
if ly1=="\n";ly1c="ly1";else;ly1c="ly"+ly1;end

puts "↓レイヤ2のデータを移動するレイヤ番号を入力してください(変更無:ENTER)"
ly2=gets
if ly2=="\n";ly2c="ly2";else;ly2c="ly"+ly2;end

puts "↓レイヤ3のデータを移動するレイヤ番号を入力してください(変更無:ENTER)"
ly3=gets
if ly3=="\n";ly3c="ly3";else;ly3c="ly"+ly3;end

puts "↓レイヤ4のデータを移動するレイヤ番号を入力してください(変更無:ENTER)"
ly4=gets
if ly4=="\n";ly4c="ly4";else;ly4c="ly"+ly4;end

puts "↓レイヤ5のデータを移動するレイヤ番号を入力してください(変更無:ENTER)"
ly5=gets
if ly5=="\n";ly5c="ly5";else;ly5c="ly"+ly5;end

puts "↓レイヤ6のデータを移動するレイヤ番号を入力してください(変更無:ENTER)"
ly6=gets
if ly6=="\n";ly6c="ly6";else;ly6c="ly"+ly6;end

puts "↓レイヤ7のデータを移動するレイヤ番号を入力してください(変更無:ENTER)"
ly7=gets
if ly7=="\n";ly7c="ly7";else;ly7c="ly"+ly7;end

puts "↓レイヤ8のデータを移動するレイヤ番号を入力してください(変更無:ENTER)"
ly8=gets
if ly8=="\n";ly8c="ly8";else;ly8c="ly"+ly8;end

puts "↓レイヤ9のデータを移動するレイヤ番号を入力してください(変更無:ENTER)"
ly9=gets
if ly9=="\n";ly9c="ly9";else;ly9c="ly"+ly9;end

puts "↓レイヤaのデータを移動するレイヤ番号を入力してください(変更無:ENTER)"
lya=gets
if lya=="\n";lyac="lya";else;lyac="ly"+lya;end

puts "↓レイヤbのデータを移動するレイヤ番号を入力してください(変更無:ENTER)"
lyb=gets
if lyb=="\n";lybc="lyb";else;lybc="ly"+lyb;end

puts "↓レイヤcのデータを移動するレイヤ番号を入力してください(変更無:ENTER)"
lyc=gets
if lyc=="\n";lycc="lyc";else;lycc="ly"+lyc;end

puts "↓レイヤdのデータを移動するレイヤ番号を入力してください(変更無:ENTER)"
lyd=gets
if lyd=="\n";lydc="lyd";else;lydc="ly"+lyd;end

puts "↓レイヤeのデータを移動するレイヤ番号を入力してください(変更無:ENTER)"
lye=gets
if lye=="\n";lyec="lye";else;lyec="ly"+lye;end

puts "↓レイヤfのデータを移動するレイヤ番号を入力してください(変更無:ENTER)"
lyf=gets
if lyf=="\n";lyfc="lyf";else;lyfc="ly"+lyf;end

open("temp.txt","r") { |f|
while line=f.gets
    xy = line.split
    if xy[0]=~ /^hq/
        # 何もしない(未実行チェック文字を消去)
    elsif xy[0]=~ /^ly0/
        $deta << ly0c
    elsif xy[0]=~ /^ly1/
        $deta << ly1c
    elsif xy[0]=~ /^ly2/
        $deta << ly2c
    elsif xy[0]=~ /^ly3/
        $deta << ly3c
    elsif xy[0]=~ /^ly4/
        $deta << ly4c
    elsif xy[0]=~ /^ly5/
        $deta << ly5c
    elsif xy[0]=~ /^ly6/
        $deta << ly6c
    elsif xy[0]=~ /^ly7/
        $deta << ly7c
    elsif xy[0]=~ /^ly8/
        $deta << ly8c
    elsif xy[0]=~ /^ly9/
        $deta << ly9c
    elsif xy[0]=~ /^lya/
        $deta << lyac
    elsif xy[0]=~ /^lyb/
        $deta << lybc
    elsif xy[0]=~ /^lyc/
        $deta << lycc
    elsif xy[0]=~ /^lyd/
        $deta << lydc
    elsif xy[0]=~ /^lye/
        $deta << lyec
    elsif xy[0]=~ /^lyf/
        $deta << lyfc
    elsif xy[0]=~  /^ly/
                # 何もしない(既存のレイヤ情報を消去する)
    else
        $deta << line    # データの書き戻し
    end
end
}

text=$deta
nlines = 0
File.open("jwc_temp.txt","w"){
|file|;text.each{|line|;file.puts line;nlines += 1}
}


Indexへ
(25710)←【25712】→(25742)
------------------------
【タイトル】Re(4):頂くデータのレイヤ整理について
【記事番号】 25712 (25710)
【 日時 】05/01/07 12:07
【 発言者 】KITI

 コジマさん、こんにちわ。広島のKITIと申します。

 出来ちゃいました、さすがですネ。ありがたく使わせてい
ただきます。
 ありがとうございました。

  デワデワ   広島のKITIより


Indexへ
(25712)←【25742】→(25744)
------------------------
【タイトル】Re(4):頂くデータのレイヤ整理について
【記事番号】 25742 (25710)
【 日時 】05/01/08 00:04
【 発言者 】みどり

▼コジマさん:

>
>単純に、レイヤ間のデータ移動ならば、以下のスクリプトで可能です。
>同じrubyスクルプトなので、そのままの環境で実行できます。
>(但し、レイヤ名の変更は出来ません。)
>
>コピペ後、全角スペースを半角スペースに一括置換してください。

ごめんなさい。
うまく行きません。

レイヤ変更.rb
レイヤ変更をおっしゃるように作りました。
作った方法は、他の類似のファイルをコピーして
中身を変えました。よって、通常のbatファイルのアイコン、rubyのアイコンに
なってますので間違い無いと思います!?

それで、実行すると、
C:\WINDOWS\COMMAND\RUBY.EXE: No such file or directory -- レイヤ変更.rb (LoadErr
or)

って出ます。
なぜうまく行かないのでしょうか?

他の rubyの外変はちゃんと動きます。
ちなみに OSはMeです。


Indexへ
(25742)←【25744】→(25751)
------------------------
【タイトル】ファイル名を確認してください
【記事番号】 25744 (25742)
【 日時 】05/01/08 01:06
【 発言者 】コジマ

▼みどりさん:
>>C:\WINDOWS\COMMAND\RUBY.EXE: No such file or directory -- レイヤ変更.rb (LoadErr
>or)
>

これは、「レイヤ変更.rb というファイルはありません」という表示です。
レイヤ名を確認してください。
ひょっとして半角カナになっていませんか?
全角カナに変更してください。


Indexへ
(25744)←【25751】→(25754)
------------------------
【タイトル】訂正
【記事番号】 25751 (25744)
【 日時 】05/01/08 10:04
【 発言者 】コジマ

▼コジマさん:
>▼みどりさん:
>>>C:\WINDOWS\COMMAND\RUBY.EXE: No such file or directory -- レイヤ変更.rb (LoadErr
>>or)
>>
>
>これは、「レイヤ変更.rb というファイルはありません」という表示です。
>レイヤ名を確認してください。

レイヤ名ではなく、ファイル名です。

>ひょっとして半角カナになっていませんか?
>全角カナに変更してください。


他の類似のファイルに中身をコピーされたあと、「上書き保存」されませんでしたか?
(そうであれば、上記の表示がでます。)

バッチファイルの一番下の記述の意味は、
(ruby.exeを起動してスクリプトファイル「レイヤ変更.rb」を開く)です。


「名前を付けて保存」でファイル名を「レイヤ変更.rb」として保存してください。

バッチファイルはそのままのファイル名でも動作します。
(本人が承知していれば、そのままでも結構です)


Indexへ
(25751)←【25754】→(25755)
------------------------
【タイトル】Re(1):質問
【記事番号】 25754 (25751)
【 日時 】05/01/08 10:45
【 発言者 】みどり

▼コジマさん:


>
>他の類似のファイルに中身をコピーされたあと、「上書き保存」されませんでしたか?
>(そうであれば、上記の表示がでます。)
>
>バッチファイルの一番下の記述の意味は、
>(ruby.exeを起動してスクリプトファイル「レイヤ変更.rb」を開く)です。
>
>
>「名前を付けて保存」でファイル名を「レイヤ変更.rb」として保存してください。


おっしゃる方法でやりますと、

レイヤ変更.rb:117: parse error

と出ます。今度は何が違うのでしょうか??
ほんとにすみません。


##ちなみに全角になってます。スペースは半角に変えてあります。


Indexへ
(25754)←【25755】→(25761)
------------------------
【タイトル】Re(2):質問
【記事番号】 25755 (25754)
【 日時 】05/01/08 11:19
【 発言者 】コジマ

>
>おっしゃる方法でやりますと、
>
>レイヤ変更.rb:117: parse error
>
>と出ます。今度は何が違うのでしょうか??
>ほんとにすみません。
>
>
>##ちなみに全角になってます。スペースは半角に変えてあります。

「117行目が文法に違反している」という意味ですね。多分。
117行目は文末なので、}が落ちているのか?多いのか?

windows me では検証していませんので、はっきり言えませんが。


Indexへ
(25755)←【25761】→(25798)
------------------------
【タイトル】Re(3):できました。ありがとうございます。
【記事番号】 25761 (25755)
【 日時 】05/01/08 13:35
【 発言者 】みどり

▼コジマさん:

感謝感激です。(^^ゞ


Indexへ
(25761)←【25798】→(25799)
------------------------
【タイトル】Re(4):頂くデータのレイヤ整理について
【記事番号】 25798 (25710)
【 日時 】05/01/10 09:12
【 発言者 】omasa

▼コジマさん:
便利な外変ありがとうございます。
ありがたく使わせていただきます。
因みに
batのREM #h1の後にREM #g1を挿入し
rb のlyをlgに変換すればレイヤグループ間の移動にも
使えますね。


Indexへ
(25798)←【25799】→(25711)
------------------------
【タイトル】縮尺に注意してください。
【記事番号】 25799 (25798)
【 日時 】05/01/10 09:23
【 発言者 】コジマ

▼omasaさん:
>▼コジマさん:
>便利な外変ありがとうございます。
>ありがたく使わせていただきます。
>因みに
>batのREM #h1の後にREM #g1を挿入し
>rb のlyをlgに変換すればレイヤグループ間の移動にも
>使えますね。

レイヤグループ間での移動は、実寸法での移動になります。
「移動」コマンドのように、警告のダイアログも出ません。

縮尺の差が小さい時は、気づかないかもしれません。


Indexへ
(25799)←【25711】→(25750)
------------------------
【タイトル】Re(3):頂くデータのレイヤ整理について
【記事番号】 25711 (25703)
【 日時 】05/01/07 11:47
【 発言者 】KITI

 みどりさん、こんにちわ。広島のKITIと申します。

 線種、線色、その他の属性を一切考慮せずに単純にレイヤを
入れ変える外変は・・・。昔々在ったと思ったのですが見つけ
られませんでした。
 KITIの場合は、自分の書いた図面を相手先の設定に合わ
せるのに在ればと思うのですが、モドもと過ぎれば・・・

  デワデワ  広島のKITIより


Indexへ
(25711)←【25750】→(25753)
------------------------
【タイトル】ヨコからですが、マウス指定でレイヤー整理
【記事番号】 25750 (25690)
【 日時 】05/01/08 09:49
【 発言者 】よくちん

割り込んですみません。
私の場合
図面を渡してくれる人が好き勝手な線種線色を使用して図面を書いてくれるので
レイヤー整理には苦労してます。取引先に整理して渡してクレとも立場上言えません。

下記のような外変さがしてるんですけど無いでしょうか?

1−整理範囲を指定
2−移動先レイヤー、グループを指定
3−移動したい線、文字等をマウスで指定。
4−指定した図形と同じ属性を持つ指定範囲の図形が非表示又は仮表示になり指定レイヤーに移動。
5−3に戻ってマウスで指定

違うレイヤーに移動したい場合、外変を再起動して、移動先レイヤー・グループを指示

今までの私のレイヤー整理の手順としては
1−TABキーで属性取得
2−移動コマンドで移動範囲を指定
3−属性選択で指定線色、線種を選択(1で属性を選択しているのでOKをオスだけ)
4−移動先のレイヤー、グループに移動して
5−クロックメニューのPM10:00で(書き込みレイヤーに変更)
6−図形のあるグループに戻り
7−移動先レイヤーグループを仮表示、又は非表示
8−2に戻り移動範囲を選択

このようなのを外変でやりたいのですが、あるでしょうか?


Indexへ
(25750)←【25753】→(25802)
------------------------
【タイトル】Re(1):ヨコからですが、マウス指定でレイヤー整理
【記事番号】 25753 (25750)
【 日時 】05/01/08 10:24
【 発言者 】コジマ

▼よくちんさん:
>割り込んですみません。
>私の場合
>図面を渡してくれる人が好き勝手な線種線色を使用して図面を書いてくれるので
>レイヤー整理には苦労してます。取引先に整理して渡してクレとも立場上言えません。
>
>下記のような外変さがしてるんですけど無いでしょうか?
>
>1−整理範囲を指定
>2−移動先レイヤー、グループを指定
>3−移動したい線、文字等をマウスで指定。
>4−指定した図形と同じ属性を持つ指定範囲の図形が非表示又は仮表示になり指定レイヤーに移動。
>5−3に戻ってマウスで指定
>
>違うレイヤーに移動したい場合、外変を再起動して、移動先レイヤー・グループを指示
>

みどりさんが紹介されているアドレス
http://2style.net/kaneko/jwwdata1.htm 
の「データ変更02v.lzh」はどうでしょう?

チョット違うかな?

上記、4−指定した図形と同じ属性を持つ指定範囲の図形
ですが、1つの図形が複数の属性を持つ場合がありますので。
(and条件か?or条件か? で選択数が違います。)

これは、本人しか仕様が分からないわけで、やはり地道にレイヤ分け?
(JWLで設定できるのかも?)


Indexへ
(25753)←【25802】→(25803)
------------------------
【タイトル】こんな感じ? 超長文
【記事番号】 25802 (25750)
【 日時 】05/01/10 12:00
【 発言者 】コジマ

▼よくちんさん:
>下記のような外変さがしてるんですけど無いでしょうか?
>
>1−整理範囲を指定
>2−移動先レイヤー、グループを指定
>3−移動したい線、文字等をマウスで指定。
>4−指定した図形と同じ属性を持つ指定範囲の図形が非表示又は仮表示になり指定レイヤーに移動。
>5−3に戻ってマウスで指定
>
>違うレイヤーに移動したい場合、外変を再起動して、移動先レイヤー・グループを指示

上記手順の4−・・・指定範囲の図形が非表示又は仮表示になり・・・
現在のJWWの仕様では、外部変形で、レイヤの表示、非表示を行うことは出来ません。(書込レイヤの変更は出来ます。)

よって、移動先のレイヤを書込レイヤに変更しています。
但し、外部変形は標準機能に比べて実行速度が、やや遅いので時間短縮になるか疑問です。

線色・線種はand条件 属性はor条件にしています。」

以下、オリジナル外変(バッチファイル1 スクリプトファイル3)
(rubyスクリプト)

コピペ後、全角スペースを半角スペースに一括置換してください。

◎バッチファイル(ファイル名 図形レイヤ移動.bat)

@REM 図形・文字のレイヤ移動
@echo off
goto do%1
REM #jww
REM #cd
rem #hm |1)線指示(L) |2)円指示(R) |3)文字選択|4)属性指定|
rem #:1
rem #mc
REM #zz
REM #zw
REM #h1
REM #hc範囲を選択してください
REM #c移動先レイヤグループ/_/a
REM #c移動先レイヤ/_/b
REM #1ln線を指示してください
rem #c
REM #e
rem #:2
rem #mc
REM #zz
REM #zw
REM #h1
REM #hc範囲を選択してください
REM #c移動先レイヤグループ/_/a
REM #c移動先レイヤ/_/b
REM #1ci円を指示してください
rem #c
REM #e
rem #:3
rem #mc
REM #zz
REM #zw
REM #h3
REM #hc範囲内の文字のみ選択されます。
REM #c移動先レイヤグループ/_/a
REM #c移動先レイヤ/_/b
rem #c
REM #e
rem #:4
rem #mc
REM #zz
REM #zw
REM #h1
REM #hc範囲を選択してください
REM #c移動先レイヤグループ/_/a
REM #c移動先レイヤ/_/b
REM #k属性を指定してください |1)ハッチ(L)|2)図形(R)|3)寸法|4)建具| /_/c
rem #c
REM #e
:do1
copy jwc_temp.txt temp.txt > nul
del jwc_temp.txt
ruby -Ks 図形レイヤ移動.rb temp.txt %2 %3 > jwc_temp.txt
goto end
:do2
copy jwc_temp.txt temp.txt > nul
del jwc_temp.txt
ruby -Ks 図形レイヤ移動.rb temp.txt %2 %3 > jwc_temp.txt
goto end
:do3
copy jwc_temp.txt temp.txt > nul
del jwc_temp.txt
ruby -Ks 図形レイヤ移動3.rb temp.txt %2 %3 > jwc_temp.txt
goto end
:do4
copy jwc_temp.txt temp.txt > nul
del jwc_temp.txt
ruby -Ks 図形レイヤ移動2.rb temp.txt %2 %3 %4 > jwc_temp.txt
goto end
:end

◎スクリプトファイル(図形レイヤ移動.rb)

BEGIN{
puts"hd"
while ARGV.length > 1
    case argument=ARGV.pop
        when /\/a/
            $lg="lg"+argument[2..-1]
        when /\/b/
            $ly="ly"+argument[2..-1]
    end
end
}
open("temp.txt","r"){|f|
    while line=f.gets
        xy =line.split
        if xy[0]=~/^lc/
            lc=xy[0]
        end
        if xy[0]=~/^lt/
            lt=xy[0]
        end
        if xy[0]=~/^hhp1/
            $hhplc=lc;$hhplt=lt
        end
    end
}
def main
    date=[]
    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]=~/^lc/
            lc=xy[0];print $_
        elsif xy[0]=~/^lt/
            lt=xy[0];print $_
        elsif xy[0]=~/^pn/
            pn=xy[0];print $_
        elsif xy[0]=~/^z/
            zno=ARGF.lineno;z=xy[0]
        elsif xy[0]=~/^[0-9]/ or xy[0]=~/^-/
            lnno=ARGF.lineno;lnlc=lc;lnlt=lt
            if lnlc==$hhplc && lnlt==$hhplt
                if zno==lnno-1
                    date<< z;date<< $_.chop
                else
                    date<< $_.chop
                end
            else
                if zno==lnno-1
                    puts z;print $_
                else
                    print $_
                end
            end
        elsif xy[0]=~/^ci/
            cino=ARGF.lineno
            if lc==$hhplc && lt==$hhplt
                if zno==cino-1
                    date<< z;date<< $_.chop
                else
                    date<< $_.chop
                end
            else
                if zno==cino-1
                    puts z;print $_
                else
                    print $_
                end
            end
        elsif xy[0]=~/^pt/
            ptno=ARGF.lineno
            if pn[2,1]==$hhplc[2,1]
                if zno==ptno-1
                    date<< pn;date<< z;date<< $_.chop
                else
                    date<< pn;date<< $_.chop
                end
            else
                if zno==ptno-1
                    puts z;print $_
                else
                    print $_
                end
                print $_
            end
        elsif xy[0]=~/^ch/ or xy[0]=~/^cs/
            chno=ARGF.lineno
            if zno==chno-1
                puts z;print $_
            else
                print $_
            end
        else
            print $_
        end
    end
    puts $lg;puts $ly;puts $hhplc;puts $hhplt
    date.each{|item|puts item}
end
main()

◎スクリプトファイル(図形レイヤ移動2.rb)

BEGIN{
puts"hd"
while ARGV.length > 1
    case argument=ARGV.pop
        when /\/a/
            $lg="lg"+argument[2..-1]
        when /\/b/
            $ly="ly"+argument[2..-1]
        when /\/c/
            $z="z"+argument[2..-1]
    end
end
}
def main
    date=[]
    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]=~/^lc/
            lc=xy[0];print $_
        elsif xy[0]=~/^lt/
            lt=xy[0];print $_
        elsif xy[0]=~/^pn/
            pn=xy[0];print $_
        elsif xy[0]=~/^z/
            zno=ARGF.lineno;z=xy[0]
        elsif xy[0]=~/^[0-9]/ or xy[0]=~/^-/
            lnno=ARGF.lineno;lnlc=lc;lnlt=lt
            if z==$z
                if zno==lnno-1
                    date<< lc;date<< lt;date<< z
                    date<< $_.chop
                else
                    print $_
                end
            else
                if zno==lnno-1
                    puts z;print $_
                else
                    print $_
                end
            end
        elsif xy[0]=~/^ci/
            cino=ARGF.lineno
            if z==$z
                if zno==cino-1
                    date<< lc;date<< lt;date<< z
                    date<< $_.chop
                else
                    print $_
                end
            else
                if zno==cino-1
                    puts z;print $_
                else
                    print $_
                end
            end
        elsif xy[0]=~/^pt/
            ptno=ARGF.lineno
            if z==$z
                if zno==ptno-1
                    date<< pn;date<< z;date<< $_.chop
                else
                    print $_
                end
            else
                if zno==ptno-1
                    puts z;print $_
                else
                    print $_
                end
            end
        elsif xy[0]=~/^ch/ or xy[0]=~/^cs/
            chno=ARGF.lineno
            if z==$z
                if zno==chno-1
                    date<< z;date<< $_.chop
                else
                    print $_
                end
            else
                if zno==chno-1
                    puts z;print $_
                else
                    print $_
                end
            end
        else
            print $_
        end
    end
    puts $lg;puts $ly
    date.each{|item|puts item}
end
main()


Indexへ
(25802)←【25803】→(25823)
------------------------
【タイトル】スクリプトファイル3
【記事番号】 25803 (25802)
【 日時 】05/01/10 12:04
【 発言者 】コジマ

◎スクリプトファイル(ファイル名 図形レイヤ移動)

BEGIN{
puts"hd"
while ARGV.length > 1
    case argument=ARGV.pop
        when /\/a/
            $lg="lg"+argument[2..-1]
        when /\/b/
            $ly="ly"+argument[2..-1]
    end
end
}
def main
    date=[]
    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]=~/^cn/ && xy[0]=~/[0-9]$/
            cn=$_.chop
        elsif xy[0]=~/^cn\"/
            cnf=$_.chop
        elsif xy[0]=~/^z/
            zno=ARGF.lineno;z=xy[0];print $_
        elsif xy[0]=~/^ch/ or xy[0]=~/^cs/
            chno=ARGF.lineno
            if zno==chno-1
                date<< cn;date<< cnf
                date<< z;date<< $_.chop
            else
                date<< cn;date<< cnf
                date<< $_.chop
            end
        else
            print $_
        end
    end
    puts $lg;puts $ly
    date.each{|item|puts item}
end
main()


Indexへ
(25803)←【25823】→(25843)
------------------------
【タイトル】バグ修正
【記事番号】 25823 (25802)
【 日時 】05/01/10 20:17
【 発言者 】コジマ

図形レイヤ移動2.rbにバグがありました。
(文字種・文字フォントが変わってしまう)

以下のように修正します。

◎スクリプトファイル(図形レイヤ移動2.rb)


BEGIN{
puts"hd"
while ARGV.length > 1
    case argument=ARGV.pop
        when /\/a/
            $lg="lg"+argument[2..-1]
        when /\/b/
            $ly="ly"+argument[2..-1]
        when /\/c/
            $z="z"+argument[2..-1]
    end
end
}
def main
    date=[]
    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]=~/^lc/
            lc=xy[0];print $_
        elsif xy[0]=~/^lt/
            lt=xy[0];print $_
        elsif xy[0]=~/^pn/
            pn=xy[0];print $_
        elsif xy[0]=~/^cn/ && xy[0]=~/[0-9]$/
            cn=$_.chop
        elsif xy[0]=~/^cn\"/
            cnf=$_.chop
        elsif xy[0]=~/^z/
            zno=ARGF.lineno;z=xy[0]
        elsif xy[0]=~/^[0-9]/ or xy[0]=~/^-/
            lnno=ARGF.lineno;lnlc=lc;lnlt=lt
            if z==$z
                if zno==lnno-1
                    date<< lc;date<< lt;date<< z
                    date<< $_.chop
                else
                    print $_
                end
            else
                if zno==lnno-1
                    puts z;print $_
                else
                    print $_
                end
            end
        elsif xy[0]=~/^ci/
            cino=ARGF.lineno
            if z==$z
                if zno==cino-1
                    date<< lc;date<< lt;date<< z
                    date<< $_.chop
                else
                    print $_
                end
            else
                if zno==cino-1
                    puts z;print $_
                else
                    print $_
                end
            end
        elsif xy[0]=~/^pt/
            ptno=ARGF.lineno
            if z==$z
                if zno==ptno-1
                    date<< pn;date<< z;date<< $_.chop
                else
                    print $_
                end
            else
                if zno==ptno-1
                    puts z;print $_
                else
                    print $_
                end
            end
        elsif xy[0]=~/^ch/ or xy[0]=~/^cs/
            chno=ARGF.lineno
            if z==$z
                if zno==chno-1
                    date<< cn;date<< cnf
                    date<< z;date<< $_.chop
                else
                    puts cn;puts cnf
                    print $_
                end
            else
                if zno==chno-1
                    puts cn;puts cnf
                    puts z;print $_
                else
                    puts cn;puts cnf
                    print $_
                end
            end
        else
            print $_
        end
    end
    puts $lg;puts $ly
    date.each{|item|puts item}
end
main()


Indexへ
(25823)←【25843】→(25853)
------------------------
【タイトル】Re(1):バグ修正
【記事番号】 25843 (25823)
【 日時 】05/01/11 11:47
【 発言者 】よくちん

コジマさん
早速の外変ありがとうございます

試してみました。
線種、円、属性 が 指示した レイヤーグループに移動しません。
文字については 線を選んだときに 文字が移動してしまいます。(線は移動しません)

>記、4−指定した図形と同じ属性を持つ指定範囲の図形
>ですが、1つの図形が複数の属性を持つ場合がありますので。
>(and条件か?or条件か? で選択数が違います。)
4−指定した図形と同じ線種、線色を持つ指定範囲の図形
           ↑↑↑↑↑この条件ならどうですか?

>上記手順の4−・・・指定範囲の図形が非表示又は仮表示になり・・・
>現在のJWWの仕様では、外部変形で、レイヤの表示、非表示を行うことは出来ませ>>ん。(書込レイヤの変更は出来ます。)

移動先のレイヤーを非表示か仮表示に設定しておけば出来ませんか?
5−の手順で3に戻って移動したい線を連続指示したいので、書き込みレイヤーに移動しなくても良いです。
外変の流れ上連続指示は難しいのでしょうか?


Indexへ
(25843)←【25853】→(25879)
------------------------
【タイトル】操作説明
【記事番号】 25853 (25843)
【 日時 】05/01/11 12:52
【 発言者 】コジマ

▼よくちんさん:

1、バッチファイルで、1)線指示 を選択した場合
指示した線と 同じ線色・線種(and条件)の線・円 及び、同じ点色の実点を指定したレイヤに移動する。

2、バッチファイルで、2)円指示 を選択した場合
指示した線と 同じ線色・線種(and条件)の線・円 及び、同じ点色の実点を指定したレイヤに移動する。
(指示する図形が円になっただけ、機能は1、と同じ。同じスクリプトファイルで動作しています。)

3、バッチファイルで、3)文字選択 を選択した場合
範囲選択した文字を全て、指定したレイヤに移動する。
文字種の選択はしません。
(図形レイヤ移動3.rbで動作しています。)

4、バッチファイルで、4)属性指定 を選択した場合
範囲選択した図形及び文字の中から、選択した属性に該当するものを、指定したレイヤに移動する。
(図形レイヤ移動2.rbで動作しています。)


>線種、円、属性 が 指示した レイヤーグループに移動しません。
>文字については 線を選んだときに 文字が移動してしまいます。(線は移動しません)

ファイル名が違っていますね。

「線指示」「円指示」→図形レイヤ移動.rb

「属性指定」→図形レイヤ移動2.rb

「文字選択」→図形レイヤ移動3.rb


>4−指定した図形と同じ線種、線色を持つ指定範囲の図形
>           ↑↑↑↑↑この条件ならどうですか?
この条件で作成しました。(「線指示」「円指示」)


>移動先のレイヤーを非表示か仮表示に設定しておけば出来ませんか?
>5−の手順で3に戻って移動したい線を連続指示したいので、書き込みレイヤーに移動しなくても良いです。

データをレイヤ移動させるとそこが自動的に書込レイヤになるようです。
レイヤーを非表示か仮表示に設定おいても、移動先のレイヤは強制的に書込レイヤになるようです。

>外変の流れ上連続指示は難しいのでしょうか?
一旦、外変を実行すると選択範囲はクリアされます。
(h4・・・全選択指定ならば、連続指示が可能かも知れませんが、但し外変を再実行することに変わりありません。)

追記
レイヤグループ間での移動は、実寸法固定です。
縮尺の違うレイヤグループへの移動はやめてください。


Indexへ
(25853)←【25879】→(25893)
------------------------
【タイトル】Re(1):操作説明
【記事番号】 25879 (25853)
【 日時 】05/01/11 18:27
【 発言者 】よくちん

ありがとうございます。
ファイル名の 図形レイヤ移動3.rb がありませんでした。

属性指定で寸法属性を移動しようとしても、

      777
・−−−−−−−−−−−−・

引き出し線は移動するのですが、寸法線と寸法の(上の図の)が移動しません。
どうすればよいのでしょうか?

書き込みレイヤーが変更になる件は、了解しました。
移動先のレイヤーをいちいち指示するのは面倒ですが。今までより幾分と操作しやすくなりました。ありがとうございます。


Indexへ
(25879)←【25893】//(25692)
------------------------
【タイトル】寸法図形には対応していません。
【記事番号】 25893 (25879)
【 日時 】05/01/11 21:03
【 発言者 】コジマ

>属性指定で寸法属性を移動しようとしても、
>
>      777
>・−−−−−−−−−−−−・
>
>引き出し線は移動するのですが、寸法線と寸法の(上の図の)が移動しません。
>どうすればよいのでしょうか?
>

外部変形では寸法図形は、寸法属性がなくなります。
外部変形では寸法図形に寸法属性を持たせられません。

通常の寸法属性(z3)の記述
z3
線データ
z3
線データ
z3
線データ
z3
線データ
z3
文字データ

寸法図形(msg)の記述
msg
線データ
文字データ

寸法図形を解除すれば移動します。


>書き込みレイヤーが変更になる件は、了解しました。
>移動先のレイヤーをいちいち指示するのは面倒ですが。今までより幾分と操作しやすくなりました。ありがとうございます。

スクリプトファイルの末尾から3行目に別のレイヤグループ名、レイヤ名を追記すればそのレイヤを書込レイヤにできます。
そうすれば、TABキー2回押し後、線クリック で移動先のレイヤを非表示にできます。
(外部変形は、右クリックで再実行です。)

使用しないレイヤ名を記述するのも一案です。


例(レイヤグループ0のレイヤ0を自動的に書込レイヤにする)

puts"lg0";puts"ly0"#この行に追記する
end
main()