当方の「script!3D」を使って立体を作ろう話その27。
今回は、面取直方体の作図命令です。
3D-CAD/CG では、直方体を作図してから面取りを掛けるって感じになると思いますが「script!3D」でそういう事は出来ませんけれども、最初から面取りを掛けている直方体を作図する、という事は出来るようにしています。面取りするのでも簡単なようで結構面倒臭いので~

この機能は上面の部分だけを面取りします。
高さを「0」にすると、高さに関して面取り部分だけを表示するようになります。

これを組み合わせて軸回転をして作図するようにすれば底面部分を面取りする直方体を作図する事が出来ます。

面取りをしたい側、したくない側、を指定できるよう、f3~f6の引数で指定できるようにしています。
次に第2パターンの面取直方体です。

という具合に側面にも面取りを施すパターンです。
今回は、面取直方体の作図命令です。
3D-CAD/CG では、直方体を作図してから面取りを掛けるって感じになると思いますが「script!3D」でそういう事は出来ませんけれども、最初から面取りを掛けている直方体を作図する、という事は出来るようにしています。面取りするのでも簡単なようで結構面倒臭いので~
面取直方体1簡単例です。
CBOX1 n,sx,sy,sz,cx,cy,cz,f1,f2,f3,f4,f5,f6,f
原点・作図軸・作図基準平面は、変換マトリックスとなります。
n : (out) 登録された最終図形要素番号(1~)
sx : X軸方向長さ[mm](>0)
sy : Y軸方向長さ[mm](>0)
sz : 高さ[mm](>0)(=0の時は面取部のみ,高さは表現しない)
cx : X軸方向面取量[mm](0≦cx<sx(/2))
cy : Y軸方向面取量[mm](0≦cy<sy(/2))
cz : Z軸方向面取量[mm](0≦cz<sz)
f1 : 底面の表示 0:しない 1:する
f2 : 上面の表示 0:しない 1:する
f3 : 正面側 有効無効フラグ 0:無効/面無 1:無効/面有 2:有効
f4 : 左面側 有効無効フラグ 0:無効/面無 1:無効/面有 2:有効
f5 : 背面側 有効無効フラグ 0:無効/面無 1:無効/面有 2:有効
f6 : 右面側 有効無効フラグ 0:無効/面無 1:無効/面有 2:有効
f : 表裏逆フラグ 0:外側が表面 1:内側が表面
// 面取直方体作図テスト01実行します。
#VAR
sx = 100 ;*X軸方向長さ[mm]
sy = 120 ;*Y軸方向長さ[mm]
sz = 150 ;*高さ[mm]
cx = 10 ;*X軸方向面取量[mm]
cy = 10 ;*Y軸方向面取量[mm]
cz = 10 ;*Z軸方向面取量[mm]
n
#DRAW
PEN 120
CBOX1 n,sx,sy,sz, cx,cy,cz, 2,2,2,2,2,2, 0

この機能は上面の部分だけを面取りします。
高さを「0」にすると、高さに関して面取り部分だけを表示するようになります。

これを組み合わせて軸回転をして作図するようにすれば底面部分を面取りする直方体を作図する事が出来ます。
// 面取直方体作図テスト02実行します。
#VAR
sx = 100 ;*X軸方向長さ[mm]
sy = 120 ;*Y軸方向長さ[mm]
sz = 150 ;*高さ[mm]
cx = 10 ;*X軸方向面取量[mm]
cy = 10 ;*Y軸方向面取量[mm]
cz = 10 ;*Z軸方向面取量[mm]
n
w1
#DRAW
PEN 121
MATRIXO 0,0,cz
CAL w1 = sz - cz // 面取り分、引く
CBOX1 n,sx,sy,w1, cx,cy,cz, 1,1,2,2,2,2, 0
CAL w1 = PI
RLXMATR w1
CBOX1 n,sx,sy,0, cx,cy,cz, 2,2,2,2,2,2, 0

面取りをしたい側、したくない側、を指定できるよう、f3~f6の引数で指定できるようにしています。
次に第2パターンの面取直方体です。
面取直方体2簡単例です。
CBOX2 n,sx,sy,sz,cx,cy,cz,f1,f2,f3,f4,f5,f6,f
原点・作図軸・作図基準平面は、変換マトリックスとなります。
n : (out) 登録された最終図形要素番号(1~)
sx : X軸方向長さ[mm](>0)
sy : Y軸方向長さ[mm](>0)
sz : 高さ[mm](>0)(=0の時は面取部のみ,高さは表現しない)
cx : X軸方向面取量[mm](0≦cx<sx(/2))
cy : Y軸方向面取量[mm](0≦cy<sy(/2))
cz : Z軸方向面取量[mm](0≦cz<sz)
f1 : 底面の表示 0:しない 1:する
f2 : 上面の表示 0:しない 1:する
f3 : 正面側 有効無効フラグ 0:無効/面無 1:無効/面有 2:有効
f4 : 左面側 有効無効フラグ 0:無効/面無 1:無効/面有 2:有効
f5 : 背面側 有効無効フラグ 0:無効/面無 1:無効/面有 2:有効
f6 : 右面側 有効無効フラグ 0:無効/面無 1:無効/面有 2:有効
f : 表裏逆フラグ 0:外側が表面 1:内側が表面
// 面取直方体作図テスト03実行します。
#VAR
sx = 100 ;*X軸方向長さ[mm]
sy = 120 ;*Y軸方向長さ[mm]
sz = 150 ;*高さ[mm]
cx = 10 ;*X軸方向面取量[mm]
cy = 10 ;*Y軸方向面取量[mm]
cz = 10 ;*Z軸方向面取量[mm]
n
#DRAW
PEN 122
CBOX2 n,sx,sy,sz, cx,cy,cz, 1,1,2,2,2,2, 0

という具合に側面にも面取りを施すパターンです。


