角度寸法値反転
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
| 固定リンク
« 組合せ | トップページ | スプリクトの実行 »
コメント