今回は、上画像の様なオブジェクトを生成していきたいと思います。難易度はさほど難しくないです。プラグインLunchBoxを使用しております。インストールはこちらから。また、TriRemeshコンポーネントを使用しておりますが、こちらはRhino7からの機能になりますのでご注意ください。
動画の方がよい方は以下のリンクからどうぞ!
目次
概要

上画像がプログラムの全体像です。各ブロックごとに説明していきます。
Circle Packing

- Sphereコンポーネントで半径100の球体を作成します。
- TriRemeshコンポーネントを使用し、球体のサーフェイスを三角形メッシュに構成されたメッシュを生成します。
- kangaroo2のTangentCirclesコンポーネントでCirclePackingを生成する曲線を取得します。
voronoiを使用したパターン 1/2

- BoundingBoxコンポーネントで球体を囲うBoxを生成し、ScaleコンポーネントでBoxを1.1倍します。
- Populate 3DでBox内にランダムに点を400点生成します。
- Voronoi3DコンポーネントでBoxをVoronoi分割します。
- Brep|Brepコンポーネントで元の球体とVroronoiとの交線を取得します。
voronoiを使用したパターン 2/2

- Clean TreeコンポーネントでList内の空のブランチを削除します。
- Discontinuityコンポーネントで取得した交線の頂点を取得します。
- PolyLineコンポーネントで取得した頂点をポリラインでつなぎ、閉じたポリラインを生成します。
- Filletコンポーネントで閉じたポリラインの頂点をフィレットします。
LunchBoxを使ったパターン①

- LunchBoxのQuad Panelsコンポーネントを使い、球体を四角形で分割します。
- Filletコンポーネントで角にFilletをかけます。
LunchBoxを使ったパターン②

- LunchBoxのTriangular Panels Aコンポーネントで球体を三角形で分割します。
- 空のブランチが生成されてしまうので、CleanTreeコンポーネントで不要なブランチを削除します。
- Filletコンポーネントで角にFilletを掛けます。
Stream Filterでオブジェクトを切替

- Stream FilterコンポーネントをValueListコンポーネントで生成した4種類のオブジェクトを切替できるようにします。
各曲線を内側にオフセット

- それぞれの曲線を内側にオフセットします。BoundingBoxコンポーネントをPer Objectにして、曲線を囲うBoxを生成し、VolumeコンポーネントでBoxの中心を取得することで、曲線の中心付近を取得しまます。各曲線が平面になってないパターンがありAreaコンポーネントが使えないパターンがあるのでこのような方法をとってます。
- Scaleコンポーネントで取得した中心付近の点を中心にして、各曲線を0.7倍して縮小します。
- EntwineコンポーネントでScale前と後の曲線を各ブランチに格納し、FlipMatrixコンポーネントで縮小前と後の曲線をペアでブランチに格納します。
曲線間にサーフェイスを生成

- Scaleコンポーネントで曲線をすべて縮小し、曲線の集合体の内部に同様の曲線の集合体を生成します。
- ListItemコンポーネントで縮小前と後それぞれ、内側と外側の曲線を取得します。
- Ruled Surfaceコンポ―ネントで各曲線間にサーフェイス張りMergeコンポーネントでまとめて完成です。
- StreamFilterコンポーネントに接続したValueListコンポーネントを変えて、別パターンでもうまくいってればOkです。
完成


