建築資料館の掲示板での「急須」の件
前回の自己発言
somemさんのブログ内でのお話
を考えてみて、ちょっくら、当方の「Script!3D」を使って、楕円を描いて、それをつなげて面にして立体化するようなものを作ってみました。
単に実行しただけであれば単なる円柱です。

楕円中間半径と楕円終了半径を指定します。
変化が直線的ですが・・・

最終中心を指定します。

傾きも変更できるようにしてますので、ねじれをつけることも出来ます。
スケッチアップに送ります。

ソフトニングします。

みたいな。
前回の自己発言
somemさんのブログ内でのお話
を考えてみて、ちょっくら、当方の「Script!3D」を使って、楕円を描いて、それをつなげて面にして立体化するようなものを作ってみました。
// 楕円を描かせてつなげて立体化
//
#VAR
col = 1 ;*線色
ex1 = 100 ;*楕円開始X半径
ey1 = 100 ;*楕円開始Y半径
ex2 = 100 ;*楕円中間X半径
ey2 = 100 ;*楕円中間Y半径
ex3 = 100 ;*楕円終了X半径
ey3 = 100 ;*楕円終了Y半径
ex = 0 ;*最終中心X
ey = 0 ;*最終中心Y
ez = 200 ;*最終高さ
ka1 = 0 ;*開始傾き角度[°]
ka2 = 0 ;*終了傾き角度[°]
es = 32 ;*楕円分割数
sp = 10 ;*分割数
i
n
x
y
z
rx
ry
kan1
kan2
ka
j
at1
at2
at3
p1x
p1y
p1z
p2x
p2y
p2z
p3x
p3y
p3z
p4x
p4y
p4z
#DRAW
// --- 楕円を描く ---
CAL i = 0
CAL x = 0
CAL y = 0
CAL z = 0
CAL rx = ex1
CAL ry = ey1
CAL kan1 = ka1/180*PI
CAL kan2 = ka2/180*PI
CAL ka = kan1
PEN col
#WHILE (i <= sp)
ELLI3D n,es,x,y,z,rx,ry,ka
CAL i = i + 1
CAL x = i*i*ex / sp/sp
CAL y = i*i*ey / sp/sp
CAL z = z + ez/sp
#IF (i <= (sp/2))
CAL rx = rx + (ex2-ex1)/(sp/2)
CAL ry = ry + (ey2-ey1)/(sp/2)
#ELSE
CAL rx = rx + (ex3-ex2)/(sp/2)
CAL ry = ry + (ey3-ey2)/(sp/2)
#END
CAL ka = ka + (kan2-kan1)/sp
#END
// --- 楕円同士を接続 ---
CAL i = 1
CAL j = i
GETFIGD j,at1,at2,at3,p1x,p1y,p1z, p2x,p2y,p2z, p3x,p3y,p3z, p4x,p4y,p4z
RLSEL1 n,-1,-1,0, p1x,p1y,p1z,0.001,1,1,999,999
#WHILE (i <= sp)
RENCLR
RENSET
CAL j = j + es
GETFIGD j,at1,at2,at3,p1x,p1y,p1z, p2x,p2y,p2z, p3x,p3y,p3z, p4x,p4y,p4z
RLSEL1 n,-1,-1,0, p1x,p1y,p1z,0.001,1,1,999,999
R_RULED 0,-1,-1,0
CAL i = i + 1
#END
// --- 線を消す ---
ALLSEL n,1,1,999,999
S_DELE
単に実行しただけであれば単なる円柱です。

楕円中間半径と楕円終了半径を指定します。
変化が直線的ですが・・・

最終中心を指定します。

傾きも変更できるようにしてますので、ねじれをつけることも出来ます。
スケッチアップに送ります。

ソフトニングします。

みたいな。