建築でコンピュータ、する?
2025年1月20日(月) 04:19 JST
第2回の講習では昨年と同様に図形をパラメトリックに作成することを主題にしました。講習で取り扱った題材は昨年と同様ですので、こちらのページをご覧ください。課題では講習で使った円錐台を生成するコマンドであるCONEコマンドを用いて「Round chair」を作成しました。
今回の講習では、CONE、PRISMコマンドを扱いました。また講習では取り扱いませんでしたが、RULEDコマンドも便利なので使ってみましょう。
CONE h, r1, r2, alpha, alpha2
CONEコマンドは高さ、上下の円の半径、Z軸に関する傾きを引数にすることができます。Y軸に関して回転させることで今回の講習で取り扱ったような、傾いた円柱を作ることができます。PRISM div, h, x1, y1, x2, y2,...
PRISMコマンドは、XY平面上に作成した図形を、Z軸方向に押し出して形状を生成します。引数には、平面での頂点数、押し出す高さ、平面図形のXY座標を渡します。RULED div, 1+2+4+16+32, x1, y1, z1, x2, y2, z2,...
RULEDコマンドは、上面と下面の図形を序数の対応ごとに結んで立体を生成します。divは面の頂点数、その次の数はマスクの設定を意味しますが、詳しくはいずれ解説します。 そのあとに下面の図形の座標、上面の図形の座標を渡します。
CONEコマンドで生成された上面と下面はZ軸に関して傾くので、ROTYするとうまくいきます。 椅子の材質は先週の講習で取り扱ったMATERIALコマンドを用いてみましょう。!!丸椅子の部材寸法 !!座面 zamen_r = 0.19 !!座面の半径 zamen_h = 0.05 !!座面の厚さ !!ジョイント部 joint_r = 0.02 !!半径 joint_h = 0.03 !!高さ !!軸 jiku_w = 0.08 !軸部の幅 jiku_d = 0.08 !軸部の長さ jiku_h = 0.16 !軸部の高さ jiku_z = 0.14 !軸部の位置の高さ !!脚 leg_u_r = 0.025 !!軸部接地部の半径 leg_d_r = 0.01 !!地面接地部の半径 leg_h = 0.18 !!地面から軸部接地部までの高さ leg_position_r = zamen_r * 1.25 !!軸の中心から脚の中心までの距離 leg_angle = ATN((leg_position_r - jiku_w / 2) / leg_h) !!足の傾き
MATERIAL 59 !!脚の配置 FOR i = 1 to 4 DEL TOP ADD leg_position_r * cos(90 * i), leg_position_r * sin(90 * i), 0 ROTZ 90 * i ROTY - leg_angle CONE leg_h / cos(leg_angle), leg_d_r, leg_u_r, 90 + leg_angle, leg_angle NEXT i !!軸 DEL TOP ADDZ jiku_z ADD - jiku_w / 2, -jiku_l / 2, 0 BRICK jiku_w, jiku_d, jiku_h !!ジョイント DEL 1 ADDZ jiku_h CYLIND joint_h, joint_r !!座面 MATERIAL 156 CYLIND zamen_h, zamen_r DEL TOP
!!蟻継の寸法 atama_w = 0.045 !!頭の幅 atama_d = 0.030 !!頭の長さ kubi_w = 0.030 !!首の広さ width = 0.105 !!角材の太さ length = 0.400 !!角材の長さ div = 8 !!頂点数 h = width/2 !!高さの半分 koshi = 0.015 !!腰 !!男木 x1 = width/2 : y1 = 0 x2 = x1 : y2 = length x3 = kubi_w/2 : y3 = y2 x4 = atama_w/2 : y4 = y2 + atama_d x5= - x4 : y5 = y4 x6 = - x3 : y6 = y3 x7 = - x2 : y7 = y2 x8 = - x1 : y8 = y1 ADDZ h PRISM div , h ,x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6, x7, y7, x8, y8 DEL 1 ADDX -h BLOCK width, length - koshi , h !!女木 x11 = width/2 : y11 = 0 x12 = x2 : y12 = length + atama_d x13 = kubi_w/2 : y13 = y12 x14 = atama_w/2 : y14 = y12 - atama_d x15= - x14 : y15 = y14 x16 = - x13 : y16 = y13 x17 = - x12 : y17 = y12 x18 = - x11 : y18 = y11 DEL TOP ADDX 3*width ADDZ h PRISM div , h ,x11, y11, x12, y12, x13, y13, x14, y14, x15, y15, x16, y16, x17, y17, x18, y18 DEL 1 ADDX -h BLOCK width, length + koshi + atama_d, h DEL TOP
頂点数が多いため、スクリプトが煩雑に見えますが、対称性を使っているのでとても分かりやすいと思います。 PRISMにはさまざまな類型コマンドもあるので使ってみてください。width = 0.105 length = 0.400 kubi_w = 0.030 kubi_d = 0.060 atama_w = 0.300 atama_d = 0.060 atama_angle = ATN(kubi_w/(2*(atama_d + kubi_d))) kama_set_back = 0.007 kama = atama_d*TAN(atama_angle) kama_lower = (atama_d - kama_set_back)*TAN(atama_angle) kama_set_back = 0.007 koshi = 0.015 !!男木 ADDX - width/2 BLOCK width, length - koshi, width/2 DEL 1 ADDZ width/2 x1 = width/2 : y1 = 0 x2 = x1 : y2 = length x3 = kubi_w/2 : y3 = y2 x4 = x3 : y4 = length + kubi_d x5 = x3 + kama : y5 = y4 x6 = x3 : y6 = y4 + atama_d x7 = - x6 : y7 = y6 x8 = - x5 : y8 = y5 x9 = - x4 : y9 = y4 x10 = - x3 : y10 = y3 x11 = - x2 : y11 = y2 x12 = - x1 : y12 = y1 RULED 12,1+2+4+16+32, x1, y1, 0, x2, y2, 0, x3, y3, 0, x4, y4 + kama_set_back, 0, !!鎌に斜めの傾斜を与える x5, y5 + kama_lower, 0, x6, y6, 0, x7, y7, 0, x8, y8 + kama_lower, 0, x9, y9 + kama_set_back, 0, x10, y10, 0, x11, y11, 0, x12, y12, 0, x1, y1, width/2, x2, y2, width/2, x3, y3, width/2, x4, y4, width/2, x5, y5, width/2, x6, y6, width/2, x7, y7, width/2, x8, y8, width/2, x9, y9, width/2, x10, y10, width/2, x11, y11, width/2, x12, y12, width/2 DEL TOP !!女木 ADDX 2.5*width ADDX - width/2 BLOCK width, length + atama_d + kubi_d + koshi, width/2 DEL 1 ADDZ width/2 x1 = width/2 : y1 = 0 x2 = x1 : y2 = length + kubi_d + atama_d x3 = kubi_w/2 : y3 = y2 x4 = x3 : y4 = length + atama_d x5 = x3 + kama : y5 = y4 x6 = x3 : y6 = length x7 = - x6 : y7 = y6 x8 = - x5 : y8 = y5 x9 = - x4 : y9 = y4 x10 = - x3 : y10 = y3 x11 = - x2 : y11 = y2 x12 = - x1 : y12 = y1 RULED 12,1+2+4+16+32, x1, y1, 0, x2, y2, 0, x3, y3, 0, x4, y4 - kama_set_back, 0, !!鎌に斜めの傾斜を与える x5, y5 - kama_lower, 0, x6, y6, 0, x7, y7, 0, x8, y8 - kama_lower, 0, x9, y9 - kama_set_back, 0, x10 ,y10, 0, x11 ,y11, 0, x12 ,y12, 0, x1, y1, width/2, x2, y2, width/2, x3, y3, width/2, x4, y4, width/2, x5, y5, width/2, x6, y6, width/2, x7, y7, width/2, x8, y8, width/2, x9, y9, width/2, x10, y10, width/2, x11, y11, width/2, x12, y12, width/2
以下のコメントは、その投稿者が所有するものでサイト管理者はコメントに関する責任を負いません。