Architecture GH Basics GH Tutorial Grasshopper

【Grasshopper Tutorial】 Wave Pavilion

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

概要

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

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

基準円の作成

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

Sin波の作成

  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波で移動

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

Pavilion先端位置を決める

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

Pavilionの足元位置を決める

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

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

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

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

  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コンポーネントで作成したサーフェイスをまとめます。これで完成です。

完成

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

【参考文献】

-Architecture, GH Basics, GH Tutorial, Grasshopper
-, ,