当方の「script!3D」を使って立体を作ろう話その24。
今回は、トーラス(リング、ドーナツ)の作図命令です。
トーラスは小さい垂直の円を大きい平面上の円状に回転体(スケッチアップ的にはフォローミー)されたような形状です。よく利用される形状らしく基本プリミティブとして用意されているCAD/CGソフトは多いようです。
トーラス
TORUS n,sp1,sp2,r1,r2,f
原点・作図基準平面は、変換マトリックスとなります。
n : (out) 登録された最終図形要素番号(1~)
sp1: 小円の分割数(3-1000)
sp2: 大円の分割数(3-1000) ※sp1*sp2 <= 10000
r1 : 小円の半径[mm] (>0)
r2 : 大円の半径[mm] (>0)
f : 表裏逆フラグ 0:外側が表面 1:内側が表面
簡単例です。
// トーラス作図テスト01
#VAR
sp1 = 12 ;*小円分割数
sp2 = 24 ;*大円分割数
r1 = 20 ;*小円半径
r2 = 100 ;*大円半径
n
#DRAW
PEN 90
TORUS n,sp1,sp2,r1,r2,0
実行します。
次に、円形状だけではなく、楕円形状も利用できるよう拡張したトーラスの作図機能も用意しています。
トーラス拡張1
TORUS1 n,sp1,sp2,rx1,rz1,ka1,rx2,ry2,ka2,f
原点・作図基準平面は、変換マトリックスとなります。
n : (out) 登録された最終図形要素番号(1~)
sp1: 小円の分割数(3-1000)
sp2: 大円の分割数(3-1000) ※sp1*sp2 <= 10000
rx1: 小円のX軸方向半径[mm] (>0)
rz1: 小円のZ軸方向半径[mm] (>0)
ka1: 小円の傾き角度[rad]
rx2: 大円のX軸方向半径[mm] (>0)
ry2: 大円のY軸方向半径[mm] (>0)
ka2: 大円の傾き角度[rad]
f : 表裏逆フラグ 0:外側が表面 1:内側が表面
簡単例です。
// トーラス作図テスト02
#VAR
sp1 = 12 ;*小円分割数
sp2 = 24 ;*大円分割数
rx1 = 20 ;*小円X軸半径
rz1 = 40 ;*小円Y軸半径
rx2 =100 ;*大円X軸半径
ry2 =150 ;*大円Y軸半径
n
#DRAW
PEN 91
TORUS1 n,sp1,sp2, rx1,rz1,0, rx2,ry2,0, 0
実行します。
更に、開始角度・終了角度を指定できるように拡張したトーラスの作図機能も用意しています。
トーラス拡張2
TORUS2 n,sp1,sp2,rx1,rz1,ka1,sa1,ea1,rx2,ry2,ka2,sa2,ea2,f1,f2,f3,f4,f
原点・作図基準平面は、変換マトリックスとなります。
n : (out) 登録された最終図形要素番号(1~)
sp1: 小円の分割数(3-1000)
sp2: 大円の分割数(3-1000) ※sp1*sp2≦10000
rx1: 小円のX軸方向半径[mm](>0)
rz1: 小円のZ軸方向半径[mm](>0)
ka1: 小円の傾き角度[rad]
sa1: 小円の開始角度[rad]
ea1: 小円の終了角度[rad]
rx2: 大円のX軸方向半径[mm](>0)
ry2: 大円のY軸方向半径[mm](>0)
ka2: 大円の傾き角度[rad]
sa2: 大円の開始角度[rad]
ea2: 大円の終了角度[rad]
f1: sa1側の断面の表示 0:しない 1:する 2:※ (sa1=ea1の時は無効)
f2: ea1側の断面の表示 0:しない 1:する 2:※ (sa1=ea1の時は無効)
f3: sa2側の断面の表示 0:しない 1:する (sa2=ea2の時は無効)
f4: ea2側の断面の表示 0:しない 1:する (sa2=ea2の時は無効)
f : 表裏逆フラグ 0:外側が表面 1:内側が表面
簡単例です。1/2や1/4は使うシーンもあるかもしれませんがそれ以外ではほとんど使用される事は無いかもしれません。
// トーラス作図テスト03
#VAR
sp1 = 12 ;*小円分割数
sp2 = 24 ;*大円分割数
rx1 = 20 ;*小円X軸半径
rz1 = 40 ;*小円Y軸半径
sa1 = 0 ;*小円開始角度[°]
ea1 = 90 ;*小円終了角度[°]
rx2 =100 ;*大円X軸半径
ry2 =150 ;*大円Y軸半径
sa2 = 30 ;*大円開始角度[°]
ea2 =300 ;*大円終了角度[°]
n
a1
a2
a3
a4
#DRAW
PEN 92
CAL a1 = sa1/180*PI
CAL a2 = ea1/180*PI
CAL a3 = sa2/180*PI
CAL a4 = ea2/180*PI
TORUS2 n,sp1,sp2, rx1,rz1,0,a1,a2, rx2,ry2,0,a3,a4, 1,1,1,1,0
実行します。
| このブログのURL
|この記事のURL