Indexへ
(3275)//【3261】→(3283)
------------------------
【タイトル】線角度
【記事番号】 3261 (*)
【 日時 】04/04/15 11:17
【 発言者 】itoyama midou@rf7.so-net.ne.jp

どなたか教えてください。線角度取得時、パーセント表示にするには
どうしたらいいのでしょうか。


Indexへ
(3261)←【3283】//(3262)
------------------------
【タイトル】Re(1):線角度
【記事番号】 3283 (3261)
【 日時 】04/04/16 14:54
【 発言者 】コジマ

▼itoyamaさん:
>どなたか教えてください。線角度取得時、パーセント表示にするには
>どうしたらいいのでしょうか。

パーセント表示とは、どういう意味なのでしょうか?

y/x を%に換算するのであれば、以下の外部変形で実行できますが。(ActiveRubyスクリプト)

以下の外部変形で実行には、ActiveRubyのインストールが必要です。
牛渡さんのサイトで入手できます。
http://homepage2.nifty.com/ushiwatari/

コピペ後、全角スペースを半角スペースに一括置換してください。

◎バッチファイル(ファイル名 線角勾配.bat として保存)

REM 2点を指示して角度勾配を記入する 外部変形
echo off
REM #jww
REM #cd
REM #h0
REM #0線端(低い方)を指示してください
REM #1線端(高い方)を指示してください
REM #2記入点を指示してください
REM #e
copy jwc_temp.txt temp.txt > nul 
cscript //nologo 線角勾配.rb temp.txt > jwc_temp.txt

◎スクリプトファイルファイル名 線角勾配.rb として保存)

#線角度、勾配等記入する外部変形Rubyスクリプト
def main
while ARGF.gets
$gyo=5 #行間
if /^hs/;$by =split;$by.collect!{ |item| item.to_f };end
if /^lg/;xy =split;$lg =xy[0];end
if /^hp1/;xy =split;x =xy[1].to_f;y =xy[2].to_f;end
if /^hp2/;xy =split;$a =xy[1].to_f;$b =xy[2].to_f;end
end
draw( x, y )
end
def draw( x, y)
if $lg=="lg0";$zusun=$by[1];end;if $lg=="lg1";$zusun=$by[2];end
if $lg=="lg2";$zusun=$by[3];end;if $lg=="lg3";$zusun=$by[4];end
if $lg=="lg4";$zusun=$by[5];end;if $lg=="lg5";$zusun=$by[6];end
if $lg=="lg6";$zusun=$by[7];end;if $lg=="lg7";$zusun=$by[8];end
if $lg=="lg8";$zusun=$by[9];end;if $lg=="lg9";$zusun=$by[10];end
if $lg=="lga";$zusun=$by[11];end;if $lg=="lgb";$zusun=$by[12];end
if $lg=="lgc";$zusun=$by[13];end;if $lg=="lgd";$zusun=$by[14];end
if $lg=="lge";$zusun=$by[15];end;if $lg=="lgf";$zusun=$by[16];end
if x<0;xx=-1*x;else;xx=x;end
$xy=Math.sqrt((x/1000)**2+(y/1000)**2)
$rajian=Math.atan2(y,xx)
$kakudo=$rajian*180/Math::PI
$kobai=(y/xx)*100
print"cn3\n"
printf("h# %s%.2f%s%s%.3f%s%s%.3f%s%s%.3f%s%s%.3f%s\n","角度→",$kakudo,"°","勾配→",$kobai,"%"," XY→",$xy,"m"," X→",xx/1000,"m"," Y→",y/1000,"m")
printf("ch %e %e %e %e \" %s%.2f%s\n",$a,$b,1,0,"角度→",$kakudo,"°")
printf("ch %e %e %e %e \" %s%.3f%s\n",$a,$b-$gyo*$zusun,1,0,"勾配→",$kobai,"%")
printf("ch %e %e %e %e \" %s%.3f%s\n",$a,$b-$gyo*$zusun*2,1,0,"XY→",$xy,"m")
printf("ch %e %e %e %e \" %s%.3f%s\n",$a,$b-$gyo*$zusun*3,1,0,"X→",xx/1000,"m")
printf("ch %e %e %e %e \" %s%.3f%s\n",$a,$b-$gyo*$zusun*4,1,0,"Y→",y/1000,"m")
print"lc9\n";print"lt9\n"
yokosen(0,x,0);tatesen(x,0,y)
end
def yokosen( x1, x2, y1 )
printf("%e %e %e %e\n", x1, y1, x2, y1)
end
def tatesen( x1, y1,y2 )
printf("%e %e %e %e\n", x1, y1, x1, y2)
end
def naname( x1, y1,x2,y2 )
printf("%e %e %e %e\n", x1, y1, x2, y2)
end
main()