建築資料館の掲示板で下記のような質問がありました。
始点から終点に線を書くようにクリックするだけで始点から1000MMのところにその線と並行な2線を25MMづつ、長さ250MMで作図され更にその2線の両端に半円が付いて、始点から終点の距離も作図したいのです。建築のターンバックルブレースの略図を作図と同時に寸法まで表示したいのです。始点から終点の距離の寸法は、異なるレイヤーに作図されるとさらにありがたいです。よろしくお願いします。
http://www.ath-j.com/cbbs2/cbbs.cgi?mode=all&namber=39080&type=0&space=0&no=1
線記号変形は分らないですが、とりあえず、うちのScript!でてきと〜に書いてみました。2クリックは出来ませんので、1クリック+距離入力ですが。角度は、貼り付け時の傾き角度で指定します。
// ターンバックル1
//
#VAR
 l1 = 1000   ;*始点からの長さ
 d = 2000   ;*全距離
 L = 250    ;*ターンバックルL
 W = 50    ;*ターンバックルW
 MH = 40   ;*文字高
 MW = 40   ;*文字幅(全角)
 MM = 5    ;*文字マージン
 w1
 w2
 w3
 w4
 w5
#DRAW
 // 始点〜
 LAYER 0
 PEN 2,1,0
 LINE 0,0, l1,0
 // 〜終点
 LINE l1,0, d,0
 // ターンバックル
 CAL w1 = l1 - L/2
 CAL w2 = W/2
 CAL w3 = l1 + L/2
 CAL w4 = W/2
 LINE w1,w2,w3,w4
 CAL w1 = l1 - L/2
 CAL w2 =-W/2
 CAL w3 = l1 + L/2
 CAL w4 =-W/2
 LINE w1,w2,w3,w4
 CAL w1 = l1 - L/2
 CAL w2 = 0
 CAL w3 = W/2
 CAL w4 = 0.5*PI
 CAL w5 = 1.5*PI
 ARC w1,w2,w3,w4,w5
 CAL w1 = l1 + L/2
 CAL w2 = 0
 CAL w3 = W/2
 CAL w4 = 1.5*PI
 CAL w5 = 0.5*PI
 ARC w1,w2,w3,w4,w5
 // 距離
 CAL w1 = l1 + L/2 + W/2 + MM
 CAL w2 = MM
 TEXT w1,w2,MH,MW,0,7,d
// ターンバックル2
//
#VAR
 l1 = 1000   ;*始点からの長さ
 d = 2000   ;*全距離
 L = 250    ;*ターンバックルL
 W = 50    ;*ターンバックルW
 MH = 40   ;*文字高
 MW = 40   ;*文字幅(全角)
 MM = 5    ;*文字マージン
 ii   // 文字数
 ML   // 文字分の空白部長さ
 i
 w1
 w2
 w3
 w4
 w5
#DRAW
 CAL ii = LENGTH(d)
 #IF (SetMojiWid == 0)
STRLEN ii,d
CAL ii = ii + ii
 #END
 CAL ML = ii*MW/2 + MM*2
 
 // 始点〜
 LAYER 0
 PEN 2,1,0
 CAL w1 = l1 - ML/2
 LINE 0,0, w1,0
 // 〜終点
 CAL w1 = l1 + ML/2
 LINE w1,0, d,0
 // ターンバックル
 CAL w1 = l1 - L/2
 CAL w2 = W/2
 CAL w3 = l1 + L/2
 CAL w4 = W/2
 LINE w1,w2,w3,w4
 CAL w1 = l1 - L/2
 CAL w2 =-W/2
 CAL w3 = l1 + L/2
 CAL w4 =-W/2
 LINE w1,w2,w3,w4
 CAL w1 = l1 - L/2
 CAL w2 = 0
 CAL w3 = W/2
 CAL w4 = 0.5*PI
 CAL w5 = 1.5*PI
 ARC w1,w2,w3,w4,w5
 CAL w1 = l1 + L/2
 CAL w2 = 0
 CAL w3 = W/2
 CAL w4 = 1.5*PI
 CAL w5 = 0.5*PI
 ARC w1,w2,w3,w4,w5
 // 距離
 CAL w1 = l1
 CAL w2 = 0
 TEXT w1,w2,MH,MW,0,5,d
を実行すると
20090509_3
20090509_4
のようになって、Jw_cad で[貼付]をして、”文字も倍率”にすれば思惑通りになるだろう、と思いきや、文字は ずれてしまうので、このままだと使えませんから、少し書き換えます。
// ターンバックル1
//
#VAR
 l1 = 1000   ;*始点からの長さ
 d = 2000   ;*全距離
 L = 250    ;*ターンバックルL
 W = 50    ;*ターンバックルW
 MH = 4    ;*文字高
 MW = 4    ;*文字幅(全角)
 MM = 0.5   ;*文字マージン
 sc = 10   ;*倍率(/縮尺)
 ii   // 文字数
 ML   // 文字分の長さ
 i
 w1
 w2
 w3
 w4
 w5
#DRAW
 CAL ii = LENGTH(d)
 #IF (SetMojiWid == 0)
STRLEN ii,d
CAL ii = ii + ii
 #END
 CAL ML = ii*MW/2

 // 始点〜
 LAYER 0
 PEN 2,1,0
 LINE 0,0, l1,0
 // 〜終点
 LINE l1,0, d,0
 // ターンバックル
 CAL w1 = l1 - L/2
 CAL w2 = W/2
 CAL w3 = l1 + L/2
 CAL w4 = W/2
 LINE w1,w2,w3,w4
 CAL w1 = l1 - L/2
 CAL w2 =-W/2
 CAL w3 = l1 + L/2
 CAL w4 =-W/2
 LINE w1,w2,w3,w4
 CAL w1 = l1 - L/2
 CAL w2 = 0
 CAL w3 = W/2
 CAL w4 = 0.5*PI
 CAL w5 = 1.5*PI
 ARC w1,w2,w3,w4,w5
 CAL w1 = l1 + L/2
 CAL w2 = 0
 CAL w3 = W/2
 CAL w4 = 1.5*PI
 CAL w5 = 0.5*PI
 ARC w1,w2,w3,w4,w5
 // 距離
 CAL w1 = l1 + L/2 + W/2 + MM*sc + ML/2*sc
 CAL w2 = MH/2*sc + MM*sc
 TEXT w1,w2,MH,MW,0,5,d
// ターンバックル2
//
#VAR
 l1 = 1000   ;*始点からの長さ
 d = 2000   ;*全距離
 L = 250    ;*ターンバックルL
 W = 50    ;*ターンバックルW
 MH = 4    ;*文字高
 MW = 4    ;*文字幅(全角)
 MM = 0.5   ;*文字マージン
 sc = 10   ;*倍率(/縮尺)
 ii   // 文字数
 ML   // 文字分の空白部長さ
 i
 w1
 w2
 w3
 w4
 w5
#DRAW
 CAL ii = LENGTH(d)
 #IF (SetMojiWid == 0)
STRLEN ii,d
CAL ii = ii + ii
 #END
 CAL ML = ii*MW/2*sc + MM*2*sc
 
 // 始点〜
 LAYER 0
 PEN 2,1,0
 CAL w1 = l1 - ML/2
 LINE 0,0, w1,0
 // 〜終点
 CAL w1 = l1 + ML/2
 LINE w1,0, d,0
 // ターンバックル
 CAL w1 = l1 - L/2
 CAL w2 = W/2
 CAL w3 = l1 + L/2
 CAL w4 = W/2
 LINE w1,w2,w3,w4
 CAL w1 = l1 - L/2
 CAL w2 =-W/2
 CAL w3 = l1 + L/2
 CAL w4 =-W/2
 LINE w1,w2,w3,w4
 CAL w1 = l1 - L/2
 CAL w2 = 0
 CAL w3 = W/2
 CAL w4 = 0.5*PI
 CAL w5 = 1.5*PI
 ARC w1,w2,w3,w4,w5
 CAL w1 = l1 + L/2
 CAL w2 = 0
 CAL w3 = W/2
 CAL w4 = 1.5*PI
 CAL w5 = 0.5*PI
 ARC w1,w2,w3,w4,w5
 // 距離
 CAL w1 = l1
 CAL w2 = 0
 TEXT w1,w2,MH,MW,0,5,d
Script!画面では文字が小さく見えてしまいますがまぁ仕方がありません。倍率には、縮尺が1/10の場合には「10」を、縮尺が1/100の場合には「100」を入れます。文字高・文字幅・文字マージンには図寸で入力します。Jw_cad での貼り付け時には、”文字も倍率”のチェックはオフにして下さい。TEXTコマンドでは配置モード:中中(5)で作図するようにします。
20090509_5
という感じです。レイヤや色・線種を個別に指定したければ、上記のその箇所で「LAYER」や「PEN」コマンドを書けば可能です。