GH Basics GH Tutorial Grasshopper

【Grasshopper Tutorial】 Mesh Dome

今回は、Grasshopperを使って上画像のようなMesh Domeを作成していきたいと思います。非常にシンプルなプログラムとなっているので、初級者向けとなっております。是非チャレンジしてみてください。

概要

上画像がコードの全体像になります。大まかな流れは以下の様になります。

  1. 三角形でメッシュ化された球体を半分に切断してドームを作成
  2. 三角形メッシュのエッジを取得
  3. 三角形メッシュの中に納まる小さな三角形を作成
  4. エッジをパイプ化
  5. ランダムなカラーリストを作成
  6. 色付け

三角形でメッシュ化された球体を切断してドームを作成

  1. 「Mesh Sphereコンポーネント」を使用してMesh化された球体を作成します。入力端子Rに球体の半径を、入力端子U・Vにメッシュの密度を入力します。今回は原点(0,0,0)を中心とした半径10mの球体を25×25個のメッシュで作成してます。
  2. 「Mesh Sphereコンポーネント」で作成したメッシュは四角形のメッシュなので、「Trianglateコンポーネント」を使用して、それらを三角形に分割していきます。
  3. 「Mesh Split Planeコンポーネント」を使用して、球体を切断します。入力端子Mに「Trianglateコンポーネント」の出力端子Mを、入力端子Pには「XY Planeコンポーネント」を接続し、XY平面で球体を半分に切断します。
  4. 「Mesh Split Planeコンポーネント」の出力端子Aには切断した球体の上半分、出力端子Bには下半分が取得できました。今回は上半分のみを使用するので、出力端子Aを「Meshコンポーネント」に接続します。

三角形にメッシュ化された球の半分が取得できました。

三角形メッシュのエッジを取得

  1. 「Face Boundariesコンポーネント」を使用して、三角形メッシュのエッジをポリラインとして取得します。
  2. 「Boundary Surfacesコンポーネント」を使用して、三角形のポリライン内にサーフェイスを張っていきます
  3. 「Deconstruct Brepコンポーネント」を使用して、作成した三角形のサーフェイスを「Face/Edge/point」に分割していきます。出力端子Eから、三角形メッシュのを構成する3つの直線が取得できました。

三角形メッシュの中に納まる小さな三角形を作成

  1. 「Deconstruct Brepコンポーネント」で取得した三角形メッシュを構成するラインの中点を取得し、それらをつなぐことで小さな三角形を作成します。「Curve Middleコンポーネント」を「Deconstruct Brepコンポーネント」の出力端子Eに接続します。不要な階層を含んでいるので、出力端子Mの上で右クリックを押しsimplifyしておきます。
  2. 取得した中点を「Polylineコンポーネント」を使用してポリライン化していきます。入力端子C (closed)上で右クリックを押し、InvertしTrueを入力することで、ポリラインが閉じで三角形になります。
  3. 「Boundary Surfacesコンポーネント」三角形にサーフェイスを張ります

「Boundary Surfacesコンポーネント」 以外をPreviewOffにして上画像のようになっていればOKです。

エッジをパイプ化

  1. 「Pipeコンポーネント」を使用して、三角形のエッジをパイプ化します。「Pipeコンポーネント」を2つ用意し、1つには「Deconstruct Brepコンポーネント」の出力端子Eを、もう1つには「Polylineコンポーネント」の出力端子を(小さな三角形のエッジ)接続します。
  2. 「Pipeコンポーネント」の入力端子Rにはパイプの半径を入力します。今回は適当に10mmを入力してます。

画像では分かりづらいですが、エッジがパイプ化されております。

ランダムなカラーリストを作成

小さな三角形に指定した色をランダムに割り当てていきます。

  1. 「Colour Swatchコンポーネント」を使用して、好きな色を複数用意します。今回は4色用意しました。
  2. 「Mergeコンポーネント」を使用して、用意した色をリスト化します。
  3. 「Randomコンポーネント」を使用して用意した4色の色を、小さな三角形の数分だけランダムにリスト化していきます。入力端子Rには「Mergeコンポーネント」を「List Lengthコンポーネント」で取得したListの長さ(上画像では4が取得できます)を接続します。こうすることで「0~ListLengthで取得した値」のRangeが入力されます。(上画像では「0 To 4」が入力されました。)
  4. 「Randomコンポーネント」入力端子Nに色付けする小さな三角形の個数を入力します。「Boundary Surfacesコンポーネント」を「List Lengthコンポーネント」に接続し、個数を取得し「Randomコンポーネント」の入力端子Nに接続します。「Randomコンポーネント」の出力端子から、「0~4の範囲で、三角形の個数分」の数字が取得できました。
  5. 「Roundコンポーネント」を使用して、取得した値の小数点を切り捨てます。出力端子F(Floor)から「0~3」までの数字が三角形の個数分取得できました。
  6. 「List Itemコンポーネント」を使用し用意した4色をからランダムに三角形の個数分リスト化します。入力端子Lに「Mergeコンポーネント」の出力端子Rを接続します。
  7. 「List Itemコンポーネント」の入力端子i (index)に「Roundコンポーネント」を取得した「0~3までの三角形の個数分のリスト」を接続します。「List Itemコンポーネント」の出力端子から、三角形の個数分ランダムに4色の色コードが並べられたリストが取得できました。※わかりにくい箇所あるかと思いますので、「Panelコンポーネント」でリストの中身を確認しながら実装してみてください
  8. 「Graft Treeコンポーネント」でGraftしておきます。

色付け

  1. 「Custom Previewコンポーネント」「Colour Swatchコンポーネント」を使用して色付けします。パイプ部分は今回はホワイトにしてます
  2. 小さな三角形部分を色付けしていきます。「Custom Previewコンポーネント」の入力端子Gに「Boundary Surfacesコンポーネント」の出力端子を接続します。入力端子Mには「Graft Treeコンポーネント」の出力端子を接続し、ランダムな色リストを渡してあげます。

「Custom Previewコンポーネント」以外をPreviewOffにして上画像のようになっていればOKです。

以上で完成となります。コード量も少なく比較的簡単なチュートリアルとなっております。ただ「Randomコンポーネント」でランダムな色リストを作成する箇所は、やや理解しづらいとこもあったかと思いますので、「Panelコンポーネント」データの中身を確認しながら実装していきましょう。

【参考文献】

  • 「Parametric Design with Grasshopper 増補改訂版 建築/プロダクトのための、Grasshopperクックブック」石津優子(著),堀川淳一郎 (著)
  • AppliCraft : https://www.applicraft.com/

-GH Basics, GH Tutorial, Grasshopper
-, ,