お勉強

広告

気さくなブログ

~ruby編
目的:Jw_cadへ出力する時、寸法属性を無くすようにスクリプトを変更してみる。 ”z3”が線の寸法属性の書き出しデータ。
rubyの”puts”は『obj と改行を順番に $> に出力します。引数がなければ改行のみを出力します。』らしい。
外変作者さんから公開されているオリジナルのスクリプトの一部分。 157行辺り。

puts “z3” if z3==1 or msg==1
puts “#{line.split[0]} #{(v0+vb)[0]} #{(v0+vb)[1]} ” +
“#{va[0]} #{va[1]} “”+shiki
z3,msg=0,0
when /^ci|^s+-?d|^pt/
z3=0
else
print line

オリジナルのjwc_temp.txt出力。多分この”z3”を出力しなきゃ良いんじゃネ?

cc2
hk 0
hs 15 1 2 3 4 5 6 1 8 30 1 1 1 1 1 1
hcw 2 2.5 3 4 5 6 7 3.5 4 1.5
hch 2 2.5 3 4 5 6 7 3.5 4 1.5
hcd 0 0 0.5 0.5 0.5 0.5 1 0.5 3.9 0
hcc 1 1 4 4 4 4 4 4 4 4
hn -36.0848280840661 -15.7362408186153 10.8525798749071 -7.73246316087136
lg0
lyf
lc5
lt1
cn4
cn”$< MS ゴシック>
#
bz
#
z3
cs -10.3950990754118 -12.7177766530239 8.75 0.0 “3×550^uP=
#

改造後。#を先頭につけて無効にしただけ(^^;

# puts “z3” if z3==1 or msg==1
puts “#{line.split[0]} #{(v0+vb)[0]} #{(v0+vb)[1]} ” +
“#{va[0]} #{va[1]} “”+shiki
z3,msg=0,0
when /^ci|^s+-?d|^pt/
z3=0
else
print line

改造後のjwc_temp.txt出力

cc2
hk 0
hs 15 1 2 3 4 5 6 1 8 30 1 1 1 1 1 1
hcw 2 2.5 3 4 5 6 7 3.5 4 1.5
hch 2 2.5 3 4 5 6 7 3.5 4 1.5
hcd 0 0 0.5 0.5 0.5 0.5 1 0.5 3.9 0
hcc 1 1 4 4 4 4 4 4 4 4
hn -36.9422981903822 -2.25976824036911 -3.04577458484533 14.2463649936314
lg0
lyf
lc5
lt1
cn4
cn”$< MS ゴシック>
#
bz
#
cs -20.4413104618752 0.64879527840418 8.75 0.0 “10×165^uP=
#

属性選択すると”線の”属性はなくなっているらしい。
JacConvertで変換→AutoCAD LTで読込み。
ありゃ、違うか? 調べると文字の寸法属性は”cs”らしい。 ”cs”を消せば良いんじゃネ?
じゃなくて、横文字”ch” 縦文字”cv”らしい・・・・さぁ、困った(^^;
続きは昼飯のあと。
寸法値の前に追加するんじゃなく、素直に寸法値を書き換えて一塊の文字にする外変が良さそうな気がする(^^;
続き:この辺のスクリプトかなぁ? csってあるけど・・・・うーん、頓挫。

cs=line.chomp.split[1..-1].collect{|e| e.to_f}
v0=Vector[cs[0],cs[1]]
va=Vector[cs[2],cs[3]]
shiki=”#{n1}×#{a}^uP=”
#末尾が全角なら
if /.Z/ =~ shiki and $&.size > 1
vb=va*(-1/va.r)*cd
else
vb=va*(-1/va.r)*cd*0.5
end

きっぱり諦めて(ぉぃ)一塊戦法にしよう。 オリジナル外部変形もそうなってるし。一番上のヤツで問題なしってことで。
20080112.gif

広告

03_PCアプリ他

前の記事

4つ
08_食

次の記事

昼飯