« マテリアルの追加 | トップページ | 引出線(文字種指定) »

2009年1月 6日 (火)

引出線

任意角度の引出線を作図する外部変形です。

作図手順は、始点⇒終点⇒文字入力です。

◇文字間に全角で "¥"を入力すると、2行で作図します。
例) 注記(上側)¥注記(下側)
◇線・文字は、書込み線色・線種・文字種で作図されます。
◇引出線は、曲線属性になります。

Leader

--------------------
@REM 引出線
@echo off
REM
REM #jww
REM #cd
REM #1- 始点を指定してください
REM #2 終点を指定してください
REM v6.0~
REM #f 注記を入力してください /_$1"
REM #hr
REM #e
REM
jgawk  -vCC=%1 -f leader.awk jwc_temp.txt>temp.txt
copy temp.txt jwc_temp.txt
del temp.txt
--------------------

<leader.awk>
--------------------
##### 引出線 #####
BEGIN{
pi=atan2(0,-1);dq="\"";
#文字位置・水平線補正
cxu=1.0;cyu=0.3;cyl=0.5;adl=0.5;
#矢印長さ・角度
arw=3;th=pi/12;
#注記(総文字数 全角50文字まで)
cc=substr(CC,3,100);
split(cc,T,"¥");tu=T[1];tl=T[2];
ccu=dq tu;ccl=dq tl;
tnu=length(tu);tnl=length(tl)
if(tnu>tnl){tn=tnu/2}else{tn=tnl/2}
}
###データ取得
#縮尺
/^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]}
#文字種
/^hcw/{for(i=1;i<=10;i++)CW[i]=$(i+1)}
/^hch/{for(i=1;i<=10;i++)CH[i]=$(i+1)}
/^hcd/{for(i=1;i<=10;i++)CD[i]=$(i+1)}
/^cn/{if(NF==1){cn=substr($1,3,1);cw=CW[cn];ch=CH[cn];cd=CD[cn]}
if(NF==5){cw=$2;ch=$3;cd=$4}}
#座標値取得
/^hp1/{xs=$2;ys=$3}
/^hp2/{xe=$2;ye=$3}
###
END{
#縮尺補正
al=sc*arw;ch=sc*ch;cxu=sc*cxu;cyu=sc*cyu;cyl=sc*cyl;
dx=cxu+sc*(tn*(cw+cd)+adl);
#引出線角度
anr=atan2((ye-ys),(xe-xs));
#矢印終点座標
xwu=xs+al*cos(anr+th);ywu=ys+al*sin(anr+th);
xwl=xs+al*cos(anr-th);ywl=ys+al*sin(anr-th);
#データ書出し
#曲線属性化
print "pl";
printf "%.15g %.15g %.15g %.15g\n",xs,ys,xe,ye;
printf "%.15g %.15g %.15g %.15g\n",xs,ys,xwu,ywu;
printf "%.15g %.15g %.15g %.15g\n",xs,ys,xwl,ywl
if(xs<=xe){printf "%.15g %.15g %.15g %.15g\n",xe,ye,xe+dx,ye;
printf "%s %.15g %.15g %d %d %s\n","ch",xe+cxu,ye+cyu,5,0,ccu
if(tl==""){print ""}else{printf "%s %.15g %.15g %d %d %s\n","ch",xe+cxu,ye-cyl-ch,5,0,ccl}}
else{printf "%.15g %.15g %.15g %.15g\n",xe,ye,xe-dx,ye
printf "%s %.15g %.15g %d %d %s\n","ch",xe-dx+cxu,ye+cyu,5,0,ccu
if(tl==""){print ""}else{printf "%s %.15g %.15g %d %d %s\n","ch",xe-dx+cxu,ye-cyl-ch,5,0,ccl}}
}
#####
--------------------

|

« マテリアルの追加 | トップページ | 引出線(文字種指定) »

コメント

コメントを書く



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




トラックバック


この記事へのトラックバック一覧です: 引出線:

» [Script!] 引出線/引出注記 [AFsoft World]
somemさんのブログで外部変形「引出線」のお話がありましたので、うちの「Script!」で書く場合にはどんな感じなのかを書いてみます。 // 引出注記 // // ================================================== // (C)Copyright 2008-2009 AFsoft All Rights Reserved. //...... [続きを読む]

受信: 2009年1月 7日 (水) 21時23分

« マテリアルの追加 | トップページ | 引出線(文字種指定) »