« レイヤ名書出し/設定 | トップページ | 文字基点から矢印 »

2023年1月24日 (火)

微小傾き補正

水平、垂直に対して誤差範囲の微小な傾きのある直線を、
水平線または、垂直線に補正して再作図します。

@if(0==1) //微小傾き補正
@echo off
REM #jww
REM #cd
REM #h2
REM #hc 範囲選択してください
REM #ht10 ブロック図形除外
REM #ht20 曲線図形除外
REM #ht30 寸法図形除外
REM #ht40 ソリッド図形除外
REM #g1 全レイヤグループ選択
REM #e
cscript //nologo //e:jscript "%~f0" %*
copy temp.txt jwc_temp.txt
echo h#再作図終了 >>jwc_temp.txt
del temp.txt
goto:eof
@end
//ファイルオープン
fso=new ActiveXObject("Scripting.FileSystemObject")
r=fso.OpenTextFile("jwc_temp.txt")
w=fso.CreateTextFile("temp.txt")
//初期設定
lmt=0.00001 //誤差基準
sp=" " //スペース
//"jwc_temp.txt"読込み
while (!r.AtEndOfLine){
line=r.ReadLine()
if(/hq/.test(line)){w.WriteLine("hd")}
else if(/^ /.test(line)){
xy=line.split(/\s+/)
xs=xy[0];ys=xy[1] //始点座標
xe=xy[2];ye=xy[3] //終点座標
//水平線・垂直線
if(xs==xe || ys==ye){
w.WriteLine(line)}
//任意角度線
else{
dx=xs-xe
dy=ys-ye
if(-lmt<dx && dx<lmt){
line=[xs,ys,xs,ye]
line=line.join(sp)
w.WriteLine(line)}
else if(-lmt<dy && dy<lmt){
line=[xs,ys,xe,ys]
line=line.join(sp)
w.WriteLine(line)}
else{ w.WriteLine(line)}
}}
else{w.WriteLine(line)}}
//ファイルクローズ
w.Close();r.Close()

|

« レイヤ名書出し/設定 | トップページ | 文字基点から矢印 »

コメント

コメントを書く



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




« レイヤ名書出し/設定 | トップページ | 文字基点から矢印 »