建築でコンピュータ、する?
2025年4月27日(日) 08:31 JST
本年度のGDL講習会は、GDLのコマンドについて説明し、例題・課題に取り組むかたちで行っていきます。 各回ごとに講習会で出題した課題とその解答を載せるページを作成していくことにします。 進度・内容は昨年度までの講習会と大体同じなので、GDLに興味のある方はぜひ過去のページを参考にしてください。
第1回目の講習では、基本的な図形の作成方法と、座標変換についてのコマンドを扱いました。 講習内では例題として「Platform Bench」のモデリングを行いました。この例題のポイントは、座標変換 (座面の形成、柱脚部の回転)のやり方です。
直方体を生成するコマンド、「BRICK」を用いてモデリングを行っていきます。BRICKは原点を始点として直方体を生成するので、複数の部材を生成するには、ADDやROTを用いて座標変換を行っていく必要があります。
座標変換を行う際には、ローカル原点の位置を正しく把握することが大切です。上図のように、柱脚下部材の角を原点として柱脚を回転させると右側の接合部でズレが生じてしまいます。そのため、部材の縦幅の分だけADDでローカル原点を移動させ、二つの部材の辺がぴったり重なるように調節します。この際、ADDとROTとBRICKの順番を意識することも大切です。
a = 1524 b = 470 c = 25 !座面部材の縦幅 d = 20 !座面部材の横幅 e = 280 !柱脚材下部の長さ f = b - 2 * d !柱脚材上部の長さ g = ( f - e ) / 2 h = 356 k = (b - 12 * d) / 11 + d m = 50 !柱脚材の横幅 n = 20 !柱脚材の縦幅 l = (a - 1020 - m) / 2 o = SQR( ( 356 - c - n ) ^2 + ( g ) ^2 ) p = 1020 !柱脚材下部長さ s = ATN (g/(356-c-n)) t = -1*s !柱脚部下部の描写 ADDX l ADDY (b - e) / 2 BRICK m, e, n !左 ADDX p BRICK m, e, n !右 DEL TOP !!奥の柱脚部 ADDX l ADDY e +(b - e) / 2 ROTX t ADDY -1 * n !ずれを修正 BRICK m, n, o !左 ADDX p BRICK m ,n ,o !右 DEL TOP !!柱脚部上部 ADDX l ADDY e +(b - e) / 2 ROTX t ADDZ o ROTX s ROTX 90 BRICK m, n, f !左 ADDX p BRICK m, n, f !右 DEL TOP !!手前の柱脚部 ADDX l ADDY (b - e) / 2 ROTX s BRICK m, n, o !左 ADDX p BRICK m, n, o !右 DEL TOP !!座面の描写 !X軸方向 ADDZ h - c ADDZ -c BRICK a, d, 2*c ADDZ c ADDY k BRICK a, d, c ADDY k BRICK a, d, c ADDY k BRICK a, d, c ADDY k BRICK a, d, c ADDY k BRICK a, d, c ADDY k BRICK a, d, c ADDY k BRICK a, d, c ADDY k BRICK a, d, c ADDY k BRICK a, d, c ADDY k BRICK a, d, c ADDY k ADDZ -c BRICK a, d, 2*c DEL TOP !!Y軸方向 ADDZ h - 2*c BRICK d, b, 2*c ADDX a - d BRICK d, b, 2*c ADDX (-1) * ( a - d ) ADDX (a / 2) - d BRICK d, b, 2*c ADDX d BRICK d, b, 2*c DEL TOP
以下、課題で出した「時計」のモデリングの一例です。図では、CYLINDを用いて文字盤や中心の軸部を作り、SPHEREで1時~12時の位置を示す球を作り、BRICKで短針、長針、秒針を作っています。 時間h、分m、秒sを変数にとり、その数値の分だけ針部材をROTで回転させて時間を示すように作っています。針に着色しているのは、「DEFINE MATERIAL」と「SET MATERIAL」を用いたマテリアル設定です。これについても次回の講習会で取り扱いますので、お楽しみに。
針を設置する中心部分のディテールはこのようになっています。針の回転の中心が時計の中心軸に刺さっている納まりになるように意識しています。
!時間の入力 h = 10 m = 8 s = 40 a = 7 !短針長さ b = 10 !長針長さ c = 11 !秒針長さ ! x方向厚み。針の横幅 xa = 1 xb = 0.5 xc = 0.1 z = 0.5 !!マテリアルの定義(第二回講習会で扱う) DEFINE MATERIAL "red" 2, 1, 0, 0 DEFINE MATERIAL "green" 2, 0, 1, 0 DEFINE MATERIAL "blue" 2, 0, 0, 1 DEFINE MATERIAL "blue2" 2, 0.6, 0.6, 0.8 DEFINE MATERIAL "black" 2, 0, 0, 0 !円盤部分、軸部分 SET MATERIAL "blue2" CYLIND z, c+2 ADDZ z CYLIND z,1 ADDZ z CYLIND 4*z , 0.2 DEL TOP !円盤意匠部 SET MATERIAL "black" ADDY c SPHERE 1 DEL TOP ROTZ (-360/12) * 1 ADDY c SPHERE 1 DEL TOP ROTZ (-360/12) * 2 ADDY c SPHERE 1 DEL TOP ROTZ (-360/12) * 3 ADDY c SPHERE 1 DEL TOP ROTZ (-360/12) * 4 ADDY c SPHERE 1 DEL TOP ROTZ (-360/12) * 5 ADDY c SPHERE 1 DEL TOP ROTZ (-360/12) * 6 ADDY c SPHERE 1 DEL TOP ROTZ (-360/12) * 7 ADDY c SPHERE 1 DEL TOP ROTZ (-360/12) * 8 ADDY c SPHERE 1 DEL TOP ROTZ (-360/12) * 9 ADDY c SPHERE 1 DEL TOP ROTZ (-360/12) * 10 ADDY c SPHERE 1 DEL TOP ROTZ (-360/12) * 11 ADDY c SPHERE 1 DEL TOP ROTZ (-360/12) * 12 !秒針 SET MATERIAL "green" ADDZ 4*z ROTZ (-360/60) * s !回転の中心を原点に持っていく ADDX xc*(-1/2) ADDY xc*(-1/2) - 1 BRICK xc, c+1, z DEL TOP !長針 SET MATERIAL "blue" ADDZ 3*z ROTZ (-360/60) * m !回転の中心を原点に持っていく ADDX xb*(-1/2) ADDY xb*(-1/2) BRICK xb, b, z DEL TOP !短針 SET MATERIAL "red" ADDZ 2*z ROTZ (-360/12) * h !時間による回転 ROTZ (-30/60) * m !分による回転 !回転の中心を原点に持っていく ADDX xa*(-1/2) ADDY xa*(-1/2) BRICK xa, a, z DEL TOP
GDLに慣れてきたら、凝ったデザインの時計が作れそうですね。