2024年12月 3日(火) 06:01 JST

GDLプログラミングマニュアル 誤記対応ページ

 
2018/06/16 更新

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がフリーズする可能性があるのでご注意ください。

注)購入時期によって上の修正は適用済になっています。

最終更新日:: 2018年6月16日(土) 15:33 JST|表示回数: 3,787 印刷用ページ


SNS

Twitter 平沢研究室アカウント YouTube 平沢研究室アカウント

アクセスカウンタ

9,261,301