建築でコンピュータ、する?
2024年12月 3日(火) 06:01 JST
GDLプログラミングマニュアル
著者:平沢岳人+千葉大学平沢研究室(加戸啓太、飯村健司、中林拓馬、田中智己、高林弘樹)
気をつけておりましたが訂正箇所があります。以下の正誤表をご覧ください。 ご迷惑をおかけします。
章・ページ・行 | 誤 | 正 | 補足説明 |
第2章、List2-23、4行目 | REVOLVE n, angle, 1 + 2 + 4 + 16 + 32 + 64, ! 接点数、回転角、マスク | REVOLVE n, angle, 1 + 2 + 4 + 8 + 16 + 32 + 64, ! 接点数、回転角、マスク | マスクのビット(8)が抜けていたので面が閉じていませんでした |
第3章、Fig 3-2、 Fig3-2下文中、 Fig3-3、 Fig3-19 |
top_panel_l | top_panel_w | ベンチの幅の変数名が「top_panel_l」となっていますが、正しくは「top_panel_w」です |
第3章、Fig3-21 | 1' BRICK の引数が「leg_t - masonry * 2.0」になっていますが、正しくは「leg_t - masonry_d * 2.0」です | ||
第4章、List4-4 四行目 | HOTSPOT 0, 0, 0 !! ← HOTSHOT は3D 用のホットスポットコマンド | HOTSPOT 0, 0, 0 !! ← HOTSPOT は3D 用のホットスポットコマンド | プログラムの動作に影響ありませんが、コメント内のコマンド名称を間違えていました |
*第5章、Fig5-27下文章 | 形状を確認できるようにFig5-21では~ | 形状を確認できるようにList5-21では~ | |
第5章、P58、Fig5-29 | こちらも rの値がスクリプトと異なっていました。fx, fy, fzも、スクリプトと異なっていますが、これらの値は以降のスクリプトでCALLされる際に常に値が代入されます。ここで設定する初期値は用いられませんので特に値を設定する必要はありません。 | ||
第5章、Fig5-28(もしくはFig5-29)下文章 | trussrodをCALLする形に書き換えるとFig5-30になります。 | trussrodをCALLする形に書き換えると(List5-22)Fig5-30になります。 | List5-22への参照が抜けていました。 |
*第5章、List5-23 7行目 |
IF vx = 0 AND vy = 0 THEN |
IF ABS(vx) < 0.001 AND ABS(vy) < 0.001 THEN |
スクリプトをチェックすると、実数同士の一致判定(=)は精度上の問題がある旨の注意がでます。絶対値が閾値(左の例では0.001m)以下であるか否かの判定とすべきでした。 |
*第5章、List5-23 の中程 |
!!X,Y 座標が異なるとき外積で回転 ELSE gx = 0*vz - 1*vy !!Z 軸とベクトルv の外積g gy = 1*vx - 0*vz gz = 0*vy - 0*vx theta = ACS( vz / len ) ROT gx, gy, gz, theta ENDIF ENDIF |
!!X,Y 座標が異なるとき外積で回転 ELSE gx = 0*vz - 1*vy !!Z 軸とベクトルv の外積g gy = 1*vx - 0*vz gz = 0*vy - 0*vx theta = ACS( vz / len ) ROT gx, gy, gz, theta ENDIF |
不要なENDIFがありました |
第8章、List8-3 51行目 | 51行目:double_rand( -x_module * 0.3, x_module * 0.3 ); | 51行目double_rand( -x_module * 0.3, x_module * 0.3 );} | 51行目の行末に、45行目の「if」を閉じる「}」を追加ください。 |
第8章、P164、List8-4 | ソースコード全体 | 新しいソースコードはこちら | 主な変更点は下記です。変更が多岐にわたるのでコードを入れ替えました。 1)43行目 if文から始まる再帰の終了処理の中でGDLスクリプトの出力を行っています。計算過程で用いていた配列panelsの操作が煩雑なため、これを用いないコードにしました。 2)70行目 次の世代を生成する際に、Panel型の変数(new_panel)を用いています。 3)82行目 変数timesで明示的に再帰数を扱うことにしました。こちらの値を変更すると再帰数が変化します。あまり大きな値(8以上)にするとArchiCADがフリーズする可能性があるのでご注意ください。 |
注)購入時期によって上の修正は適用済になっています。