■29384 / inTopicNo.11) |
Re[5]: Y軸基準ボタン 右回り測定
|
□投稿者/ コジマ 17回-(2006/01/12(Thu) 14:17:10)
| 記事内容:[|]
>ちなみにX軸基準のほかにY軸基準ボタンとか、左回り測定のほかに右回り測定 >ボタンなんかもあると、非常に便利なんですけどね。
外部変形でなら比較的簡単に作成できます。 (効率的には?) 尚、mswin32 版 Ruby のインストールが必要。 以下で入手できます。 http://www61.tok2.com/home2/gravelroad/tips/inst_msw.html
◎バッチファイル(ファイル名 線角度.bat)
@REM 基準点からの線角度測定 @echo off REM #jww REM #cd REM #c小数点以下有効桁数 無指定:2 /_/a REM #k|X軸角度(L)|Y軸角度(R)|/_/b REM #k|左周り(L)|右周り(R)|/_/c REM #0基準点(線端)を指示してください(右クリック) REM #1ln測定する線を指示してください。 REM #2測定値記入点を指示してください。free(L) Read(R) REM #e copy jwc_temp.txt temp.txt > nul ruby -Ks 線角度.rb temp.txt %1 %2 %3> jwc_temp.txt
◎スクリプトファイル(ファイル名 線角度.rb)
include Math keta=2 while ARGV.size>1 case argument=ARGV.pop when /\/a/ keta=argument[2..-1].to_i when /\/b/ ziku=argument[2..-1] when /\/c/ houkou=argument[2..-1] end end
if ziku=="1" kijun_kakudo=0 else kijun_kakudo=-90 end
while ARGF.gets xy=split if xy[0]=~/^\d|^-/ xy.collect!{|item|item.to_f} if xy[0]!=0 && xy[2]==0 x=xy[0] y=xy[1] elsif xy[2]!=0 && xy[0]==0 x=xy[2] y=xy[3] else printf("h#基準点と線端が一致していません\n") end kakudo=(atan2(y,x))*360/(2*PI)+kijun_kakudo if x if houkou=="1" if kakudo && kakudo<0 kakudo = 360+kakudo end elsif houkou== "2" if kakudo if kakudo<0 kakudo = -1*kakudo else kakudo = 360-kakudo end end end end if xy[0]=~/^hp2/ kinyu_x=xy[1].to_f kinyu_y=xy[2].to_f end end printf("ch %f %f %s %s \"%.#{keta}f\n",kinyu_x,kinyu_y,1,0,kakudo) if kakudo
|
|