AFsoft World

AF日記。 コンピュータ・CAD・漫画・アニメ・ゲーム・スポーツ等についてのたわいもない話、などなど。

【Script!】

止め輪をスケッチアップ(続)

先日作成しました
「Script! JIS製図用コマンド『止め輪 JIS B 2804-2001』」
http://afsoft.jp/program/p09.html
http://afsoft.jp/program/p09_010.html
を使って、スケッチアップ用のデータにしてみます、の続編です。

Script! でスクリプトファイル rring2 を開き、
正面図、呼び10、d4算出係数1.4、下部隙間x = 1、
下部d = 2、穴位置x = 0、穴位置y = 0、
で作図を行って、DXF出力。

先と同様に作業を行いました。

円弧部分は、分割で、セグメント数 12 だったのを 24 にしてみました。
後で区分線を消すのが面倒臭いです〜
skp20080313b
SKPデータは下記。
http://afsoft.jp/skp_test/rring2.skp

止め輪をスケッチアップ

先日作成しました
「Script! JIS製図用コマンド『止め輪 JIS B 2804-2001』」
http://afsoft.jp/program/p09.html
http://afsoft.jp/program/p09_010.html
を使って、スケッチアップ用のデータにしてみます。

まずは、Script! でこのスクリプトファイルを開き、
正面図、呼び10、d4算出係数1.4、下部隙間x = 1、
下部x = 3、下部r = 1、穴位置x = 0、穴位置y = 0、
で作図を行って、DXF出力。

そのDXFファイルをGSUで開いて、中心線を消し、
ツール→ユーティリティ→面の作成
でやってもいいんだけど、穴も含めて1発で出来ないので
まぁ3回やればいいだけなんだけど、ついでなので、
Makefaces.rb を使ってみることにしました。

Makefaces 1.0 は下記。
http://www.crai.archi.fr/RubyLibraryDepot/Ruby/em_geo_page.htm
(クリックすると、無い、と言われるので
 手で .rb を付けないといけませんけど)
そういえば、1.4 が公開されているって聞いたっけ。
どこでしたっけ? 忘れましたのでネットで検索。
あ、ここでした、ここでした。

Makefaces 1.4
http://www.smustard.com/script/MakeFaces
ProgressBar も忘れずに。(忘れてました〜)
http://www.smustard.com/script/ProgressBar
これを Pluginsフォルダ内にダウンロードして、一応、ウイルスチェックを掛けて、GSUを起動。(プラグインを入れる前に、GSUを終了させておく〜)

すると、ツール→Make Faces 1.4 が。
ここでしたか。
これを実行すると1発で全部 面になってくれるんで
穴のところを消して、
プッシュ/プルで、立体化。
t = 1 なので、1mm プッシュプッシュね〜

側面側に 区分線が入っているんで、削除ツールで
SHIFTキーを押しながら 線を消す。

こんなものかな?
最後に 取りあえず、コンポーネント作成しておこう。

輪の円弧の部分は、分割してセグメント数を増やしても
別にいいんだけど、取りあえずこのまま ほっときます。

skp20080313a

SKPデータは下記。
http://afsoft.jp/skp_test/rring1.skp

まぁ取りあえず、お遊びでやってみただけですので
激しいツッコミはご勘弁を〜
本とか全然読んでませんので間違っているところとか色々あるかもしれませんけど。

止め輪 JIS B 2804-2001

Script! JIS製図用コマンド
『止め輪 JIS B 2804-2001』スクリプトファイル(有償版;¥500.-)を作成しました。
http://afsoft.jp/program/p09.html
http://afsoft.jp/program/p09_010.html
Scr010

角形スプライン

Script! JIS製図用コマンド
『角形スプライン−小径合わせ−寸法,公差及び検証方法 JIS B 1601-1996』スクリプトファイル(フリー)を作成しました。
http://afsoft.jp/program/p09.html
http://afsoft.jp/program/p09d.html
Scr00d

割りピン,テーパピン,平行ピン

Script! JIS製図用コマンド
『割りピン JIS B 1351-1987/テーパピン JIS B 1352-2006/1988/平行ピン JIS B 1354-1988』スクリプトファイル(有償版;¥500.-)を作成しました。
http://afsoft.jp/program/p09.html
http://afsoft.jp/program/p09_009.html
Scr009

キー及びキー溝

Script! JIS製図用コマンド
『キー及びキー溝 JIS B 1301-1996』スクリプトファイル(有償版;¥500.-)を作成しました。
http://afsoft.jp/program/p09.html
http://afsoft.jp/program/p09_008.html
Scr008

センタ穴

Script! JIS製図用コマンド
『製図−センタ穴の簡略図示方法 JIS B 0041-1999、センタ穴 JIS B 1011-1987』スクリプトファイル(有償版;¥500.-)を作成しました。
http://afsoft.jp/program/p09.html
http://afsoft.jp/program/p09_007.html
Scr007

円すい JISB0028-2000

Script! JIS製図用コマンド
『製図−寸法及び公差の表示方式−円すい JISB0028-2000』スクリプトファイル(フリーウェア)を作成しました。
http://afsoft.jp/program/p09.html
http://afsoft.jp/program/p09c.html
Ssc00c

データム JISB0022-1984

Script! JIS製図用コマンド
『幾何公差のためのデータム JISB0022-1984』スクリプトファイル(有償版;¥500.-)を作成しました。
http://afsoft.jp/program/p09.html
http://afsoft.jp/program/p09_006.html
Scr006

幾何公差 JISB0021-1998

Script! JIS製図用コマンド
『製品の幾何特性仕様−幾何公差表示方式−形状、姿勢、位置及び振れの公差表示方式 JISB0021-1998』スクリプトファイル(有償版;¥500.-)を作成しました。
http://afsoft.jp/program/p09.html
http://afsoft.jp/program/p09_005.html
Scr005

製図−部品のエッジ−用語及び指示方法 JISB0051-2004

Script! JIS製図用コマンド
『製図−部品のエッジ−用語及び指示方法 JISB0051-2004』スクリプトファイル(有償版;¥500.-)を作成しました。
http://afsoft.jp/program/p09.html
http://afsoft.jp/program/p09_004.html
scr004

Script!No.025続 点指定での2.5D-ソリッド図形

先程のスクリプトを、四角(BOX)ではなく、ソリッド図形にしてみました。
最初に色指定をすることにします。
// 立方体
// 線色5の点+線色5補助線種、線色6の点での2.5D作図例
//
// 底面、側面×4(ソリッド) を作図します

#VAR
 L = 100  ;*1辺の長さ
 D = 20  ;*離す距離

 scol = $888888
lay
 x
 y
 w1
 w2
 w3
 w4

#DRAW
 CAL lay = SetLineLay1 // 外形線のレイヤ
 INP_NC w1,scol  // 色選択

 // 底面
 LAYER lay
 PEN SetLineCol1,SetLineLtp1,SetLineWid1 // 外形線
 CAL x = 0
 CAL y = 0
 CAL w1 = x
 CAL w2 = y
 CAL w3 = x + L
 CAL w4 = y + L
 4SOLID scol,w1,w2,w3,w2,w3,w4,w1,w4

 // 側面1(底面の下に描きます)
 CAL lay = lay + 1
 #IF (lay > 15)
   CAL lay = 0
 #END
 LAYER lay
 PEN SetLineCol1,SetLineLtp1,SetLineWid1 // 外形線
 CAL x = 0
 CAL y = -L-D
 CAL w1 = x
 CAL w2 = y
 CAL w3 = x + L
 CAL w4 = y + L
 4SOLID scol,w1,w2,w3,w2,w3,w4,w1,w4
 // 点
 PEN 6,0,0
 TEN w1,w2
 // 底面に点と線(右)
 PEN 5,9,0
 CAL w1 = L
 CAL w2 = 0
 CAL w3 = w1 + L/2*Cos(90/180*PI)
 CAL w4 = w2 + L/2*Sin(90/180*PI)
 TEN w1,w2
 LINE w1,w2,w3,w4

 // 側面2(側面1の右に描きます)
 CAL lay = lay + 1
 #IF (lay > 15)
   CAL lay = 0
 #END
 LAYER lay
 PEN SetLineCol1,SetLineLtp1,SetLineWid1 // 外形線
 CAL x = x + L + D
 CAL w1 = x
 CAL w2 = y
 CAL w3 = x + L
 CAL w4 = y + L
 4SOLID scol,w1,w2,w3,w2,w3,w4,w1,w4
 // 点
 PEN 6,0,0
 TEN w1,w2
 // 底面に点と線(上)
 PEN 5,9,0
 CAL w1 = L
 CAL w2 = L
 CAL w3 = w1 + L/2*Cos(180/180*PI)
 CAL w4 = w2 + L/2*Sin(180/180*PI)
 TEN w1,w2
 LINE w1,w2,w3,w4

 // 側面3(側面2の右に描きます)
 CAL lay = lay + 1
 #IF (lay > 15)
   CAL lay = 0
 #END
 LAYER lay
 PEN SetLineCol1,SetLineLtp1,SetLineWid1 // 外形線
 CAL x = x + L + D
 CAL w1 = x
 CAL w2 = y
 CAL w3 = x + L
 CAL w4 = y + L
 4SOLID scol,w1,w2,w3,w2,w3,w4,w1,w4
 // 点
 PEN 6,0,0
 TEN w1,w2
 // 底面に点と線(左)
 PEN 5,9,0
 CAL w1 = 0
 CAL w2 = L
 CAL w3 = w1 + L/2*Cos(270/180*PI)
 CAL w4 = w2 + L/2*Sin(270/180*PI)
 TEN w1,w2
 LINE w1,w2,w3,w4

 // 側面4(側面3の右に描きます)
 CAL lay = lay + 1
 #IF (lay > 15)
   CAL lay = 0
 #END
 LAYER lay
 PEN SetLineCol1,SetLineLtp1,SetLineWid1 // 外形線
 CAL x = x + L + D
 CAL w1 = x
 CAL w2 = y
 CAL w3 = x + L
 CAL w4 = y + L
 4SOLID scol,w1,w2,w3,w2,w3,w4,w1,w4
 // 点
 PEN 6,0,0
 TEN w1,w2
 // 底面に点と線(下)
 PEN 5,9,0
 CAL w1 = 0
 CAL w2 = 0
 CAL w3 = w1 + L/2*Cos(0/180*PI)
 CAL w4 = w2 + L/2*Sin(0/180*PI)
 TEN w1,w2
 LINE w1,w2,w3,w4
もっとも、これだけでは、上が開いた状態ですけれど〜
20080130
点・線指定だけで上にフタをかぶせるやり方がわからないので取りあえずパスします〜〜 2.5D属性の文字を付けてやれば出来るのは分っていますけれど。あとはレイヤ名に文字指定するパターンですが、クリップボードデータ経由ではレイヤ名の受け渡しはできませんので、取りあえず、ここまでという事にします。

Script!No.025 点指定での2.5D

書くことがな〜い
という訳で、遊びネタ。
Script! で JWWで 2.5D作図して遊ぼう〜

文字を使って2.5D作図する話は既に書きましたので、今度は、線色5の点・補助線種の線・線色6の点を使う事を考えます。まずは単純に、線種5の点と補助線種の線を作図するスクリプトです。
// 線色5の点+線色5補助線種の線の作図
// 2.5D作図補助用

#VAR
 L = 100  ;*線の長さ

#DRAW
 PEN 5,9,0
 TEN 0,0
 LINE 0,0,L,0
レイヤ指定はしていないとデフォルト0になります。作図する際にレイヤ指定するでしょうからそのままにしておきます。次に、線色6の点を作図するスクリプトです。
// 線色6の点
// 2.5D作図補助用

#DRAW
 PEN 6,0,0
 TEN 0,0
簡単すぎて ちょっとばかばかしいかもしれませんけれど、線属性画面を出して指定させるよりは簡単かもしれません。

それでは、次に、点を使った2.5Dの立方体を作図させるスクリプトを作ってみます。まずは正方形を5個描かせてみます。
// 立方体
// 線色5の点+線色5補助線種、線色6の点での2.5D作図例
//
// 底面、側面×4 を作図します

#VAR
 L = 100  ;*1辺の長さ
 D = 20  ;*離す距離

lay
 x
 y
 w1
 w2
 w3
 w4

#DRAW
 CAL lay = SetLineLay1 // 外形線のレイヤ
 PEN SetLineCol1,SetLineLtp1,SetLineWid1 // 外形線

 // 底面
 LAYER lay
 CAL x = 0
 CAL y = 0
 CAL w1 = x
 CAL w2 = y
 CAL w3 = x + L
 CAL w4 = y + L
 BOX w1,w2,w3,w4

 // 側面1(底面の下に描きます)
 CAL lay = lay + 1
 #IF (lay > 15)
   CAL lay = 0
 #END
 LAYER lay
 CAL x = 0
 CAL y = -L-D
 CAL w1 = x
 CAL w2 = y
 CAL w3 = x + L
 CAL w4 = y + L
 BOX w1,w2,w3,w4

 // 側面2(側面1の右に描きます)
 CAL lay = lay + 1
 #IF (lay > 15)
   CAL lay = 0
 #END
 LAYER lay
 CAL x = x + L + D
 CAL w1 = x
 CAL w2 = y
 CAL w3 = x + L
 CAL w4 = y + L
 BOX w1,w2,w3,w4

 // 側面3(側面2の右に描きます)
 CAL lay = lay + 1
 #IF (lay > 15)
   CAL lay = 0
 #END
 LAYER lay
 CAL x = x + L + D
 CAL w1 = x
 CAL w2 = y
 CAL w3 = x + L
 CAL w4 = y + L
 BOX w1,w2,w3,w4

 // 側面4(側面3の右に描きます)
 CAL lay = lay + 1
 #IF (lay > 15)
   CAL lay = 0
 #END
 LAYER lay
 CAL x = x + L + D
 CAL w1 = x
 CAL w2 = y
 CAL w3 = x + L
 CAL w4 = y + L
 BOX w1,w2,w3,w4
外形線で作図し、側面はレイヤを1つずつずらしています。次に、2.5D用の点・線を組み込んでみます。
// 立方体
// 線色5の点+線色5補助線種、線色6の点での2.5D作図例
//
// 底面、側面×4 を作図します

#VAR
 L = 100  ;*1辺の長さ
 D = 20  ;*離す距離

lay
 x
 y
 w1
 w2
 w3
 w4

#DRAW
 CAL lay = SetLineLay1 // 外形線のレイヤ

 // 底面
 LAYER lay
 PEN SetLineCol1,SetLineLtp1,SetLineWid1 // 外形線
 CAL x = 0
 CAL y = 0
 CAL w1 = x
 CAL w2 = y
 CAL w3 = x + L
 CAL w4 = y + L
 BOX w1,w2,w3,w4

 // 側面1(底面の下に描きます)
 CAL lay = lay + 1
 #IF (lay > 15)
   CAL lay = 0
 #END
 LAYER lay
 PEN SetLineCol1,SetLineLtp1,SetLineWid1 // 外形線
 CAL x = 0
 CAL y = -L-D
 CAL w1 = x
 CAL w2 = y
 CAL w3 = x + L
 CAL w4 = y + L
 BOX w1,w2,w3,w4
 // 点
 PEN 6,0,0
 TEN w1,w2
 // 底面に点と線(右)
 PEN 5,9,0
 CAL w1 = L
 CAL w2 = 0
 CAL w3 = w1 + L/2*Cos(90/180*PI)
 CAL w4 = w2 + L/2*Sin(90/180*PI)
 TEN w1,w2
 LINE w1,w2,w3,w4

 // 側面2(側面1の右に描きます)
 CAL lay = lay + 1
 #IF (lay > 15)
   CAL lay = 0
 #END
 LAYER lay
 PEN SetLineCol1,SetLineLtp1,SetLineWid1 // 外形線
 CAL x = x + L + D
 CAL w1 = x
 CAL w2 = y
 CAL w3 = x + L
 CAL w4 = y + L
 BOX w1,w2,w3,w4
 // 点
 PEN 6,0,0
 TEN w1,w2
 // 底面に点と線(上)
 PEN 5,9,0
 CAL w1 = L
 CAL w2 = L
 CAL w3 = w1 + L/2*Cos(180/180*PI)
 CAL w4 = w2 + L/2*Sin(180/180*PI)
 TEN w1,w2
 LINE w1,w2,w3,w4

 // 側面3(側面2の右に描きます)
 CAL lay = lay + 1
 #IF (lay > 15)
   CAL lay = 0
 #END
 LAYER lay
 PEN SetLineCol1,SetLineLtp1,SetLineWid1 // 外形線
 CAL x = x + L + D
 CAL w1 = x
 CAL w2 = y
 CAL w3 = x + L
 CAL w4 = y + L
 BOX w1,w2,w3,w4
 // 点
 PEN 6,0,0
 TEN w1,w2
 // 底面に点と線(左)
 PEN 5,9,0
 CAL w1 = 0
 CAL w2 = L
 CAL w3 = w1 + L/2*Cos(270/180*PI)
 CAL w4 = w2 + L/2*Sin(270/180*PI)
 TEN w1,w2
 LINE w1,w2,w3,w4

 // 側面4(側面3の右に描きます)
 CAL lay = lay + 1
 #IF (lay > 15)
   CAL lay = 0
 #END
 LAYER lay
 PEN SetLineCol1,SetLineLtp1,SetLineWid1 // 外形線
 CAL x = x + L + D
 CAL w1 = x
 CAL w2 = y
 CAL w3 = x + L
 CAL w4 = y + L
 BOX w1,w2,w3,w4
 // 点
 PEN 6,0,0
 TEN w1,w2
 // 底面に点と線(下)
 PEN 5,9,0
 CAL w1 = 0
 CAL w2 = 0
 CAL w3 = w1 + L/2*Cos(0/180*PI)
 CAL w4 = w2 + L/2*Sin(0/180*PI)
 TEN w1,w2
 LINE w1,w2,w3,w4
貼り付けを行う際、[作図属性]で「元レイヤに作図」又は「元グループに作図」にチェックを入れて下さい。

Script! 14での新命令追加

Script!14では、新しく下記の作図命令を追加しました。
正多角形
 POLYGON n,m,x,y,r,ka
  n : 角数 3〜1000
  m : 0:指定円に内接 1:指定円に外接
  x : 中心点x座標[mm]
  y : 中心点y座標[mm]
  r : 半径[mm]
  ka: 傾き角度[rad]
  0°位置に頂点がある状態を 0°とします
  ※PCES,JWW,JWSでは複数線分で出力されます
  ※GX3-DXFでは線分ポリラインで出力されます
クロソイド曲線
 CLOTHOID n,m,x,y,l1,l2,A,ka
  n : 分割数 1〜1000
  m : 向き 0:反時計回り 1:時計回り
  x : 配置基点x座標[mm]
  y : 配置基点y座標[mm]
  l1: 開始曲線長[mm]
  l2: 終了曲線長[mm]
  A : パラメータ 0<A
  ka: 傾き角度[rad]
  ※PCES,JWW,JWSでは複数線分で出力されます
  ※GX3-DXFでは線分ポリラインで出力されます
  ※線分化の際、直前線との角度差が微少と判断
   される場合には線分は1本化されます
  ※計算精度の保証はありません
  ※曲線長が異常に大きい場合には誤差が発生、
   或いは作図されません
ベジェ曲線
 BEZIER n,x1,y1,x2,y2,x3,y3,x4,y4
  n : 区間分割数 1〜1000
  x1 : 開始点 x座標[mm]
  y1 : 開始点 y座標[mm]
  x2 : 制御点1x座標[mm]
  y2 : 制御点1y座標[mm]
  x3 : 制御点2x座標[mm]
  y3 : 制御点2y座標[mm]
  x4 : 終了点 x座標[mm]
  y4 : 終了点 y座標[mm]
  ※PCES,JWW,JWSでは複数線分で出力されます
  ※GX3-DXFでは線分ポリラインで出力されます
  ※線分化の際、直前線との角度差が微少と判断
   される場合には線分は1本化されます
  ※計算精度の保証はありません
  ※制御点は通過点ではありません
2次Bスプライン曲線
 2BSPLINE n,x1,y1,x2,y2,x3,y3
  n : 区間分割数 1〜1000
  x1 : 開始点 x座標[mm]
  y1 : 開始点 y座標[mm]
  x2 : 制御点 x座標[mm]
  y2 : 制御点 y座標[mm]
  x3 : 終了点 x座標[mm]
  y3 : 終了点 y座標[mm]
  ※PCES,JWW,JWSでは複数線分で出力されます
  ※GX3-DXFでは線分ポリラインで出力されます
  ※線分化の際、直前線との角度差が微少と判断
   される場合には線分は1本化されます
  ※計算精度の保証はありません
  ※制御点は通過点ではありません
3次Bスプライン曲線
 3BSPLINE n,m,x1,y1,x2,y2,x3,y3,x4,y4
  n : 区間分割数 1〜1000
  m : 0:p2-p3 1:p1-p3 2:p2-p4 3:p1-p4
  x1 : 開始点 x座標[mm] p1
  y1 : 開始点 y座標[mm]
  x2 : 制御点1x座標[mm] p2
  y2 : 制御点1y座標[mm]
  x3 : 制御点2x座標[mm] p3
  y3 : 制御点2y座標[mm]
  x4 : 終了点 x座標[mm] p4
  y4 : 終了点 y座標[mm]
  p1-の場合は、p(-2)=p1、p(-1)=p1 として計算
  -p4の場合は、p(5)=p4、p(6)=p4 として計算
  ※PCES,JWW,JWSでは複数線分で出力されます
  ※GX3-DXFでは線分ポリラインで出力されます
  ※線分化の際、直前線との角度差が微少と判断
   される場合には線分は1本化されます
  ※計算精度の保証はありません
  ※制御点は通過点ではありません
なお、
クロソイド曲線の作図は、業務上使った事はありませんので本当に正しいか等チェックしていませんので御了承の程を。もし何かあればコメント下さい。SXF Ver.3.1で新しく実装された様子なので、どんな感じなのかを見てみたかった、という程度で対応させてみました。3次Bスプライン曲線で5点以上必要な場合は、mの数値でうまく振り分けて下さい。一般的には、4点で p2(x2,y2)〜p3(x3,y3) 部分だけを連続で描かせていくという感じのようです。

Script!サンプルのまとめ

このブログでこれまで書いてきました Script!のスクリプト・サンプルを、まとめて圧縮したファイルを下記に置いておきます。御入用な方はどうぞ。
http://afsoft.jp/program/p09a.html

Script!作り方 No.024 位置表示

Script! は、図面を作図する際、簡単な図形だけれども、図形データや線記号変形や外部変形などが無い場合、プログラム的に簡単に作れるようなもの、という場合に有効利用できるかもしれません。

ここでは、「建築製図通則 JISA150」の 10.1 位置の表示の三角2つの図形を描かせてみます。まずは、△2つです。JIS本の説明図では縦線に対して記載されていますが、縦線を読み取ると90°になりますので、0°の横線を基準とします。
// 建築製図通則 JISA150(10.1) 位置の表示 △
//
#VAR
 a = 10   ;*大きさ

 x1
 y1
 x2
 y2

#DRAW
 #IF (a <= 0)
   BEEP
   MESSAGE "入力エラー","大きさを指定して下さい。","",0,0
   #EXIT
 #END

 LAYER SetLineLay1  // 外形線
 PEN SetLineCol1,SetLineLtp1,SetLineWid1

 // 縦線
 CAL x1 = 0
 CAL y1 = a
 CAL x2 = 0
 CAL y2 = -a
 LINE x1,y1, x2,y2

 // 上の△
 CAL x1 = 0
 CAL y1 = a
 CAL x2 = a
 CAL y2 = a
 LINE x1,y1, x2,y2
 CAL x1 = a
 CAL y1 = a
 CAL x2 = 0
 CAL y2 = 0
 LINE x1,y1, x2,y2

 // 下の△
 CAL x1 = 0
 CAL y1 = -a
 CAL x2 = a
 CAL y2 = -a
 LINE x1,y1, x2,y2
 CAL x1 = a
 CAL y1 = -a
 CAL x2 = 0
 CAL y2 = 0
 LINE x1,y1, x2,y2
Scr20080113a
次に▲2つです。3SOLID命令で描かせます。
// 建築製図通則 JISA150(10.1) 位置の表示 ▲
//
#VAR
 a = 10   ;*大きさ

 x1
 y1
 x2
 y2
 x3
 y3

#DRAW
 #IF (a <= 0)
   BEEP
   MESSAGE "入力エラー","大きさを指定して下さい。","",0,0
   #EXIT
 #END

 LAYER SetLineLay1  // 外形線
 PEN SetLineCol1,SetLineLtp1,SetLineWid1

 // 上の▲
 CAL x1 = 0
 CAL y1 = 0
 CAL x2 = 0
 CAL y2 = a
 CAL x3 = a
 CAL y3 = a
 3SOLID -1,x1,y1, x2,y2, x3,y3

 // 下の▲
 CAL x1 = 0
 CAL y1 = 0
 CAL x2 = 0
 CAL y2 = -a
 CAL x3 = a
 CAL y3 = -a
 3SOLID -1,x1,y1, x2,y2, x3,y3
Scr20080113b

Script!作り方 No.023 切断線

ついでに、切断線の作図をしてみます。
こちらは1パターン部分の作図だけにしておきます。
ベースは基準線で描かせるものとしています。
// 切断線 ━━─ - ─━━
//
// ----- 変数宣言 -----
#VAR
 L = 100  ;*全線長
 B = 15  ;*太線部長さ
 // 作業用変数
 l1   // 一点鎖線部長さ
 x1
 y1
 x2
 y2

// ----- 実行開始 -----
#DRAW
 #IF (L <= 0)
   BEEP
   MESSAGE "入力エラー","全線長に正常値を指定して下さい。","",0,0
   #EXIT
 #END
 #IF ((B <= 0)||(B >= L/2))
   BEEP
   MESSAGE "入力エラー","太線部長さに正常値を指定して下さい。","",0,0
   #EXIT
 #END

 CAL l1 = L - B*2

 LAYER SetLineLay4  // 基準線
 PEN SetLineCol4,1,SetLWidth2  // 実線・太線 
 CAL x1 = 0
 CAL y1 = 0
 CAL x2 = B
 CAL y2 = 0
 LINE x1,y1,x2,y2

 PEN SetLineCol4,SetLineLtp4,SetLineWid4 // 基準線
 CAL x1 = B
 CAL y1 = 0
 CAL x2 = B + l1
 CAL y2 = 0
 LINE x1,y1,x2,y2

 PEN SetLineCol4,1,SetLWidth2  // 実線・太線 
 CAL x1 = B + l1
 CAL y1 = 0
 CAL x2 = L
 CAL y2 = 0
 LINE x1,y1,x2,y2

太線、一点鎖線、太線(基準線を一点鎖線の細線に設定しておく必要があります)の3本の線を描かせるだけですので、簡単だと思います。

Script!作り方 No.023 破断線2

次にジグザグ線の破断線を作図してみます。
ジグザグ線の幅、ジグザグ部の線の角度、を指定しています。
// 破断線2 −−∧∨−−∧∨−− 
//
// ----- 変数宣言 -----
#VAR
 L = 100  ;*全線長
 F = 10  ;*幅
 A = 75  ;*角度[°]
N =  4  ;*パターン数
 // 作業用変数
 sx   // 基本形状の横サイズ
 sy   // 基本形状の縦サイズ
 c    // カウンタ
 sl   // 基本形状作図位置
 a1   // Aのラジアン値
 l1   // 斜め線1つの横長さ
 l2   // 横線長さ
 sl
 x1
 y1
 x2
 y2

// ----- 実行開始 -----
#DRAW
 #IF (L <= 0)
   BEEP
   MESSAGE "入力エラー","全線長に正常値を指定して下さい。","",0,0
   #EXIT
 #END
 #IF (F <= 0)
   BEEP
   MESSAGE "入力エラー","幅に正常値を指定して下さい。","",0,0
   #EXIT
 #END
 #IF ((A < 1)||(A > 89))
   BEEP
   MESSAGE "入力エラー","角度に正常値を指定して下さい。","",1,89
   #EXIT
 #END
 #IF ((N < 1)||(N > 1000))
   BEEP
   MESSAGE "入力エラー","パターン数に正常値を指定して下さい。","",1,1000
   #EXIT
 #END

 CAL a1 = A/180*PI
 CAL sx = L/N
 CAL sy = F/2
 CAL l1 = sy/Tan(a1)
 CAL l2 = (sx - l1*4)/2
 #IF (l2 <= 0.00000001)
   BEEP
   MESSAGE "入力エラー","横線部分が消失します。","再指定して下さい",0,0
   #EXIT
 #END

 LAYER SetLineLay1  // 外形線
 PEN SetLineCol1,SetLineLtp1,SetLineWid1
 
 CAL x1 = 0
 CAL y1 = 0
 CAL x2 = l2
 CAL y2 = 0
 LINE x1,y1,x2,y2

 CAL sl = l2
 CAL c = 0
*LOOP
 // ジグザグ部作図
 CAL x1 = sl
 CAL y1 = 0
 CAL sl = sl + l1
 CAL x2 = sl
 CAL y2 = sy
 LINE x1,y1,x2,y2

 CAL x1 = sl
 CAL y1 = sy
 CAL sl = sl + l1*2
 CAL x2 = sl
 CAL y2 = -sy
 LINE x1,y1,x2,y2

 CAL x1 = sl
 CAL y1 = -sy
 CAL sl = sl + l1
 CAL x2 = sl
 CAL y2 = 0
 LINE x1,y1,x2,y2

 CAL c = c + 1

 // ジグザグ間の横線
 CAL x1 = sl
 CAL y1 = 0
 CAL sl = sl + l2
 #IF (c < N)
   CAL sl = sl + l2  // 間は2つ分
 #END
 CAL x2 = sl
 CAL y2 = 0
 LINE x1,y1,x2,y2

 #IF (c < N)
   #GOTO *LOOP
 #END

Script!作り方 No.023 破断線1

Script! の作り方のサンプル・今回は、破断線です。
まずは1つめとして波線の破断線です。波線は既に作りましたが別パターンとして作ってみます。必ず「Script! 12」を使って下さい。全線長、幅、波線のパターン数(〜1つを1パターン)を入れます。
// 破断線1 〜〜〜〜〜〜〜〜 
//
// ----- 変数宣言 -----
#VAR
 L = 100  ;*全線長
 F =  5  ;*幅
N =  4  ;*パターン数
 // 作業用変数
 sx   // 基本形状の横サイズ
 sy   // 基本形状の縦サイズ
 c    // カウンタ
 sl   // 基本形状作図位置(左中央)
 x1
 y1
 r1
 a1
 a2
 a3
 a4
 i1 = 0
 i2 = 0
 w1
 w2
 w3
 w4
 w5
 w6
// ----- 実行開始 -----
#DRAW
 #IF (L <= 0)
   BEEP
   MESSAGE "入力エラー","全線長に正常値を指定して下さい。","",0,0
   #EXIT
 #END
 #IF (F <= 0)
   BEEP
   MESSAGE "入力エラー","幅に正常値を指定して下さい。","",0,0
   #EXIT
 #END
 #IF ((N < 1)||(N > 1000))
   BEEP
   MESSAGE "入力エラー","パターン数に正常値を指定して下さい。","",1,1000
   #EXIT
 #END

 CAL sx = L/N
 CAL sy = F
 CAL w1 = 0
 CAL w2 = 0
 CAL w3 = sx*0.25
 CAL w4 = sy*0.5
 CAL w5 = sx*0.5
 CAL w6 = 0
 GET3PA i1,i2,x1,y1,r1,a1,a2,w1,w2,w3,w4,w5,w6
 #IF (i1 == 0)
   BEEP
   MESSAGE "入力エラー","計算できません","",0,0
   #EXIT
 #END
CAL w1 = 0.5*PI - a1
 CAL a3 = 1.5*PI - w1
 CAL a4 = 1.5*PI + w1

 LAYER SetLineLay1  // 外形線
 PEN SetLineCol1,SetLineLtp1,SetLineWid1
 
 CAL c = 0
 CAL sl = 0
*LOOP
 // 基本形状作図
 CAL x1 = sl + sx*0.25
 ARC x1,y1,r1,a1,a2

 CAL x1 = sl + sx*0.75
 CAL y1 = - y1
 ARC x1,y1,r1,a3,a4

 CAL y1 = - y1
 CAL sl = sl + sx
 CAL c = c + 1
 #IF (c < N)
   #GOTO *LOOP
 #END

全線長など数値を変えると波部分の形状がころころと変わってしまいますので、幅は計算で求めるようにして、線長と幅の比率を入力するようにしてみます。
// 破断線1(改)線長・幅の比を指定 〜〜〜〜〜〜〜〜 
//
// ----- 変数宣言 -----
#VAR
 L = 100  ;*全線長
 R = 0.2  ;*線長・幅 比率
 F      ;幅
N =  4  ;*パターン数
 // 作業用変数
 sx   // 基本形状の横サイズ
 sy   // 基本形状の縦サイズ
 c    // カウンタ
 sl   // 基本形状作図位置(左中央)
 x1
 y1
 r1
 a1
 a2
 a3
 a4
 i1 = 0
 i2 = 0
 w1
 w2
 w3
 w4
 w5
 w6
// ----- 実行開始 -----
#DRAW
 CAL F = L/N*R

 #IF (L <= 0)
   BEEP
   MESSAGE "入力エラー","全線長に正常値を指定して下さい。","",0,0
   #EXIT
 #END
 #IF (F <= 0)
   BEEP
   MESSAGE "入力エラー","幅に正常値を指定して下さい。","",0,0
   #EXIT
 #END
 #IF ((N < 1)||(N > 1000))
   BEEP
   MESSAGE "入力エラー","パターン数に正常値を指定して下さい。","",1,1000
   #EXIT
 #END

 CAL sx = L/N
 CAL sy = F
 CAL w1 = 0
 CAL w2 = 0
 CAL w3 = sx*0.25
 CAL w4 = sy*0.5
 CAL w5 = sx*0.5
 CAL w6 = 0
 GET3PA i1,i2,x1,y1,r1,a1,a2,w1,w2,w3,w4,w5,w6
 #IF (i1 == 0)
   BEEP
   MESSAGE "入力エラー","計算できません","",0,0
   #EXIT
 #END
CAL w1 = 0.5*PI - a1
 CAL a3 = 1.5*PI - w1
 CAL a4 = 1.5*PI + w1

 LAYER SetLineLay1  // 外形線
 PEN SetLineCol1,SetLineLtp1,SetLineWid1
 
 CAL c = 0
 CAL sl = 0
*LOOP
 // 基本形状作図
 CAL x1 = sl + sx*0.25
 ARC x1,y1,r1,a1,a2

 CAL x1 = sl + sx*0.75
 CAL y1 = - y1
 ARC x1,y1,r1,a3,a4

 CAL y1 = - y1
 CAL sl = sl + sx
 CAL c = c + 1
 #IF (c < N)
   #GOTO *LOOP
 #END

Script!作り方 No.022 図面枠4

さて、最後に、区域をつけてみます。

文字は作図していませんがCAD側でやっつけて下さい。

区域の横・縦の分割数を入力させます。
輪郭線の外側に、間隔の半分の長さの線を描きます。但し、真ん中だけは端まで長くします。区域と区域の間に線を描きますので、分割数より1本少ない線数となります。
// 図面枠 輪郭線+表題欄+裁断マーク+区域
//
#LIST
 paper = "A0","A1","A2","A3","A4"
 pmuki = "横","縦"
 org = "左下","中央"

#VAR
 paper = A0  ;*用紙の大きさ
 pmuki = 横  ;*用紙の向き
 org = 左下  ;*原点
 c = 20    ;*輪郭線間隔c
 d = 20    ;*輪郭線間隔d
 hyoux =100  ;*表題欄X
 hyouy = 50  ;*表題欄Y
 sai_l = 15  ;*裁断マーク長さ
 sai_w = 5  ;*裁断マーク幅
 kui_x = 10  ;*区域横数
 kui_y = 8  ;*区域縦数
 
 ipaper   // 用紙の大きさ 0-4
 ipmuki   // 用紙の向き 0,1
 iorg    // 原点 0,1
 px
 py
 ox
 oy
 w1
 w2
 w3
 w4
 w5
 w6
 w7
 w8
 cn

#DRAW
 CHKITEM ipaper,paper,paper
 CHKITEM ipmuki,pmuki,pmuki
 CHKITEM iorg,org,org

 CAL px = 1189
 CAL py = 841
 #IF (ipaper == 1)
   CAL px = 841
   CAL py = 594
 #END
 #IF (ipaper == 2)
   CAL px = 594
   CAL py = 420
 #END
 #IF (ipaper == 3)
   CAL px = 420
   CAL py = 297
 #END
 #IF (ipaper == 4)
   CAL px = 297
   CAL py = 210
 #END

// 縦向きの場合、横・縦サイズを入れ替え
 #IF (ipmuki == 1)
   CAL w1 = px
   CAL px = py
   CAL py = w1
 #END

 CAL ox = 0
 CAL oy = 0
 #IF (iorg == 1)
   CAL ox = -px/2
   CAL oy = -py/2
 #END

 // 図面枠 補助線で作図
 LAYER SetLineLay7
 PEN SetLineCol7,SetLineLtp7,SetLineWid7
 CAL w1 = ox
 CAL w2 = oy
 CAL w3 = ox + px
 CAL w4 = oy + py
 BOX w1,w2,w3,w4

 // 輪郭線 外形線で作図
 LAYER SetLineLay1
 PEN SetLineCol1,SetLineLtp1,SetLineWid1
 CAL w1 = ox + d
 CAL w2 = oy + c
 CAL w3 = ox + px - c
 CAL w4 = oy + py - c
 BOX w1,w2,w3,w4

 #IF ((hyoux <= 0) || (hyouy <= 0))
   #GOTO *NEXT1
 #END
 // 表題欄 外形線で作図
 CAL w1 = ox + px - c - hyoux
 CAL w2 = oy + d
 CAL w3 = w1
 CAL w4 = oy + d + hyouy
 LINE w1,w2,w3,w4
 CAL w1 = w3
 CAL w2 = w4
 CAL w3 = ox + px - c
 CAL w4 = w2
 LINE w1,w2,w3,w4

*NEXT1
 #IF ((sai_l <= 0) || (sai_w <= 0))
   #GOTO *NEXT2
 #END
 // 裁断マーク 外形線の色で作図
 // 左下
 CAL w1 = ox
 CAL w2 = oy
 CAL w3 = ox + sai_l
 CAL w4 = oy + sai_w
 4SOLID -1,w1,w2, w3,w2, w3,w4, w1,w4
 CAL w1 = ox
 CAL w2 = oy + sai_w
 CAL w3 = ox + sai_w
 CAL w4 = oy + sai_l
 4SOLID -1,w1,w2, w3,w2, w3,w4, w1,w4
 // 左上
 CAL w1 = ox
 CAL w2 = oy + py
 CAL w3 = ox + sai_l
 CAL w4 = oy + py - sai_w
 4SOLID -1,w1,w2, w3,w2, w3,w4, w1,w4
 CAL w1 = ox
 CAL w2 = oy + py - sai_w
 CAL w3 = ox + sai_w
 CAL w4 = oy + py - sai_l
 4SOLID -1,w1,w2, w3,w2, w3,w4, w1,w4
 // 右下
 CAL w1 = ox + px
 CAL w2 = oy
 CAL w3 = ox + px - sai_l
 CAL w4 = oy + sai_w
 4SOLID -1,w1,w2, w3,w2, w3,w4, w1,w4
 CAL w1 = ox + px
 CAL w2 = oy + sai_w
 CAL w3 = ox + px - sai_w
 CAL w4 = oy + sai_l
 4SOLID -1,w1,w2, w3,w2, w3,w4, w1,w4
 // 右上
 CAL w1 = ox + px
 CAL w2 = oy + py
 CAL w3 = ox + px - sai_l
 CAL w4 = oy + py - sai_w
 4SOLID -1,w1,w2, w3,w2, w3,w4, w1,w4
 CAL w1 = ox + px
 CAL w2 = oy + py - sai_w
 CAL w3 = ox + px - sai_w
 CAL w4 = oy + py - sai_l
 4SOLID -1,w1,w2, w3,w2, w3,w4, w1,w4

*NEXT2
 #IF ((kui_x<=1)||(kui_y<=1)||((kui_x%2)==1)||((kui_y%2)==1))
   #GOTO *NEXT3
 #END
 // 区域・横方向 外形線で作図
 CAL cn = 0
 CAL w5 = (px - c - d) / kui_x
 CAL w6 = w5
*LOOP1
 CAL w7 = c/2
 #IF (cn == (kui_x/2-1))
   CAL w7 = c
 #END
 CAL w1 = ox + d + w6
 CAL w2 = oy + c
 CAL w3 = w1
 CAL w4 = w2 - w7
 LINE w1,w2,w3,w4
 CAL w2 = oy + py - c
 CAL w4 = w2 + w7
 LINE w1,w2,w3,w4
 CAL w6 = w6 + w5
 CAL cn = cn + 1
 #IF (cn < (kui_x-1))
   #GOTO *LOOP1
 #END
 // 区域・縦方向 外形線で作図
 CAL cn = 0
 CAL w5 = (py - 2*c) / kui_y
 CAL w6 = w5
*LOOP2
 CAL w7 = d/2
 CAL w8 = c/2
 #IF (cn == (kui_y/2-1))
   CAL w7 = d
   CAL w8 = c
 #END
 CAL w1 = ox + d
 CAL w2 = oy + c + w6
 CAL w3 = w1 - w7
 CAL w4 = w2
 LINE w1,w2,w3,w4
 CAL w1 = ox + px - c
 CAL w3 = w1 + w8
 LINE w1,w2,w3,w4
 CAL w6 = w6 + w5
 CAL cn = cn + 1
 #IF (cn < (kui_y-1))
   #GOTO *LOOP2
 #END

*NEXT3
とまぁ、こんな感じです。

Script!作り方 No.022 図面枠3

次に、図面枠の4つの角に、裁断マークを付けてみましょう。
横長の四角ソリッドと縦の四角ソリッドの2つを組み合わせます。

■■
裁断マークの長さと幅は、手入力できるようにしておきます。
// 図面枠 輪郭線+表題欄+裁断マーク
//
#LIST
 paper = "A0","A1","A2","A3","A4"
 pmuki = "横","縦"
 org = "左下","中央"

#VAR
 paper = A0  ;*用紙の大きさ
 pmuki = 横  ;*用紙の向き
 org = 左下  ;*原点
 c = 20    ;*輪郭線間隔c
 d = 20    ;*輪郭線間隔d
 hyoux =100  ;*表題欄X
 hyouy = 50  ;*表題欄Y
 sai_l = 15  ;*裁断マーク長さ
 sai_w = 5  ;*裁断マーク幅
 
 ipaper   // 用紙の大きさ 0-4
 ipmuki   // 用紙の向き 0,1
 iorg    // 原点 0,1
 px
 py
 ox
 oy
 w1
 w2
 w3
 w4

#DRAW
 CHKITEM ipaper,paper,paper
 CHKITEM ipmuki,pmuki,pmuki
 CHKITEM iorg,org,org

 CAL px = 1189
 CAL py = 841
 #IF (ipaper == 1)
   CAL px = 841
   CAL py = 594
 #END
 #IF (ipaper == 2)
   CAL px = 594
   CAL py = 420
 #END
 #IF (ipaper == 3)
   CAL px = 420
   CAL py = 297
 #END
 #IF (ipaper == 4)
   CAL px = 297
   CAL py = 210
 #END

// 縦向きの場合、横・縦サイズを入れ替え
 #IF (ipmuki == 1)
   CAL w1 = px
   CAL px = py
   CAL py = w1
 #END

 CAL ox = 0
 CAL oy = 0
 #IF (iorg == 1)
   CAL ox = -px/2
   CAL oy = -py/2
 #END

 // 図面枠 補助線で作図
 LAYER SetLineLay7
 PEN SetLineCol7,SetLineLtp7,SetLineWid7
 CAL w1 = ox
 CAL w2 = oy
 CAL w3 = ox + px
 CAL w4 = oy + py
 BOX w1,w2,w3,w4

 // 輪郭線 外形線で作図
 LAYER SetLineLay1
 PEN SetLineCol1,SetLineLtp1,SetLineWid1
 CAL w1 = ox + d
 CAL w2 = oy + c
 CAL w3 = ox + px - c
 CAL w4 = oy + py - c
 BOX w1,w2,w3,w4

 #IF ((hyoux <= 0) || (hyouy <= 0))
   #GOTO *NEXT1
 #END
 // 表題欄 外形線で作図
 CAL w1 = ox + px - c - hyoux
 CAL w2 = oy + d
 CAL w3 = w1
 CAL w4 = oy + d + hyouy
 LINE w1,w2,w3,w4
 CAL w1 = w3
 CAL w2 = w4
 CAL w3 = ox + px - c
 CAL w4 = w2
 LINE w1,w2,w3,w4

*NEXT1
 #IF ((sai_l <= 0) || (sai_w <= 0))
   #GOTO *NEXT2
 #END
 // 裁断マーク 外形線の色で作図
 // 左下
 CAL w1 = ox
 CAL w2 = oy
 CAL w3 = ox + sai_l
 CAL w4 = oy + sai_w
 4SOLID -1,w1,w2, w3,w2, w3,w4, w1,w4
 CAL w1 = ox
 CAL w2 = oy + sai_w
 CAL w3 = ox + sai_w
 CAL w4 = oy + sai_l
 4SOLID -1,w1,w2, w3,w2, w3,w4, w1,w4
 // 左上
 CAL w1 = ox
 CAL w2 = oy + py
 CAL w3 = ox + sai_l
 CAL w4 = oy + py - sai_w
 4SOLID -1,w1,w2, w3,w2, w3,w4, w1,w4
 CAL w1 = ox
 CAL w2 = oy + py - sai_w
 CAL w3 = ox + sai_w
 CAL w4 = oy + py - sai_l
 4SOLID -1,w1,w2, w3,w2, w3,w4, w1,w4
 // 右下
 CAL w1 = ox + px
 CAL w2 = oy
 CAL w3 = ox + px - sai_l
 CAL w4 = oy + sai_w
 4SOLID -1,w1,w2, w3,w2, w3,w4, w1,w4
 CAL w1 = ox + px
 CAL w2 = oy + sai_w
 CAL w3 = ox + px - sai_w
 CAL w4 = oy + sai_l
 4SOLID -1,w1,w2, w3,w2, w3,w4, w1,w4
 // 右上
 CAL w1 = ox + px
 CAL w2 = oy + py
 CAL w3 = ox + px - sai_l
 CAL w4 = oy + py - sai_w
 4SOLID -1,w1,w2, w3,w2, w3,w4, w1,w4
 CAL w1 = ox + px
 CAL w2 = oy + py - sai_w
 CAL w3 = ox + px - sai_w
 CAL w4 = oy + py - sai_l
 4SOLID -1,w1,w2, w3,w2, w3,w4, w1,w4

*NEXT2

Script!作り方 No.022 図面枠2

次に、右下に表題欄をつけてみます。
表題欄の大きさを入力させるようにします。
BOX命令で描かせてもいいですが、右縦線と下横線が輪郭線と重複しますので、上と左の線を2本描かせるようにします。取りあえず枠だけです。横縦の大きさのどちらかを 0 以下にすると描かせないようにします。
// 図面枠 輪郭線+表題欄
//
#LIST
 paper = "A0","A1","A2","A3","A4"
 pmuki = "横","縦"
 org = "左下","中央"

#VAR
 paper = A0  ;*用紙の大きさ
 pmuki = 横  ;*用紙の向き
 org = 左下  ;*原点
 c = 20    ;*輪郭線間隔c
 d = 20    ;*輪郭線間隔d
 hyoux =100  ;*表題欄X
 hyouy = 50  ;*表題欄Y
 
 ipaper   // 用紙の大きさ 0-4
 ipmuki   // 用紙の向き 0,1
 iorg    // 原点 0,1
 px
 py
 ox
 oy
 w1
 w2
 w3
 w4

#DRAW
 CHKITEM ipaper,paper,paper
 CHKITEM ipmuki,pmuki,pmuki
 CHKITEM iorg,org,org

 CAL px = 1189
 CAL py = 841
 #IF (ipaper == 1)
   CAL px = 841
   CAL py = 594
 #END
 #IF (ipaper == 2)
   CAL px = 594
   CAL py = 420
 #END
 #IF (ipaper == 3)
   CAL px = 420
   CAL py = 297
 #END
 #IF (ipaper == 4)
   CAL px = 297
   CAL py = 210
 #END

// 縦向きの場合、横・縦サイズを入れ替え
 #IF (ipmuki == 1)
   CAL w1 = px
   CAL px = py
   CAL py = w1
 #END

 CAL ox = 0
 CAL oy = 0
 #IF (iorg == 1)
   CAL ox = -px/2
   CAL oy = -py/2
 #END

 // 図面枠 補助線で作図
 LAYER SetLineLay7
 PEN SetLineCol7,SetLineLtp7,SetLineWid7
 CAL w1 = ox
 CAL w2 = oy
 CAL w3 = ox + px
 CAL w4 = oy + py
 BOX w1,w2,w3,w4

 // 輪郭線 外形線で作図
 LAYER SetLineLay1
 PEN SetLineCol1,SetLineLtp1,SetLineWid1
 CAL w1 = ox + d
 CAL w2 = oy + c
 CAL w3 = ox + px - c
 CAL w4 = oy + py - c
 BOX w1,w2,w3,w4

 #IF ((hyoux <= 0) || (hyouy <= 0))
   #GOTO *NEXT1
 #END
 // 表題欄 外形線で作図
 CAL w1 = ox + px - c - hyoux
 CAL w2 = oy + d
 CAL w3 = w1
 CAL w4 = oy + d + hyouy
 LINE w1,w2,w3,w4
 CAL w1 = w3
 CAL w2 = w4
 CAL w3 = ox + px - c
 CAL w4 = w2
 LINE w1,w2,w3,w4

*NEXT1

Script!作り方 No.022 図面枠

それでは、図面枠の作成について考えてみます。
まずは単純に、A0〜A4、横or縦を指定して、その用紙の大きさの四角を作図することを考えます。変数の初期値に文字を入れていますが、こういう書き方は想定してませんので余り推奨はしませんが・・・原点を左下にするか中央にするかを指定できるようにしています。

余り一度に作ってしまおうと思わずに、少しずつ作っていって、後から肉付けをするようにしていくと作りやすいと思います。

// 図面枠
//
#LIST
 paper = "A0","A1","A2","A3","A4"
 pmuki = "横","縦"
 org = "左下","中央"

#VAR
 paper = A0  ;*用紙の大きさ
 pmuki = 横  ;*用紙の向き
 org = 左下  ;*原点
 
 ipaper   // 用紙の大きさ 0-4
 ipmuki   // 用紙の向き 0,1
 iorg    // 原点 0,1
 px
 py
 ox
 oy
 w1
 w2
 w3
 w4

#DRAW
 CHKITEM ipaper,paper,paper
 CHKITEM ipmuki,pmuki,pmuki
 CHKITEM iorg,org,org

 CAL px = 1189
 CAL py = 841
 #IF (ipaper == 1)
   CAL px = 841
   CAL py = 594
 #END
 #IF (ipaper == 2)
   CAL px = 594
   CAL py = 420
 #END
 #IF (ipaper == 3)
   CAL px = 420
   CAL py = 297
 #END
 #IF (ipaper == 4)
   CAL px = 297
   CAL py = 210
 #END

// 縦向きの場合、横・縦サイズを入れ替え
 #IF (ipmuki == 1)
   CAL w1 = px
   CAL px = py
   CAL py = w1
 #END

 CAL ox = 0
 CAL oy = 0
 #IF (iorg == 1)
   CAL ox = -px/2
   CAL oy = -py/2
 #END

 // 図面枠 外形線で作図
 LAYER SetLineLay1
 PEN SetLineCol1,SetLineLtp1,SetLineWid1
 CAL w1 = ox
 CAL w2 = oy
 CAL w3 = ox + px
 CAL w4 = oy + py
 BOX w1,w2,w3,w4
取りあえず用紙枠を実線で描かせていましたが通常そんなことはありませんので、補助線で描くようにします。次に、輪郭線を描かせてみます。JIS本のc,d の値を入れるようにします(dは左側の間隔、cはそれ以外)。
// 図面枠 輪郭線
//
#LIST
 paper = "A0","A1","A2","A3","A4"
 pmuki = "横","縦"
 org = "左下","中央"

#VAR
 paper = A0  ;*用紙の大きさ
 pmuki = 横  ;*用紙の向き
 org = 左下  ;*原点
 c = 20    ;*輪郭線間隔c
 d = 20    ;*輪郭線間隔d
 
 ipaper   // 用紙の大きさ 0-4
 ipmuki   // 用紙の向き 0,1
 iorg    // 原点 0,1
 px
 py
 ox
 oy
 w1
 w2
 w3
 w4

#DRAW
 CHKITEM ipaper,paper,paper
 CHKITEM ipmuki,pmuki,pmuki
 CHKITEM iorg,org,org

 CAL px = 1189
 CAL py = 841
 #IF (ipaper == 1)
   CAL px = 841
   CAL py = 594
 #END
 #IF (ipaper == 2)
   CAL px = 594
   CAL py = 420
 #END
 #IF (ipaper == 3)
   CAL px = 420
   CAL py = 297
 #END
 #IF (ipaper == 4)
   CAL px = 297
   CAL py = 210
 #END

// 縦向きの場合、横・縦サイズを入れ替え
 #IF (ipmuki == 1)
   CAL w1 = px
   CAL px = py
   CAL py = w1
 #END

 CAL ox = 0
 CAL oy = 0
 #IF (iorg == 1)
   CAL ox = -px/2
   CAL oy = -py/2
 #END

 // 図面枠 補助線で作図
 LAYER SetLineLay7
 PEN SetLineCol7,SetLineLtp7,SetLineWid7
 CAL w1 = ox
 CAL w2 = oy
 CAL w3 = ox + px
 CAL w4 = oy + py
 BOX w1,w2,w3,w4

 // 輪郭線 外形線で作図
 LAYER SetLineLay1
 PEN SetLineCol1,SetLineLtp1,SetLineWid1
 CAL w1 = ox + d
 CAL w2 = oy + c
 CAL w3 = ox + px - c
 CAL w4 = oy + py - c
 BOX w1,w2,w3,w4
上記と余り変わっていませんので理解できると思います。

Script!作り方 No.021 式、演算

Script!での計算式は、
#VAR
 ・・・・
#CALC
 a = ○ + △
・・・
#DRAW
 ・・・
というように、#CALC 内で書く方法と、
#VAR
 ・・・・
#DRAW
 CAL a = ○ + △
 ・・・
というように、#DRAW 内で「CAL」命令を使って書く方法があります。#DRAW 内で「CAL」を省略することは出来ません。

計算式で使える演算子
+:加算 -:減算 *:乗算 /:除算 %:剰余 ^:べき乗
&&:論理積  ||:論理和  !:否定
==:等しい  !=:等しくない
>=:以上 >:より大きい <=:以下 <:より小さい
計算式で使える関数(三角関数はラジアン値)
SIN , COS , TAN , ASIN , ACOS , ATAN
SQRT , EXP , LOG , LOG10 , LOG2 , ABS
INV:インボリュート関数 , AINV:逆INV関数
INT:整数部を返す , FRAC:小数部を返す
SINH , COSH , TANH , NOT:否定
ATOF , ATOI , LENGTH:文字長さ
関数名は、例えば SIN の場合、Sinと書いても sin と書いても大丈夫です。
 CAL a = Sin(b)
という感じで、引数を括弧で囲って指定します。

ASIN、ACOS、ATAN は、逆三角関数です。Sin-1、Cos-1、Tan-1 の事です。
SQRT は平方根(ルート)です。
EXP は指数関数、LOG、LOG10、LOG2 は対数関数です。
ABS は絶対値。
INV は「Tan(α) - α」です。AINV は、その逆にαを取得する関数。
INT は整数部を取得、FRAC は小数部を取得、
SINH、COSH、TANH は、ハイパボリックサイン、ハイパボリックコサイン、ハイパボリックタンジェントです。

文字列系を扱いたい場合には、関数ではなく、STR〜系の命令を使って下さい。式の中で文字列を扱う事は出来ません。元々、電卓プログラム(AFCalc)を作る時に使ったロジックを利用しているためです。
その他、数学関係の命令として幾つか用意してあります。
2点間距離計測
 GETDIST x,x1,y1,x2,y2
角度計算
 GETANGLE x,dx,dy
写像
 GETREV rx,ry,x,y,cx,cy,ang
点から直線への垂点を算定
 GETCRSLP x,rx,ry,lx1,ly1,lx2,ly2,px,py
直線と直線の交点を算定
 GETCRSLL x,rx,ry,l1x1,l1y1,l1x2,l1y2,l2x1,l2y1,l2x2,l2y2
直線と円の交点を算定
 GETCRSLC x,rx1,ry1,rx2,ry2,lx1,ly1,lx2,ly2,cx1,cy1,cr1
円と円の交点を算定
 GETCRSCC x,rx1,ry1,rx2,ry2,cx1,cy1,cr1,cx2,cy2,cr2
3点を通過する円を算定
 GET3PC x,rx,ry,rc,x1,y1,x2,y2,x3,y3
半径/2点/方向指示点による円弧を算定
 GET2PA x,rx,ry,rc,rsa,rea,r,x1,y1,x2,y2,x3,y3
3点を通過する円弧を算定
 GET3PA x,xx,rx,ry,rc,rsa,rea,x1,y1,x2,y2,x3,y3

Script!作り方 No.020 めねじ(タップ)

一応最後のテスト用サンプルとして、めねじ(タップ)を作図してみます。まずは上面図です。
// めねじ(タップ)上面図
//
#LIST
 M = 1, 1.1, 1.2, 1.4, 1.6, 1.8, 2, 2.2, 2.5, 3, 3.5, 4, 4.5, 5, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 27, 30, 33, 36, 39, 42, 45, 48, 52, 56, 60, 64, 68
 M2 = 0.729,0.829,0.929,1.075,1.221,1.421,1.567,1.713,2.013,2.459,2.85,3.242,3.688,4.134,4.917,6.647,8.376,10.106,11.835,13.835,15.294,17.294,19.294,20.752,23.752,26.211,29.211,31.67,34.67,37.129,40.129,42.587,46.587,50.046,54.046,57.505,61.505

#VAR
 M = 10  ;*ねじ径
 M2     // めねじ内径D1
 w1
 w2
 w3
 w4

#DRAW
 CHKLIST w1,"M",M  // 指定したねじ径がLISTの何個目かを得る
 GETLIST M2,"M2",w1 // そのときのめねじ内径を取得する

 CAL w1 = M/2.0+SetZ1
 CAL w2 = -M/2.0-SetZ1
 CAL w3 = M /2.0
 CAL w4 = M2/2.0

 // 中心線
 LAYER SetLineLay3
 PEN SetLineCol3,SetLineLtp3,SetLineWid3
 LINE w1,0, w2,0
 LINE 0,w1, 0,w2

 // めねじ谷の径(細線)
 LAYER SetLineLay1
 PEN SetLineCol1,SetLineLtp1,SetLWidth1
 CIRCLE 0,0,w3

 // めねじ内径
 LAYER SetLineLay1
 PEN SetLineCol1,SetLineLtp1,SetLineWid1
 CIRCLE 0,0,w4
めねじ径は、外形線をそのまま使っています。谷の径は外形線ですが線幅を細線にしています。次に側面図です。貫通タイプを想定していますが、ある線からある線へ、という事は出来ませんので、作図したあと伸縮が必要になると思います。
// めねじ(タップ)側面図
//
#LIST
 M = 1, 1.1, 1.2, 1.4, 1.6, 1.8, 2, 2.2, 2.5, 3, 3.5, 4, 4.5, 5, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 27, 30, 33, 36, 39, 42, 45, 48, 52, 56, 60, 64, 68
 M2 = 0.729,0.829,0.929,1.075,1.221,1.421,1.567,1.713,2.013,2.459,2.85,3.242,3.688,4.134,4.917,6.647,8.376,10.106,11.835,13.835,15.294,17.294,19.294,20.752,23.752,26.211,29.211,31.67,34.67,37.129,40.129,42.587,46.587,50.046,54.046,57.505,61.505

#VAR
 M = 10  ;*ねじ径
 M2     // めねじ内径D1
 L = 20  ;*ねじ深さ
 w1
 w2

#DRAW
 CHKLIST w1,"M",M  // 指定したねじ径がLISTの何個目かを得る
 GETLIST M2,"M2",w1 // そのときのめねじ内径を取得する

 // 中心線
 LAYER SetLineLay3
 PEN SetLineCol3,SetLineLtp3,SetLineWid3
 CAL w1 = SetZ1
 CAL w2 = - L - SetZ1
 LINE 0,w1, 0,w2

 // めねじ谷の径(細線)
 LAYER SetLineLay1
 PEN SetLineCol1,SetLineLtp1,SetLWidth1
 CAL w1 = -M/2.0
 CAL w2 = -L
 LINE w1,0, w1,w2
 CAL w1 = M/2.0
 LINE w1,0, w1,w2

 // めねじ内径
 LAYER SetLineLay1
 PEN SetLineCol1,SetLineLtp1,SetLineWid1
 CAL w1 = -M2/2.0
 CAL w2 = -L
 LINE w1,0, w1,w2
 CAL w1 = M2/2.0
 LINE w1,0, w1,w2

ねじ径のように、JIS規格で決まっている数値しか使えないものは、#LIST でその内容を定義しておくようにします。選んだねじ径に対応する他の諸元は、CHKLISTで 何個目の要素かを取得し、GETLISTで 同じ場所にある値を取得する、というようにします。

Script!作り方 No.019 2.5D管

次に、Script!&Jw_cad 2.5D での四角管、円管の作図をしてみます。まずは、四角管から。
// 2.5Dテスト17・四角管
// ----- 変数宣言 -----
#LIST
 SD = 0,1
#VAR
 X1 =  0  ;*開始点座標X
 Y1 =  0  ;*開始点座標Y
 X2 = 100  ;*終了点座標X
 Y2 =  0  ;*終了点座標Y
 S1 = 10  ;*端部中心点高さ
 S2 = 20  ;*横幅
 S3 = 15  ;*縦幅
 S4 = 0  ;*断面の傾き[°]
 SD = 0  ;*端部断面線(0:無 1:有)
 // 作業用変数
 dx
 dy
 a
 s25d
// ----- 実行開始 -----
#DRAW
 LAYER SetLineLay1  // 外形線
 PEN SetLineCol1,SetLineLtp1,SetLineWid1

 LINE X1,Y1,X2,Y2

 STRCPY s25d,S1
 STRCAT s25d,","
 STRCAT s25d,S2
 STRCAT s25d,","
 STRCAT s25d,S3
 STRCAT s25d,","
 STRCAT s25d,S4
 #IF (SD == 0)
   STRCAT s25d,"d"
   #GOTO *NEXT
 #END
 STRCAT s25d,"D"
*NEXT
 ZKATTR $8000
 CAL dx = X2 - X1
 CAL dy = Y2 - Y1
 GetAngle a,dx,dy
 TEXT X1,Y1,3,3,a,7,s25d
 CAL dx = X1 - X2
 CAL dy = Y1 - Y2
 GetAngle a,dx,dy
 TEXT X2,Y2,3,3,a,7,s25d
 ZKATTR 0
次に円管の作図です。
// 2.5Dテスト18・円管
// ----- 変数宣言 -----
#LIST
 SD = 0,1
#VAR
 X1 =  0  ;*開始点座標X
 Y1 =  0  ;*開始点座標Y
 X2 = 100  ;*終了点座標X
 Y2 =  0  ;*終了点座標Y
 S1 = 10  ;*端部中心点高さ
 S2 = 20  ;*横半径
 S3 = 20  ;*縦半径
 S4 = 0  ;*断面の傾き[°]
 SD = 0  ;*端部断面線(0:無 1:有)
 // 作業用変数
 dx
 dy
 a
 s25d
// ----- 実行開始 -----
#DRAW
 LAYER SetLineLay1  // 外形線
 PEN SetLineCol1,SetLineLtp1,SetLineWid1

 LINE X1,Y1,X2,Y2

 STRCPY s25d,S1
 STRCAT s25d,","
 STRCAT s25d,S2
 STRCAT s25d,","
 STRCAT s25d,S3
 STRCAT s25d,","
 STRCAT s25d,S4
 #IF (SD == 0)
   STRCAT s25d,"t"
   #GOTO *NEXT
 #END
 STRCAT s25d,"T"
*NEXT
 ZKATTR $8000
 CAL dx = X2 - X1
 CAL dy = Y2 - Y1
 GetAngle a,dx,dy
 TEXT X1,Y1,3,3,a,7,s25d
 CAL dx = X1 - X2
 CAL dy = Y1 - Y2
 GetAngle a,dx,dy
 TEXT X2,Y2,3,3,a,7,s25d
 ZKATTR 0
線ソリッドにしても無効化されましたので省略します。

以上、Jw_cad 2.5D 関連でした。

Script!作り方 No.018 2.5D球

次に、Script!&Jw_cad 2.5Dで球の作図です。
// 2.5Dテスト15・球
// ----- 変数宣言 -----
#VAR
 R = 100  ;*円半径
 H1 = 0  ;*中心点高さ
 SA = 0  ;*球の軸の鉛直角[°]
 BA = 10  ;*分割角度[°]
 // 作業用変数
 a
 s25d
// ----- 実行開始 -----
#DRAW
 LAYER SetLineLay1  // 外形線
 PEN SetLineCol1,SetLineLtp1,SetLineWid1

 CIRCLE 0,0,R

 STRCPY s25d,H1
 STRCAT s25d,","
 STRCAT s25d,SA
 STRCAT s25d,","
 STRCAT s25d,BA
 STRCAT s25d,"g"
 ZKATTR $8000
 CAL a = 0/180*PI
 TEXT 0,0,3,3,a,7,s25d
 ZKATTR 0
円の代わりに、円ソリッド、円周ソリッドを使って作図させてみましたが、球にはなりませんでしたので、省略します。

Script!作り方 No.017 2.5D螺旋幅

次に、螺旋の幅(追加螺旋)の指定を出来るようにしてみます。
まずは通常の円弧の場合です。
// 2.5Dテスト13・螺旋、螺旋幅
// ----- 変数宣言 -----
#VAR
 R = 100  ;*円弧半径
 SA = 30  ;*開始角度[°]
 EA =225  ;*終了角度[°]
 H1 = 0  ;*高さ1
 H2 = 50  ;*高さ2
 BA = 10  ;*分割角度[°]
 SX = 0  ;*中心ずれ位置X
 SY = 0  ;*中心ずれ位置Y
 RX = 0  ;*追加円長軸径
 RY = 0  ;*追加円短軸径
 RA = 1800 ;*螺旋回転角[°]
 RW = 10  ;*追加螺旋の幅
 RH = 0  ;*追加螺旋の高さの差
 RD = 0  ;*追加螺旋の角度の差
 // 作業用変数
 a1
 a2
 a
 s25d
// ----- 実行開始 -----
#DRAW
 LAYER SetLineLay1  // 外形線
 PEN SetLineCol1,SetLineLtp1,SetLineWid1

 CAL a1 = SA/180*PI
 CAL a2 = EA/180*PI
 ARC 0,0,R,a1,a2

 STRCPY s25d,H1
 STRCAT s25d,","
 STRCAT s25d,H2
 STRCAT s25d,","
 STRCAT s25d,BA
 STRCAT s25d,","
 STRCAT s25d,SX
 STRCAT s25d,","
 STRCAT s25d,SY
 STRCAT s25d,","
 STRCAT s25d,RX
 STRCAT s25d,","
 STRCAT s25d,RY
 STRCAT s25d,","
 STRCAT s25d,RA
 STRCAT s25d,","
 STRCAT s25d,RW
 STRCAT s25d,","
 STRCAT s25d,RH
 STRCAT s25d,","
 STRCAT s25d,RD
 ZKATTR $8000
 CAL a = 0/180*PI
 TEXT 0,0,3,3,a,7,s25d
 ZKATTR 0
次に、円弧の代わりに、円周ソリッドにしてみましたが前回同様、何もなりませんでしたので省略します。

Script!作り方 No.016 2.5D螺旋

次は、円弧を描かせてJWW 2.5Dでの螺旋を描かせてみます。
まずは通常の円弧の場合。
// 2.5Dテスト11・螺旋
// ----- 変数宣言 -----
#VAR
 R = 100  ;*円弧半径
 SA = 30  ;*開始角度[°]
 EA =225  ;*終了角度[°]
 H1 = 0  ;*高さ1
 H2 = 50  ;*高さ2
 BA = 10  ;*分割角度[°]
 SX = 0  ;*中心ずれ位置X
 SY = 0  ;*中心ずれ位置Y
 RX = 0  ;*追加円長軸径
 RY = 0  ;*追加円短軸径
 RA = 1800 ;*螺旋回転角[°]
 // 作業用変数
 a1
 a2
 a
 s25d
// ----- 実行開始 -----
#DRAW
 LAYER SetLineLay1  // 外形線
 PEN SetLineCol1,SetLineLtp1,SetLineWid1

 CAL a1 = SA/180*PI
 CAL a2 = EA/180*PI
 ARC 0,0,R,a1,a2

 STRCPY s25d,H1
 STRCAT s25d,","
 STRCAT s25d,H2
 STRCAT s25d,","
 STRCAT s25d,BA
 STRCAT s25d,","
 STRCAT s25d,SX
 STRCAT s25d,","
 STRCAT s25d,SY
 STRCAT s25d,","
 STRCAT s25d,RX
 STRCAT s25d,","
 STRCAT s25d,RY
 STRCAT s25d,","
 STRCAT s25d,RA
 ZKATTR $8000
 CAL a = 0/180*PI
 TEXT 0,0,3,3,a,7,s25d
 ZKATTR 0
円弧をソリッドにしてみました。螺旋状態での作図はどうなるのかなと思いきや、何もならず、無視されるようです。
// 2.5Dテスト12・螺旋
//    ソリッド利用
// ----- 変数宣言 -----
#VAR
 R = 100  ;*円弧半径
 SA = 30  ;*開始角度[°]
 EA =225  ;*終了角度[°]
 H1 = 0  ;*高さ1
 H2 = 50  ;*高さ2
 BA = 10  ;*分割角度[°]
 SX = 0  ;*中心ずれ位置X
 SY = 0  ;*中心ずれ位置Y
 RX = 0  ;*追加円長軸径
 RY = 0  ;*追加円短軸径
 RA = 1800 ;*螺旋回転角[°]
 // 作業用変数
 a1
 a2
 a
 s25d
// ----- 実行開始 -----
#DRAW
 LAYER SetLineLay1  // 外形線
 PEN SetLineCol1,SetLineLtp1,SetLineWid1

 CAL a1 = SA/180*PI
 CAL a2 = EA/180*PI
 ASOLID $FF6666,0,0,R,R,0,a1,a2

 STRCPY s25d,H1
 STRCAT s25d,","
 STRCAT s25d,H2
 STRCAT s25d,","
 STRCAT s25d,BA
 STRCAT s25d,","
 STRCAT s25d,SX
 STRCAT s25d,","
 STRCAT s25d,SY
 STRCAT s25d,","
 STRCAT s25d,RX
 STRCAT s25d,","
 STRCAT s25d,RY
 STRCAT s25d,","
 STRCAT s25d,RA
 ZKATTR $8000
 CAL a = 0/180*PI
 TEXT 0,0,3,3,a,7,s25d
 ZKATTR 0

Script!作り方 No.015 2.5D円錐

次にScript!&JWW2.5Dでの円錐作図です。
まずは通常の円の場合
// 2.5Dテスト9・円錐
// ----- 変数宣言 -----
#VAR
 R = 100  ;*円半径
 H1 = 0  ;*高さ1
 H2 = 50  ;*高さ2
 BA = 10  ;*分割角度[°]
 SX = 0  ;*中心ずれ位置X
 SY = 0  ;*中心ずれ位置Y
 RX = 50  ;*追加円長軸径
 RY = 50  ;*追加円短軸径
 // 作業用変数
 a
 s25d
// ----- 実行開始 -----
#DRAW
 LAYER SetLineLay1  // 外形線
 PEN SetLineCol1,SetLineLtp1,SetLineWid1

 CIRCLE 0,0,R

 STRCPY s25d,H1
 STRCAT s25d,","
 STRCAT s25d,H2
 STRCAT s25d,","
 STRCAT s25d,BA
 STRCAT s25d,","
 STRCAT s25d,SX
 STRCAT s25d,","
 STRCAT s25d,SY
 STRCAT s25d,","
 STRCAT s25d,RX
 STRCAT s25d,","
 STRCAT s25d,RY
 ZKATTR $8000
 CAL a = 0/180*PI
 TEXT 0,0,3,3,a,7,s25d
 ZKATTR 0
次にソリッド図形を使用した場合
// 2.5Dテスト10・円錐
//    ソリッド利用
// ----- 変数宣言 -----
#VAR
 R = 100  ;*円半径
 H1 = 0  ;*高さ1
 H2 = 50  ;*高さ2
 BA = 10  ;*分割角度[°]
 SX = 0  ;*中心ずれ位置X
 SY = 0  ;*中心ずれ位置Y
 RX = 50  ;*追加円長軸径
 RY = 50  ;*追加円短軸径
 // 作業用変数
 a
 s25d
// ----- 実行開始 -----
#DRAW
 LAYER SetLineLay1  // 外形線
 PEN SetLineCol1,SetLineLtp1,SetLineWid1

 CSOLID $FFAAAA,0,0,R,R,0
 ASOLID $FF6666,0,0,R,R,0,0,0

 STRCPY s25d,H1
 STRCAT s25d,","
 STRCAT s25d,H2
 STRCAT s25d,","
 STRCAT s25d,BA
 STRCAT s25d,","
 STRCAT s25d,SX
 STRCAT s25d,","
 STRCAT s25d,SY
 STRCAT s25d,","
 STRCAT s25d,RX
 STRCAT s25d,","
 STRCAT s25d,RY
 ZKATTR $8000
 CAL a = 0/180*PI
 TEXT 0,0,3,3,a,7,s25d
 ZKATTR 0

Recent Comments