« ストレッチ | トップページ | 六角形の作図 »

2007年6月10日 (日)

寸法編集

情報交換室で sugi さんが、Ruby外変をすでに公開されていますが、
管理人の学習用にawk 版スクリプトを作成してみました。

注)
傾き寸法/カンマ付寸法値には対応していません。
文字幅/文字間隔は、2mm(半角)/0.5mmで設定
編集後は寸法図形が解除されます。

外変用バッチファイルには、下記のREM文(例)とawk実行文が必要です。

REM #h1 寸法線を矩形選択
REM #c 分割数の入力
jgawk -vN=%1 -f *****.awkjwc_temp.txt>temp.txt

--------------------
#寸法値編集
BEGIN{if(N+0 == 0) exit;n=N;k=10;
#接頭語の設定
mu="X";eq="=";
#文字幅/文字間隔の設定
chw=2;sp=0.25;
#選択図形の消去
print "hd"}
#
#縮尺
/^hs/{for(i=0;i<=9;i++) S[i]=$(i+2);
S["a"]=$12;S["b"]=$13;S["c"]=$14;
S["d"]=$15;S["e"]=$16;S["f"]=$17}
/^lg/{lg=substr($1,3);sc=S[lg]}
#寸法値読取
/^cs/{dim=substr($6,2,15);dq=substr($6,1,1);
#ピッチ計算/四捨五入
pch=dim/n;pch=k*pch;pch=rnd(pch)/k;
#寸法値編集
chdim=n mu pch eq dim;ch=dq chdim;
#寸法値長さ
dn=length(dim);dl=dn*chw+(dn-1)*sp;
#文字長さ
chn=length(chdim);chl=chn*chw+(chn-1)*sp;
#文字座標移動/表示
if($5==0) {dx=sc*(chl-dl)/2;print "ch",$2-dx,$3,$4,$5,ch}
else{dy=sc*(chl-dl)/2;print "ch",$2,$3-dy,$4,$5,ch}}
#寸法線再表示
/^#/,/^NF==0/{if($1=="#"){next}if($1=="msg"){next}if(NF==1){print $1}
if(NF==4){print}if($1=="pt"){print}}
#
#四捨五入
function rnd(x){if(x>0) return int(x+0.5)

|

« ストレッチ | トップページ | 六角形の作図 »

コメント

コメントを書く



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




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/94529/15387130

この記事へのトラックバック一覧です: 寸法編集:

« ストレッチ | トップページ | 六角形の作図 »