« 組合せ | トップページ | スプリクトの実行 »

2018年12月 2日 (日)

角度寸法値反転

AWKで作成した角度寸法値反転のJScript版です。
基本操作は同じですが、水平線より下に作図された寸法値だけが反転します。

@if(0==1) //角度/円周寸法値反転
@echo off
REM #jww
REM #cd
REM #bz 図面寸法
REM #zc 文字基準点の書込を指定
REM #h3 範囲内の「文字」データのみ選択
REM #hc 寸法値を範囲選択してください
REM #hr
REM #e
cscript //nologo //e:jscript %0
copy temp.txt jwc_temp.txt
del temp.txt
goto:eof
@end
/////
//対象:角度/円周の水平線より下側の寸法値
//操作:範囲選択から左AM0時「確定 基点(free)」
/////
//ファイルオープン
fso=new ActiveXObject("Scripting.FileSystemObject")
w=fso.CreateTextFile("temp.txt")
r=fso.OpenTextFile("jwc_temp.txt")
//初期設定
dl=1 //オフセット量
sp=" " //スペース
pi=Math.PI //円周率
//データ読込み
while (!r.AtEndOfLine) {
data=r.ReadLine()
if(/hq/.test(data)){
 w.WriteLine("hd")} //再作図
else if(/#/.test(data)){
 w.WriteLine("bz")} //図寸指定
else if(/^c[ps]/.test(data)){
 xy=data.split(/\s+/)
 x=Number(xy[1]);y=Number(xy[2])
 dx=Number(xy[3]);dy=Number(xy[4]);dim=xy[5]
 if(dx<0){
 th=Math.atan2(dy,dx)
 x=x+dl*Math.sin(th)
 y=y-dl*Math.cos(th)
 dx=-dx;dy=-dy
 tcp=["cp",x,y,dx,dy,dim] 
 cp=tcp.join(sp)
 w.WriteLine(cp) }
 else{ w.WriteLine(data)}
 }
else{ w.WriteLine(data)}
 } //
//ファイルクローズ
w.Close();r.close()
//2018.12.2 by some

|

« 組合せ | トップページ | スプリクトの実行 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 角度寸法値反転:

« 組合せ | トップページ | スプリクトの実行 »