Jw_cad 相談室−その2 New

 Jw_cad についての相談の場としてお使いください
情報の交換には Jw_cad 情報交換室 をご利用ください
なお、情報交換室と相談室の両方に同じ内容を投稿するのはご遠慮ください

2009年9月以前の発言過去ログのページからご覧ください。

それ以降の過去ログは消失しています。
申し訳ありませんが、復活の予定はありません。


新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃過去ログ ┃ホーム
11 / 301 ツリー    ←次へ | 前へ→

複数のファイルの図面の線種など一括変更の仕方 加藤 21/11/10(水) 10:01

Re:複数のファイルの図面の線種など一括変更の仕方 加藤 21/11/10(水) 21:33
Re:複数のファイルの図面の線種など一括変更の仕方 加藤 21/11/10(水) 21:58
Re:複数のファイルの図面の線種など一括変更の仕方 Keiichi 21/11/11(木) 7:35
[投稿者削除]
Re:複数のファイルの図面の線種など一括変更の仕方 Keiichi 21/11/11(木) 13:03
Re:複数のファイルの図面の線種など一括変更の仕方 加藤 21/11/11(木) 18:22
Re:複数のファイルの図面の線種など一括変更の仕方 Keiichi 21/11/11(木) 18:52
pathの設定が必要 kojima 21/11/11(木) 20:10
Re:pathの設定が必要 加藤 21/11/11(木) 23:07
Re:pathの設定が必要 kojima 21/11/12(金) 12:51
Re:pathの設定が必要 加藤 21/11/12(金) 20:46
Re:pathの設定が必要 kojima 21/11/12(金) 23:47
続き kojima 21/11/12(金) 23:48
Re:pathの設定が必要 加藤 21/11/13(土) 22:58
行頭の半角スペースと文字コード kojima 21/11/14(日) 13:49
Re:行頭の半角スペースと文字コード 加藤 21/11/14(日) 21:12

Re:複数のファイルの図面の線種など一括変...
 加藤  - 21/11/10(水) 21:33 -
▼kojimaさん:
>▼加藤さん:
>>いつもお世話になります。
>>
>>お客様から頂いたJWWの図面を
>>
>>全ての属性を解除
>>全ての寸法図形を解除
>>全てのブロック図形を解除
>>全ての線をペン1に
>>全ての文字色をペン1に
>>全ての文字のフォントをMS明朝に
>>
>>上記の作業をいつも手動でやってました。
>>
>>それを随分前にここのサイトで何かのbatファイル(ruby?)と言うものでそのファイルと同じフォルダー内に入れた図面を一括で上記の作業をしてもらうようなものを教えて頂いたのですが、PCを変えてからエラーが出てうまくいきません。
>
>そのPCにrubyがインストールされていない?
>または、以前のPCと違うバージョンのrubyをインストールされたのでしょう。
>
>
>以前のPCに保存されているRubyインストーラーをコピーして再インストール。Pathの設定も忘れないでください。

kojima様
早速のアドバイスありがとうございました。

やはりそのrubyというものなんですね。

実はそれをこの数日ネットで調べながらインストールしようとやってたんですが、あまりにも難しくて諦めてしまいました。

出来たつもりでも実際にbatファイルを実行すすと再びエラーになってしまいます。

何が悪いのかもわからず、どうなったらrubyのインストールに成功したのかもわからなくて・・・


以前のPCもすでに手元にありません、どこかに素人でもrubyをインストールする手順がわかるサイトとかありますか?

宜しくお願いします。

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.44@M014011067097.v4.enabler.ne.jp>
・ツリー全体表示

Re:複数のファイルの図面の線種など一括変...
 加藤  - 21/11/10(水) 21:58 -
▼加藤さん:
>▼kojimaさん:
>>▼加藤さん:
>>>いつもお世話になります。
>>>
>>>お客様から頂いたJWWの図面を
>>>
>>>全ての属性を解除
>>>全ての寸法図形を解除
>>>全てのブロック図形を解除
>>>全ての線をペン1に
>>>全ての文字色をペン1に
>>>全ての文字のフォントをMS明朝に
>>>
>>>上記の作業をいつも手動でやってました。
>>>
>>>それを随分前にここのサイトで何かのbatファイル(ruby?)と言うものでそのファイルと同じフォルダー内に入れた図面を一括で上記の作業をしてもらうようなものを教えて頂いたのですが、PCを変えてからエラーが出てうまくいきません。
>>
>>そのPCにrubyがインストールされていない?
>>または、以前のPCと違うバージョンのrubyをインストールされたのでしょう。
>>
>>
>>以前のPCに保存されているRubyインストーラーをコピーして再インストール。Pathの設定も忘れないでください。
>
>kojima様
>早速のアドバイスありがとうございました。
>
>やはりそのrubyというものなんですね。
>
>実はそれをこの数日ネットで調べながらインストールしようとやってたんですが、あまりにも難しくて諦めてしまいました。
>
>出来たつもりでも実際にbatファイルを実行すすと再びエラーになってしまいます。
>
>何が悪いのかもわからず、どうなったらrubyのインストールに成功したのかもわからなくて・・・
>
>
>以前のPCもすでに手元にありません、どこかに素人でもrubyをインストールする手順がわかるサイトとかありますか?
>
>宜しくお願いします。


追記

先ほどネットを見ながらrubyをインストールしました、成功したかどうかの判断方法ものっていたので成功したと思います。
しかしbatファイルはエラーで止まってしまいます。

rubyとbatファイルのバージョン?が違うのでしょうか?
何か確認する方法ありますか?

いろんなバージョンのrubyが選択できたのですが一番新しいものをインストールしました、それがだめだったのでしょうか?

どなたかわかる方がおられましたら宜しくお願いします。

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.44@M014011067097.v4.enabler.ne.jp>
・ツリー全体表示

Re:複数のファイルの図面の線種など一括変...
 Keiichi  - 21/11/11(木) 7:35 -
▼加藤さん:
>いろんなバージョンのrubyが選択できたのですが一番新しいものをインストールしました、それがだめだったのでしょうか?

ActiveScriptRuby(1.8.7-p330
https://www.artonx.org/data/asr/

これを使えばほとんどの外部変形が動くと思います
これで動かなかったら原因は分かりません

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36 Edg/95.0.1020.44@45.92.32.6>
・ツリー全体表示

[投稿者削除]
   - -
この書き込みは投稿者によって削除されました。(21/11/11(木) 13:23)

引用なし

パスワード


<@>
・ツリー全体表示

Re:複数のファイルの図面の線種など一括変...
 Keiichi  - 21/11/11(木) 13:03 -
▼R.Nさん:
後半に書かれているlibraryを入れなくて動くのがActiveScriptRuby-1.8.7-p330です。
紹介ペーシの最初にも
ここで入手したRubyの圧縮ファイル ActiveScriptRuby-1.8.7-p330(ActiveRuby.msi)には、VisualuRubyのバイナリ(swin.so)は導入されています。
このように書かれています。
取りあえずこれを入れて動かなかったらアドバイスしたらどうですか?
情報も大事ですけど、初心者にあれこれいろんな事を言うと混乱するだけです

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36 Edg/95.0.1020.44@45.92.32.6>
・ツリー全体表示

Re:複数のファイルの図面の線種など一括変...
 加藤  - 21/11/11(木) 18:22 -
▼Keiichiさん:
>▼加藤さん:
>>いろんなバージョンのrubyが選択できたのですが一番新しいものをインストールしました、それがだめだったのでしょうか?
>
>ActiveScriptRuby(1.8.7-p330
>https://www.artonx.org/data/asr/
>
>これを使えばほとんどの外部変形が動くと思います
>これで動かなかったら原因は分かりません

keiichiさん、ありがとうございました。
早速試してみましたが同じ内容のエラーが出ます。

先日インストールしたruby3.0.2-1×64というものがだめなのかと思いアンインストールしましたがそしたら、今度は

rubyは内部コマンド操作可能なプログラム又はバッチファイルとして認識されません。

と出ます。

インストールするときにインストール先などの変更とかが必要なのでしょうか?

今は規定通りcのプログラムファイル(×86)というところにインストールしました。

もう無理なのかなと半分諦めてるのでのし良かったらアドバイスお願いします。

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.44@M014011067097.v4.enabler.ne.jp>
・ツリー全体表示

Re:複数のファイルの図面の線種など一括変...
 Keiichi  - 21/11/11(木) 18:52 -
▼加藤さん:
削除されましたがR.Nさんがレスされたruby導入を詳しく書かれているページです
http://yakushima-tonbo.com/jw_cad/ruby/

頑張って下さい

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36 Edg/95.0.1020.44@45.92.32.6>
・ツリー全体表示

pathの設定が必要
 kojima  - 21/11/11(木) 20:10 -
▼加藤さん:

>今は規定通りcのプログラムファイル(×86)というところにインストールしました。
>
>もう無理なのかなと半分諦めてるのでのし良かったらアドバイスお願いします。

半角スペースが含まれているフォルダ名は避ける。
(cのプログラムファイル(×86)は×)

c:\rubyというフォルダを作成して、そこにインストールするのが望ましい。

インストール後にpathの設定が必要です。

pathの設定法
https://memorva.jp/memo/dev/windows_path.php

c:\ruby\bin
を追記する。

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.44@ai126173134219.46.access-internet.ne.jp>
・ツリー全体表示

Re:pathの設定が必要
 加藤  - 21/11/11(木) 23:07 -
▼kojimaさん:
>▼加藤さん:
>
>>今は規定通りcのプログラムファイル(×86)というところにインストールしました。
>>
>>もう無理なのかなと半分諦めてるのでのし良かったらアドバイスお願いします。
>
>半角スペースが含まれているフォルダ名は避ける。
>(cのプログラムファイル(×86)は×)
>
>c:\rubyというフォルダを作成して、そこにインストールするのが望ましい。
>
>インストール後にpathの設定が必要です。
>
>pathの設定法
>https://memorva.jp/memo/dev/windows_path.php
>↓
>c:\ruby\bin
>を追記する。

ありがとうございました。
しかしやはり出来ませんでした。

cドライブにrubyというフォルダーを作ってそこにインストールしました。
それでbatファイルをクリックすると同じエラーがでます。

教えていただいたサイトのインストールの確認方法で

ディスクトップに ruby console アイコンをクリックする。
黒いウインドウが開くので、キーボードで ruby△-v と入力して Enterキーを押す。
ruby 1.8.7 (2010-12-23 patchlevel 330) [i386-mswin32] 画像
と表示されたらrubyのインストールは完了です。


とありますが、これはちゃんとできました。


pathのところですが環境変数の画面は
加藤(私です)の環境変数とシステムの環境変数の二つありますがどちらのpathでしょうか?

とりあえず両方やってみたのですがうまくいかないです。

どちらのpathの中身も3種類ほどありましてそのうちのどれを変更すればいいのでしょうか?

適当な一つを

%SystemRoot%\System32\Wbem  ←もともとここの後ろにはセミコロンはありませんでした。

これを下のように変えましたがこれでよかったでしょうか?

%SystemRoot%\System32\Wbem;c:\ruby\bin;

皆様に親切に教えていただいてるのに私の頭がついていけず申し訳ないです。
また気が付くことがあれば教えてください。

宜しくお願いします。

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.44@M014011067097.v4.enabler.ne.jp>
・ツリー全体表示

Re:pathの設定が必要
 kojima  - 21/11/12(金) 12:51 -
batファイルの
ruby -x %~f0

c:\ruby\bin\ruby -x %~f0
に変更してから実行してみてください。

「rubyは内部コマンド操作可能なプログラム又はバッチファイルとして認識されません」というメッセージがでれば、
c:\rubyにインストールされていません。

通常のエラーだと、以前のPCにインストールされていたのは、
Ruby2.1〜Ruby2.4の可能性があります。
Ruby2.7で仕様変更がされているので最新バージョンのRubyでは正常動作しません。

引用なし

パスワード


<Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; MALNJS; rv:11.0) like Gecko@ai126170139217.41.access-internet.ne.jp>
・ツリー全体表示

Re:pathの設定が必要
 加藤  - 21/11/12(金) 20:46 -
▼kojimaさん:
>batファイルの
>ruby -x %~f0
>を
>c:\ruby\bin\ruby -x %~f0
>に変更してから実行してみてください。
>
>「rubyは内部コマンド操作可能なプログラム又はバッチファイルとして認識されません」というメッセージがでれば、
>c:\rubyにインストールされていません。
>
>通常のエラーだと、以前のPCにインストールされていたのは、
>Ruby2.1〜Ruby2.4の可能性があります。
>Ruby2.7で仕様変更がされているので最新バージョンのRubyでは正常動作しません。

何度も本当にありがとうございます。

御指示いただいたようにbatファイルをメモ帳で開いて1行目を編集して別名で保存しました。
それを実行したら

ファイル名のあとに・ス・ス・ス・ス・・・のような感じのよくわからないエラーが出ました。

このbatファイルは同じフォルダー内にあるjwwのファイルの中身を線色や文字色を変えてくれるものでした。

ですのでファイル名が出たことは前進したのかなと思います。

そしてその下には


nil can't be coerced info Fixnym

と出ました。

編集する前のbatファイルをクリックしたときは
「rubyは内部コマンド又は外部コマンド、操作可能なプログラム又はバッチファイルとして認識されません」

と出ていました。

このbatファイル自体がだめなのでしょうか?

分かりましたら宜しくお願いします。

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.44@M014011067097.v4.enabler.ne.jp>
・ツリー全体表示

Re:pathの設定が必要
 kojima  - 21/11/12(金) 23:47 -
以下のbatファイルをコピペして実行してみてください。


c:\ruby\bin\ruby -x %~f0
pause
goto end
#!ruby -Ks
$lc=1
#data_mojiとdata_noをarray2(二重配列)に収集する。
def data_no_collect(data,i,array2,data_moji,no,hash,j)
data_no=no+j
array2<<[data_moji,data_no]
i=data_next(data,i,data_moji,hash)
return i
end
#data_mojiのバイト数の分だけiを次へ進める。
def data_next(data,i,data_moji,hash)
if data_moji=="CDataMoji"
font_change(data,i,data_moji)

f_i=data[i+83,1].unpack("C")[0]
m_i=data[i+84+f_i,1].unpack("C")[0]
m_byte=83+f_i+m_i+2
hash[data_moji]=m_byte
i += hash[data_moji]
elsif data_moji=="CDataSunpou"
lc_change2(data,i,data_moji)
font_change2(data,i,data_moji)

f_i=data[i+145,1].unpack("C")[0]
m_i=data[i+146+f_i,1].unpack("C")[0]
m_byte=147+f_i+m_i+236
hash[data_moji]=m_byte
i += hash[data_moji]
elsif data_moji=="CDataSolid"
if data[i+5] == 10
i += hash[data_moji]+4
else
i += hash[data_moji]
end
elsif data_moji=="CDataTen"
lc_change(data,i,data_moji)#線・円の場合は、$str_hに対応する線色に変更
if data[i+4] == 100
i += hash[data_moji]+20
else
i += hash[data_moji]
end
else
lc_change(data,i,data_moji)#線・円の場合は、$str_hに対応する線色に変更
i += hash[data_moji]
end
return i
end
#線・円を線色1に変更する
def lc_change(data,i,data_moji)
data[i+5,2]=[$lc].pack("S")
end
#寸法図形を線色1に変更する
def lc_change2(data,i,data_moji)
data[i+20,2]=[$lc].pack("S")
end
#文字色を線色1 文字のフォントをMS 明朝にする
def font_change(data,i,data_moji)
data[i+5,2]=[$lc].pack("S")
data[i+47,4]=[0].pack("L")
f_i=data[i+83,1].unpack("C")[0]
data[i+83,1]=[9].pack("C")
data[i+83+1,f_i]="MS 明朝".unpack("C*").pack("C*")
end
#寸法図形の線色1 フォントをMS 明朝にする
def font_change2(data,i,data_moji)
data[i+67,2]=[$lc].pack("S")
data[i+109,4]=[0].pack("L")
f_i=data[i+145,1].unpack("C")[0]
data[i+145,1]=[9].pack("C")
data[i+145+1,f_i]="MS 明朝".unpack("C*").pack("C*")
end
#メインルーチン
path=Dir.pwd
file_a=(Dir.entries(path)).select{|item|item=~/\.jww$/i}
file_a.each{|file|
base_name = $` if file =~ /\.jww$/i
new_file_neme = base_name+"_2"+".jww"
begin
i=0
data=""
open(file,"rb"){|f|data=f.read}
#◎jwwデータの宣言
i += 8
#◎図面のバージョン
b_n=data[i,4].unpack("L")[0]
i += 4
if b_n<351
puts "バージョンNO#{b_n}には対応していません。パスします";next
end
memo_byte=data[i,1].unpack("C")[0]
i += 1+memo_byte
i += 8
0.upto(15){|i1|i += 20
0.upto(15){|i2|i += 8}
}
i += 14*4#ダミー
i += 100
0.upto(15){|i1|
0.upto(15){|i2|byte=data[i,1].unpack("C")[0];i += byte+1}
}
0.upto(15){|i1|byte=data[i,1].unpack("C")[0];i += byte+1}
i += 96
if b_n>=300
1.upto(8){|i1|i += 28}
else
1.upto(4){|i1|i += 24}
end
if b_n >=300
i += 44
if b_n <404
i += 12
else
i += 12
end
end
i +=2820
0.upto(256){|i1|lcn_byte=data[i,1].unpack("C")[0];i += 1+lcn_byte;i += 16}
i+=528
0.upto(32){|i1|
ltn_byte=data[i,1].unpack("C")[0];i += 1+ltn_byte;i += 4
i+=80
}

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.44@ai126173137179.46.access-internet.ne.jp>
・ツリー全体表示

続き
 kojima  - 21/11/12(金) 23:48 -
i += 380
int1=data[i,2].unpack("S")[0]
if int1==255*256+255
i += 2
n2=data[i,4].unpack("L")[0]
i += 4
else
n2=int1
i += 2
end
hash={"CDataSen"=>47,"CDataTen"=>35,"CDataEnko"=>75,"CDataSolid"=>79,"CDataBlock"=>59}
data_moji="";array2=[];no=0;j=0
while no<n2
no += 1
int1=data[i,2].unpack("S")[0]
if int1==255*256+255
i += 4
n=data[i,2].unpack("S")[0]
i += 2
data_moji=data[i,n]
i += n
i=data_no_collect(data,i,array2,data_moji,no,hash,j)
j += 1
elsif int1==127*256+255
i += 2
n=data[i,4].unpack("L")[0]-128*256*256*256
i += 4
array2.each{|item|
if item[1] == n
data_moji=item[0]
break
end
}
i=data_next(data,i,data_moji,hash)
else
n=int1-(128*256)
i += 2
array2.each{|item|
if item[1] == n
data_moji=item[0]
break
end
}
i=data_next(data,i,data_moji,hash)
end
end
bl_list_i=data.index("CDataList")
if bl_list_i
no += 1;list_no=no+j
bl_l_n=data[i,2].unpack("S")[0]
i += 17
bl_l_no=0
while bl_l_no<bl_l_n
no += 1
bl_l_no += 1
i += 15
m_no=data[i,4].unpack("L")[0]
i += 4
flg=data[i,4].unpack("L")[0]
i += 4
time=data[i,4].unpack("l")[0]
if time>=0
i += 4
name_byte=data[i,1].unpack("C")[0]
i += 1+name_byte
else
i += 4
time1,time2=data[i,8].unpack("LL")
i += 8
name_byte=data[i,1].unpack("C")[0]
i += 1+name_byte
end

w=data[i,2].unpack("S")[0];i += 2
if w==256*255+255
l=data[i,4].unpack("L")[0];i += 4;
z_n=l
else
z_n=w
end
z_no=0
while z_no<z_n
no += 1
z_no += 1
int=data[i,2].unpack("S")[0]
if int==255*256+255
i += 4
n=data[i,2].unpack("S")[0]
i += 2
data_moji=data[i,n]
i += n
i=data_no_collect(data,i,array2,data_moji,no,hash,j)
j += 1
elsif int==127*256+255
i += 2
n=data[i,4].unpack("L")[0]-(128*256*256*256)
i += 4
array2.each{|item|
if item[1] == n
data_moji=item[0]
break
end
}
i=data_next(data,i,data_moji,hash)
else
n=(data[i,2].unpack("S")[0])-(128*256)
i += 2
array2.each{|item|
if item[1] == n
data_moji=item[0]
break
end
}
i=data_next(data,i,data_moji,hash)
end
end
if bl_l_no<bl_l_n
if list_no>127*256+255
i += 6
else
i += 2
end
end
end
end
open(new_file_neme,"wb"){|f|f.write data}
puts "#{file}のコピー #{new_file_neme}を作成し、線色:#{$lc} 文字色:#{$lc} 文字フォント:MS 明朝 に変更しました",""
rescue
puts "#{file}でエラーが発生しました パスします"
puts $!
end
}
__END__
:end

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.44@ai126173137179.46.access-internet.ne.jp>
・ツリー全体表示

Re:pathの設定が必要
 加藤  - 21/11/13(土) 22:58 -
▼kojimaさん:
>以下のbatファイルをコピペして実行してみてください。
>
>
>c:\ruby\bin\ruby -x %~f0
>pause
>goto end
>#!ruby -Ks
>$lc=1
>#data_mojiとdata_noをarray2(二重配列)に収集する。
>def data_no_collect(data,i,array2,data_moji,no,hash,j)
> data_no=no+j
> array2<<[data_moji,data_no]
> i=data_next(data,i,data_moji,hash)
> return i
>end
>#data_mojiのバイト数の分だけiを次へ進める。
>def data_next(data,i,data_moji,hash)
> if data_moji=="CDataMoji"
> font_change(data,i,data_moji)
>
> f_i=data[i+83,1].unpack("C")[0]
> m_i=data[i+84+f_i,1].unpack("C")[0]
> m_byte=83+f_i+m_i+2
> hash[data_moji]=m_byte
> i += hash[data_moji]
> elsif data_moji=="CDataSunpou"
> lc_change2(data,i,data_moji)
> font_change2(data,i,data_moji)
>
> f_i=data[i+145,1].unpack("C")[0]
> m_i=data[i+146+f_i,1].unpack("C")[0]
> m_byte=147+f_i+m_i+236
> hash[data_moji]=m_byte
> i += hash[data_moji]
> elsif data_moji=="CDataSolid"
> if data[i+5] == 10
> i += hash[data_moji]+4
> else
> i += hash[data_moji]
> end
> elsif data_moji=="CDataTen"
> lc_change(data,i,data_moji)#線・円の場合は、$str_hに対応する線色に変更
> if data[i+4] == 100
> i += hash[data_moji]+20
> else
> i += hash[data_moji]
> end
> else
> lc_change(data,i,data_moji)#線・円の場合は、$str_hに対応する線色に変更
> i += hash[data_moji]
> end
> return i
>end
>#線・円を線色1に変更する
>def lc_change(data,i,data_moji)
> data[i+5,2]=[$lc].pack("S")
>end
>#寸法図形を線色1に変更する
>def lc_change2(data,i,data_moji)
> data[i+20,2]=[$lc].pack("S")
>end
>#文字色を線色1 文字のフォントをMS 明朝にする
>def font_change(data,i,data_moji)
> data[i+5,2]=[$lc].pack("S")
> data[i+47,4]=[0].pack("L")
> f_i=data[i+83,1].unpack("C")[0]
> data[i+83,1]=[9].pack("C")
> data[i+83+1,f_i]="MS 明朝".unpack("C*").pack("C*")
>end
>#寸法図形の線色1 フォントをMS 明朝にする
>def font_change2(data,i,data_moji)
> data[i+67,2]=[$lc].pack("S")
> data[i+109,4]=[0].pack("L")
> f_i=data[i+145,1].unpack("C")[0]
> data[i+145,1]=[9].pack("C")
> data[i+145+1,f_i]="MS 明朝".unpack("C*").pack("C*")
>end
>#メインルーチン
>path=Dir.pwd
>file_a=(Dir.entries(path)).select{|item|item=~/\.jww$/i}
>file_a.each{|file|
> base_name = $` if file =~ /\.jww$/i
> new_file_neme = base_name+"_2"+".jww"
> begin
> i=0
> data=""
> open(file,"rb"){|f|data=f.read}
> #◎jwwデータの宣言
> i += 8
> #◎図面のバージョン
> b_n=data[i,4].unpack("L")[0]
> i += 4
> if b_n<351
> puts "バージョンNO#{b_n}には対応していません。パスします";next
> end
> memo_byte=data[i,1].unpack("C")[0]
> i += 1+memo_byte
> i += 8
> 0.upto(15){|i1|i += 20
> 0.upto(15){|i2|i += 8}
> }
> i += 14*4#ダミー
> i += 100
> 0.upto(15){|i1|
> 0.upto(15){|i2|byte=data[i,1].unpack("C")[0];i += byte+1}
> }
> 0.upto(15){|i1|byte=data[i,1].unpack("C")[0];i += byte+1}
> i += 96
> if b_n>=300
> 1.upto(8){|i1|i += 28}
> else
> 1.upto(4){|i1|i += 24}
> end
> if b_n >=300
> i += 44
> if b_n <404
> i += 12
> else
> i += 12
> end
> end
> i +=2820
> 0.upto(256){|i1|lcn_byte=data[i,1].unpack("C")[0];i += 1+lcn_byte;i += 16}
> i+=528
> 0.upto(32){|i1|
> ltn_byte=data[i,1].unpack("C")[0];i += 1+ltn_byte;i += 4
> i+=80
> }

ありがとうございます。
この上のものと続きの中のやつを上下つなげてひとつのbatファイルとして保存して実行しましたが。うまくいきませんでした。

d;/フォルダー名/バッチファイル名.bat:210:syntax error,unexpected tCONSTANT,rxpecting KEND
int=data[i,2]unpack("s")[0]

みたいなものが30行ほどでます。
コピペが出来なかったので見ながら打ち込みましたから間違いがあるかもしれませんが・・・

そろそろ諦めたほうがよさそうですかね。

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.44@M014011067097.v4.enabler.ne.jp>
・ツリー全体表示

行頭の半角スペースと文字コード
 kojima  - 21/11/14(日) 13:49 -
この掲示板を経由してコピペすると、行頭に半角スペースが付加される場合があります。
その場合は、行頭の半角スペースを削除する。

特に、文頭から4行

ruby -x %~f0
pause
goto end
#!ruby -Ks



末尾から2行

__END__
:end

の行頭に半角スペースがあってはいけません。

メモ帳(notepad)にコピペした場合
保存する時の文字コードをANSIにしてください。

引用なし

パスワード


<Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; MALNJS; rv:11.0) like Gecko@ai126173128132.46.access-internet.ne.jp>
・ツリー全体表示

Re:行頭の半角スペースと文字コード
 加藤  - 21/11/14(日) 21:12 -
▼kojimaさん:
>この掲示板を経由してコピペすると、行頭に半角スペースが付加される場合があります。
>その場合は、行頭の半角スペースを削除する。
>
>特に、文頭から4行
>
>ruby -x %~f0
>pause
>goto end
>#!ruby -Ks
>
>と
>
>末尾から2行
>
>__END__
>:end
>
>の行頭に半角スペースがあってはいけません。
>
>メモ帳(notepad)にコピペした場合
>保存する時の文字コードをANSIにしてください。

kojima様、出来ました!

batファイルをメモ帳で開いて半角スペースを確認しようとしたら、日本語の部分が文字化けしてるのに気が付き、原因がわからないのでもう一度コピペして保存しなおしたら見事に出来ました。

ブロック図形は解除されていませんでしたがペン色文字色フォントの変更は出来ました。
ブロック図形の解除ぐらいはすぐに出来るので大変助かりました。

面倒なご質問に親切に対応していただき本当にありがとうございました。

感謝しております。

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.53@M014011067097.v4.enabler.ne.jp>
・ツリー全体表示

11 / 301 ツリー    ←次へ | 前へ→
新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃過去ログ ┃ホーム
 911337
ページ:  ┃  記事番号:  

C-BOARD Moyuku v1.03b5
Jw_cad Copyright (C)1997-2021 Jiro Shimizu & Yoshifumi Tanaka