REM 勾配を‰表示
echo off
REM #jww
REM #cd
REM #h0
REM #c小数点以下有効桁数 無指定:2 /_/b
REM #0測定値の記入位置を指示してください free(L)
REM #1ln線を指示してください free(L)
REM #e
copy jwc_temp.txt temp.txt > nul
ruby -Ks ‰.rb temp.txt %1 > jwc_temp.txt
include Math
$keta=2
while ARGV.size>1
case argument=ARGV.pop
when /\/b/
$keta=argument[2..-1].to_i
end
end
def ika(x)
a=((x.to_f*10**$keta).round).to_f/(10**$keta)
a=a.to_i if a.to_s =~/^0\.0$/
return a
end
while ARGF.gets
xy=split
if xy[0]=~/^\d|^-/
xy.collect!{|item|item.to_f}
if xy[0]>xy[2]
xy[2],xy[0],xy[3],xy[1]=xy[0],xy[2],xy[1],xy[3]
elsif xy[0]==xy[2]
xy[3],xy[1]=xy[1],xy[3] if xy[3] end
x,y=xy[2]-xy[0],xy[3]-xy[1]
l=sqrt(y**2+x**2)
kakudo=atan2(y,x)
koubai=y/x*1000
if koubai<0
koubai_moji= "i=#{ika(koubai).abs}‰ 右下り"
elsif koubai==0
koubai_moji= "i=#{ika(koubai).abs}‰"
else
koubai_moji= "i=#{ika(koubai).abs}‰ 右上り"
end
printf("ch %.10f %.10f %.10f %.10f \"%s\n",0,0,1,0,koubai_moji)
end
end
printf("h##{koubai_moji}\n")
data=[]
open($0,"r"){|f|
while line=f.gets
data< end
}
REM 勾配を‰表示の一括記入
echo off
REM #jww
REM #cd
REM #h0
REM #c線と文字の離れ(図寸) 無指定:1.0 /_/a
REM #c小数点以下有効桁数 無指定:2 /_/b
REM #1ln線を指示してください free(L)
REM #99#
REM #e
copy jwc_temp.txt temp.txt > nul
ruby -Ks ‰2.rb temp.txt %1 %2 > jwc_temp.txt
include Math;by=[]
hanare=1.0
$keta=2
puts "cc1"
while ARGV.size>1
case argument=ARGV.pop
when /\/a/
hanare=argument[2..-1].to_f
when /\/b/
$keta=argument[2..-1].to_i
end
end
def ika(x)
a=((x.to_f*10**$keta).round).to_f/(10**$keta)
a=a.to_i if a.to_s =~/^0\.0$/
return a
end
while ARGF.gets
xy=split
if xy[0]=~/^hs/
xy[1..-1].each{|item|by< end
if xy[0]=~/^lg/
lg=xy[0][2,1];zusun=by[lg.hex]
end
if xy[0]=~/^\d|^-/
xy.collect!{|item|item.to_f}
if xy[0]>xy[2]
xy[2],xy[0],xy[3],xy[1]=xy[0],xy[2],xy[1],xy[3]
elsif xy[0]==xy[2]
xy[3],xy[1]=xy[1],xy[3] if xy[3] end
x,y=xy[2]-xy[0],xy[3]-xy[1]
l=sqrt(y**2+x**2)
kakudo=atan2(y,x)
koubai=y/x*1000
if koubai<0
koubai_moji= "i=#{ika(koubai).abs}‰→"
elsif koubai==0
koubai_moji= "i=#{ika(koubai).abs}‰"
else
koubai_moji= "←i=#{ika(koubai).abs}‰"
end
printf("ch %.10f %.10f %.10f %.10f \"%s\n",
xy[0]+l/2*cos(kakudo)-hanare*zusun*sin(kakudo),
xy[1]+l/2*sin(kakudo)+hanare*zusun*cos(kakudo),
l*cos(kakudo),l*sin(kakudo),koubai_moji)
end
end
data=[]
open($0,"r"){|f|
while line=f.gets
data< end
}
data.collect!{|item|
if item=~/^hanare=/
item=$&+hanare.to_s
elsif item=~/^\$keta=/
item=$&+$keta.to_s
else
item
end
}
open($0,"w"){|f|data.each{|item|f.puts item};}
data=[]
open("‰2.bat","r"){|f|
while line=f.gets
data< end
}
data.collect!{|item|
if item=~/^REM #c線と文字の離れ\(図寸\) 無指定:/
item=$&+$'.gsub(/\d+\.*\d*/,hanare.to_s)
elsif item=~/^REM #c小数点以下有効桁数 無指定:/
item=$&+$'.gsub(/\d+/,$keta.to_s)
else
item
end
}
open("‰2.bat","w"){|f|data.each{|item|f.puts item};}
REM 勾配を‰表示の一括記入
echo off
REM #jww
REM #cd
REM #h0
REM #c線と文字の離れ(図寸) 無指定:1.0 /_/a
REM #c小数点以下有効桁数 無指定:2 /_/b
REM #c縦縮尺逆数 無指定:100 /_/c
REM #c横縮尺逆数 無指定:100 /_/d
REM #1ln線を指示してください free(L)
REM #99#
REM #e
copy jwc_temp.txt temp.txt > nul
ruby -Ks ‰2.rb temp.txt %1 %2 %3 %4 > jwc_temp.txt
◎スクリプトファイル(ファイル名 ‰2.rb)
include Math;by=[]
hanare=1.0
$keta=2
y_by=100
x_by=100
puts "cc1"
while ARGV.size>1
case argument=ARGV.pop
when /\/a/
hanare=argument[2..-1].to_f
when /\/b/
$keta=argument[2..-1].to_i
when /\/c/
y_by=argument[2..-1]
when /\/d/
x_by=argument[2..-1]
end
end
syukusyaku_hi=x_by.to_f/y_by.to_f
def ika(x)
a=((x.to_f*10**$keta).round).to_f/(10**$keta)
a=a.to_i if a.to_s =~/^0\.0$/
return a
end
while ARGF.gets
xy=split
if xy[0]=~/^hs/
xy[1..-1].each{|item|by< end
if xy[0]=~/^lg/
lg=xy[0][2,1];zusun=by[lg.hex]
end
if xy[0]=~/^\d|^-/
xy.collect!{|item|item.to_f}
if xy[0]>xy[2]
xy[2],xy[0],xy[3],xy[1]=xy[0],xy[2],xy[1],xy[3]
elsif xy[0]==xy[2]
xy[3],xy[1]=xy[1],xy[3] if xy[3] end
x,y=xy[2]-xy[0],xy[3]-xy[1]
l=sqrt(y**2+x**2)
kakudo=atan2(y,x)
koubai=(y/x*1000)/syukusyaku_hi
if koubai<0
koubai_moji= "i=#{ika(koubai).abs}‰→"
elsif koubai==0
koubai_moji= "i=#{ika(koubai).abs}‰"
else
koubai_moji= "←i=#{ika(koubai).abs}‰"
end
printf("ch %.10f %.10f %.10f %.10f \"%s\n",
xy[0]+l/2*cos(kakudo)-hanare*zusun*sin(kakudo),
xy[1]+l/2*sin(kakudo)+hanare*zusun*cos(kakudo),
l*cos(kakudo),l*sin(kakudo),koubai_moji)
end
end
data=[]
open($0,"r"){|f|
while line=f.gets
data< end
}
data.collect!{|item|
if item=~/^hanare=/
item=$&+hanare.to_s
elsif item=~/^\$keta=/
item=$&+$keta.to_s
elsif item=~/^y_by=/
item=$&+y_by.to_s
elsif item=~/^x_by=/
item=$&+x_by.to_s
else
item
end
}
open($0,"w"){|f|data.each{|item|f.puts item};}
data=[]
open("‰2.bat","r"){|f|
while line=f.gets
data< end
}
REM 勾配を‰表示
echo off
REM #jww
REM #cd
REM #h0
REM #c小数点以下有効桁数 無指定:1 /_/b
REM #c縦縮尺逆数 無指定:50 /_/c
REM #c横縮尺逆数 無指定:50 /_/d
REM #0測定値の記入位置を指示してください free(L)
REM #1ln線を指示してください free(L)
REM #e
copy jwc_temp.txt temp.txt > nul
ruby -Ks ‰.rb temp.txt %1 %2 %3> jwc_temp.txt
include Math
$keta=1
y_by=50
x_by=50
while ARGV.size>1
case argument=ARGV.pop
when /\/b/
$keta=argument[2..-1].to_i
when /\/c/
y_by=argument[2..-1]
when /\/d/
x_by=argument[2..-1]
end
end
syukusyaku_hi=x_by.to_f/y_by.to_f
def ika(x)
a=((x.to_f*10**$keta).round).to_f/(10**$keta)
a=a.to_i if a.to_s =~/^0\.0$/
return a
end
while ARGF.gets
xy=split
if xy[0]=~/^\d|^-/
xy.collect!{|item|item.to_f}
if xy[0]>xy[2]
xy[2],xy[0],xy[3],xy[1]=xy[0],xy[2],xy[1],xy[3]
elsif xy[0]==xy[2]
xy[3],xy[1]=xy[1],xy[3] if xy[3] end
x,y=xy[2]-xy[0],xy[3]-xy[1]
l=sqrt(y**2+x**2)
kakudo=atan2(y,x)
koubai=(y/x*1000)/syukusyaku_hi
if koubai<0
koubai_moji= "i=#{ika(koubai).abs}‰ 右下り"
elsif koubai==0
koubai_moji= "i=#{ika(koubai).abs}‰"
else
koubai_moji= "i=#{ika(koubai).abs}‰ 右上り"
end
printf("ch %.10f %.10f %.10f %.10f \"%s\n",0,0,1,0,koubai_moji)
end
end
printf("h##{koubai_moji}\n")
data=[]
open($0,"r"){|f|
while line=f.gets
data< end
}
data.collect!{|item|
if item=~/^\$keta=/
item=$&+$keta.to_s
elsif item=~/^y_by=/
item=$&+y_by.to_s
elsif item=~/^x_by=/
item=$&+x_by.to_s
else
item=item
end
}
open($0,"w"){|f|data.each{|item|f.puts item};}
data=[]
open("‰.bat","r"){|f|
while line=f.gets
data< end
}