STUDIO TAMA

thumbnail

投稿日:2021-12-28

【Grasshopper Tutorial】 Wave Pavilion

  • #Grasshopper

  • #GH Modeling

  • #Basic

今回は上画像の様な、パビリオンを作成していきたいと思います。Sin 波を使用した簡単な例となっております。是非実装してみてください。こちらのチュートリアルは動画化しているので、動画の方がよい方は以下のリンクからどうぞ!

概要

thumbnail

上画像がプログラムの全体像となっております。

各ブロックごとに説明していこうと思います。

基準円の作成

thumbnail
  1. 基準となる円を作成します。Circle コンポーネントで半径 10m の円を作成します。
  2. Divide Curve コンポーネントで作成した円を分割します。今回は 10 分割しています。
  3. List Item コンポーネントで円の分割点の最初の点を取得します。
  4. Insert Items コンポーネントで取得した最初の点を、リストの一番最後に挿入します。

Sin 波の作成

thumbnail
  1. パビリオンを波打たせるための Sin 波を作成します。Length コンポーネントで円の長さを取得します。
  2. 先ほど使用したDivide Curve コンポーネントから取得できる、円上での位置を表す t 値のリストに、Insert Items コンポーネントでリストの最後に円の長さを挿入します。
  3. Remap Numbers コンポーネントで作成した t 値のリストを角度のリストにリマップします。Bounds コンポーネントでリストの最大値から最小値までのドメインを取得して、入力端子 S(Source)に接続します。
  4. Remap Numbers コンポーネントの入力端子 T(Target)は-360 の倍数を入力します。今回は 3 倍の -1080 を入力します。
  5. Radiuns コンポーネントでリマップされた角度のリストを弧度法に直します。
  6. Sine コンポーネントで弧度法に直したリストをもとに Sin 波を生成します。
  7. Multiplication コンポーネントで取得した Sin 波の振幅を大きくします。今回は 2500 を掛けています。
  8. Unit Z コンポーネントで Z 方向のベクトルに変換します。

分割点を Sin 波で移動

thumbnail
  1. Move コンポーネントで最初に作成した、分割点のリストを先ほど作成した Z 方向のベクトルで移動させます。
  2. Interpolate コンポーネントで移動させた点を通る曲線を作成します。入力端子 Periodic を Invert して閉じた曲線とします。
  3. Scale コンポーネントで作成した曲線を縮小して複製します。今回は 0.2 倍しています。
  4. Divide Curve コンポーネントで縮小前と後の曲線をそれぞれ分割します。今回は 100 分割しています。縮小した方の分割点のリストはGraftしておきます。

Pavilion 先端位置を決める

thumbnail
  1. 先ほどDivide Curve コンポーネントで分割して取得した、縮小前の曲線の分割点のリストをMove コンポーネントで Z 方向に移動させます。今回は 2000mm 移動させています。出力端子はGraftします。この点が Pavilion の先端になります。
  2. Merge コンポーネントで移動させた分割点のリストと、先ほど作成した曲線の縮小後の分割点のリストを結合します。

Pavilion の足元位置を決める

thumbnail
  1. Point コンポーネントで縮小後の分割点のリストを取得します。
  2. Project コンポーネントで取得した分割点のリストを投影します。今回は投影先に(0,0,-3000)を原点とした XY 平面としています。この位置が Pavilion の足元になります。

Pavilion のベースとなる曲線を作成

thumbnail
  1. Merge コンポーネントで分割点のリストと投影した分割点のリストを結合します。
  2. Nurbs Curve コンポーネントで結合したリストを使用し、各点を通る Nurbs Curve を生成します。今回は入力端子 D(Curve Degree)には 2 を入力しています。

Pavilion の外形となるサーフェイス生成

thumbnail
  1. Offset Curve コンポーネントで先ほど作成した Nurbs Curve をオフセットします。今回はオフセット距離を 300mm としています。
  2. Ruled Surface コンポーネントでオフセット前と後の Nurbs Curve の間にサーフェイスと張ります。
  3. Relative Item コンポーネントで前項で作成した Nurbs Curve のリストのパスを1つずらします。入力端子 T はSimplifyし、入力端子 O には{1}を入力します。入力端子 Wp はInvertしておきます。
  4. Ruled Surface コンポーネントで先ほどオフセットした Nurbs Curve と Relative コンポーネントでパスと 1 つずらした Nurbs Curve の間にサーフェイスを張ります。
  5. Merge コンポーネントで作成したサーフェイスをまとめます。これで完成です。

完成

thumbnail
thumbnail
thumbnail

以上になります!Sin 波を使用した簡単な例となってます。是非挑戦してみてください!

【参考文献】

  • Grasshopper Docs : http://grasshopperdocs.com/
目 次