建築でコンピュータ、する?
2024年10月 8日(火) 15:45 JST
第2回の講習では図形をパラメトリックに作成することを主題とし、「傾く足を持つテーブル」「ジグザグベンチ」のモデリングを行いました。 「パラメトリックに作成」というのは、作る際の部材長や角度を変数として置くことです。これにより後々編集しやすくなります。
leg_r = 0.016 !! 足の半径 leg_h=0.600 !!足の高さ top_plate_r=0.300 !!天板の半径 top_plate_t=0.01 !!天板の厚さ leg_position_r= top_plate_r*0.75 !!足配置の半径
今回新しく使用したコマンドはCORNとPRISMです。CORNは円錐台を、PRISMは多角柱を生成するコマンドです。どちらもローカル原点のXY平面からZ軸方向に生成されるため、前回覚えたADDとROTで座標変換を行っていく必要があります。
更に今回は「関数」についても扱いました。今回は傾きを求める上で必要な「COS」や「SIN」、「ATN」などの関数を用いました(スクリプト12行目など)。また、21行目などのDELコマンドですが、ローカル座標の移動・傾きを初期位置(グローバル座標)に戻しています。これにより次のCONE(脚)を置く位置が求めやすなっています。
!!!傾く足を持つテーブル !!!部材の寸法設定 leg_r = 0.016 !! 足の半径 leg_h=0.600 !!足の高さ top_plate_r=0.300 !!天板の半径 top_plate_t=0.01 !!天板の厚さ leg_position_r= top_plate_r*0.75 !!足配置の半径 !!!足の位置決め leg_position1_x= leg_position_r*COS( 0 ) leg_position2_x= leg_position_r*COS ( 120) leg_position3_x= leg_position_r*COS(240) leg_position1_y=leg_position_r*SIN(0) leg_position2_y=leg_position_r*SIN(120) leg_position3_y=leg_position_r*SIN(240) !!!足の傾き Recline=ATN((leg_position_r - leg_r)/leg_h) !!足の角度 !!脚の配置 ADD leg_position1_x,leg_position1_y,0 ROTy -Recline CONE leg_h/COS(Recline),leg_r, leg_r, 90+Recline,90+Recline DEL 2 !!ローカル座標の移動・傾きを初期位置(グローバル座標)に戻す。 !!脚の配置 ADD leg_position2_x,leg_position2_y,0 ROTz 120 ROTy -Recline CONE leg_h/COS(Recline),leg_r,leg_r,90+Recline,90+Recline DEL 3 !!脚の配置 ADD leg_position3_x,leg_position3_y,0 ROTz 240 ROTy -Recline CONE leg_h/COS(Recline),leg_r,leg_r,90+Recline,90+Recline DEL 3 !!天板の配置 ADDz leg_h CYLIND top_plate_t ,top_plate_r DEL TOP
以下、もう一つの課題の「ジグザグベンチ」です。
L=2.000 !!ベンチの長さ t=0.070 !!材料厚さ base_d=0.600 !!土台奥行 leg_h=0.500 !!脚高さ leg_angle=20.0 !!脚角度 seat_d=0.450 !!座面奥行 back_h=0.600 !!背もたれ高さ back_angle=17 !!背もたれ角度 !!PRISMに与える座標をあらかじめ決めておく x1=0 :y1=0 x2=x1+base_d :y2=y1 x3=x2+leg_h*sin(leg_angle) :y3=y2+leg_h x4=x3-seat_d :y4=y3 x5=x4-back_h*sin(back_angle) :y5=y3+back_h x6=x5-t/cos(back_angle) :y6=y5 x7=x4-t/cos(back_angle)+t*tan(back_angle) :y7=y4-t x8=x3-t*cos(leg_angle)-t*tan(leg_angle) :y8=y3-t x9=x2-t/cos(leg_angle)+t*tan(leg_angle) :y9=y2+t x10=x1 :y10=y1+t !!ベンチの生成 ROTx 90 PRISM 10 ,L,x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6,x7,y7,x8,y8,x9,y9,x10,y10
スクリプト自体は文量も少なく簡単そうに見えますが、PRISMの引数に渡す座標を求める際の計算に手間がかかります。意識していきましょう。
以下のコメントは、その投稿者が所有するものでサイト管理者はコメントに関する責任を負いません。