2024年10月 8日(火) 15:45 JST

2013年度第2回GDL講習会

  • 2013年4月30日(火) 17:26 JST
  • 投稿者:
    ゲストユーザ

第2回「傾く足を持つテーブル」「ジグザグベンチ」

第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の引数に渡す座標を求める際の計算に手間がかかります。意識していきましょう。

以下のコメントは、その投稿者が所有するものでサイト管理者はコメントに関する責任を負いません。