STUDIO TAMA


thumbnail

投稿日:2021-11-20

【Grasshopper Tutorial】 Mesh Dome

  • #Grasshopper

  • #Basic

  • #GH Modeling

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

概要

thumbnail

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

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

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

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

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

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

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

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

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

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

エッジをパイプ化

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

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

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

thumbnail

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

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

色付け

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

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

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

【参考文献】

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