@REM 複数の点座標を一気に取得
@echo off
REM #jww
REM #cd
REM #c書込文字種を入力・・・無指定:3/_/a
REM #c行間を入力・・・無指定:5/_/b
REM #k長さの単位を選択・・・無指定:1|1)MM(L)|2)M(R)|/_/c
REM #c小数点以下有効桁数・・・無指定:3/_/d
REM #0原点を指示してください。
REM #1リスト記入点を指示してください。
REM #2測定点を指示してください。
REM #99#
REM #e
copy jwc_temp.txt temp.txt > nul
ruby -Ks 点座標取得.rb temp.txt %1 %2 %3 %4 > jwc_temp.txt
include Math
$no=1
$moji="3"
$gyo=5
$tani="1"
$keta="3"
while ARGV.length > 1
case argument = ARGV.pop
when /^\/a/
$moji=argument[ 2 .. -1]
when /^\/b/
$gyo=argument[ 2 .. -1].to_f
when /^\/c/
$tani=argument[ 2 .. -1]
when /^\/d/
$keta=argument[ 2 .. -1]
end
end
def ika(x)
if $keta=="0"
a=((x.to_f).round).to_s
else
keta=$keta.to_i
a=(((x.to_f)*(10**keta)).round/(10**keta).to_f).to_s
if a=~ /\./
size=$'.split('').size
end
a=a+("0"*(keta-size)) if keta>size
end
return a
end
print "cn"+$moji+"\n";puts "cc1"
gyo=$gyo
by=[];tendeta=[];hcw=[];hcd=[];hp=[]
while ARGF.gets
xy = split
if xy[0] =~/^hs/
xy[1..-1].each{|item| by << item.to_i}
end
if xy[0] =~/^lg/
lg=xy[0][2,1]
zusun=by[lg.hex]
end
if xy[0] =~/^hcw/
xy.each{|item|hcw< end
if xy[0] =~/^hcd/
xy.each{|item|hcd< end
if xy[0] == "hp1"
ax=xy[1].to_f
ay=xy[2].to_f
end
if xy[0] =~/^hp/ && xy[0] !="hp1"
xy.collect!{|item| item.to_f}
$xy=sqrt(xy[1]**2+xy[2]**2)
$kakudo=(atan2(xy[2],xy[1]))*360/(2*PI)
if $tani=="2"
xyl=$xy/1000
x=xy[1]/1000
y=xy[2]/1000
word="(m)"
else
xyl=$xy
x=xy[1]
y=xy[2]
word="(mm)"
end
hp<<[xy[1],xy[2]]
tendeta << ["点#{$no}",ika(x),ika(y),ika(xyl),ika($kakudo)]
$no+=1
end
end
$no=1
hp.each{|item|
printf("ch %f %f %f %f\"点%s\n",item[0],item[1]+1*zusun, 1, 0,$no)
$no+=1
}