今回は、前回のつづきから最終的に3Dデータとしてプリント出来る状態まで書いていこうと思います!
あと、最後の方にここで作ったGrasshopperファイルとデータをアップロードしておきます。よかったら使ってください。
STEP.03【ボロノイ分割で出来たエッジを取得する】
Intersect→Shape→Solid Intersectionコンポーネントを選択します。
Solid Intersectionコンポーネントは2つのBrepの積のブール演算をします。
積のブール演算とは、AのオブジェクトとBのオブジェクトの重なった部分、
つまり共通部分を抽出します。
IntersectionコンポーネントのAにVoronoi 3DコンポーネントのCを接続し、
IntersectionコンポーネントのBにBrepコンポーネントを接続します。
これで、Aに指定したオブジェクトとBに指定したオブジェクトの共通部分が出来ました。
前回の記事でポイントとして書きましたが、お皿の大きさよりも大きい立方体をつくるのは、積のブール演算をするためです。
(見づらいので、Intersectionコンポーネント以外は非表示にします)
これで、お皿型のボロノイ分割が出来ました。
次に、Surface→Analytics→Brep Edgesコンポーネントを選択します。
Brep Edgesコンポーネントは、Brepのエッジを抽出します。
これで、境界線が抽出されました。
Brep Edgesコンポーネント以外を非表示にするとこんな感じに。
STEP.04【エッジの線データをもとにモデリングする】
今回は、モデリングするにあたってプラグインの「Topologizer」と「Exoskeleton」、「Weaverbird 」を使用します。
フリーのプラグインなので入れておくと便利です。
まず、Topologizerコンポーネントを選択します。
Topologizerコンポーネントは、トポロジーを整理して、抽出するコンポーネントです。
離れた点や重なった点(この場合は、エッジの先端の点)を結合して、クリーンなトポロジーを作成します。
Tの部分に数値を入力してください。とエラーウィンドウが出てきました。
とりあえずほっときます。
次に、Exoskeletonコンポーネントを選択します。
Exoskeletonコンポーネントは、ワイヤーフレームに厚みをつけるコンポーネントです。
Topologizerコンポーネントで整理した線に、このコンポーネントで肉付けをします。
ExoskeletonコンポーネントとTopologizerコンポーネントのLの部分を接続します。
Params→Input→Number Sliderコンポーネントと、Params→Input→Boolean Toggleコンポーネントを作成します。
Boolean Toggleコンポーネントは、TrueとFaulseを切り替えるスイッチみたいなものです。
スライダーを6つ複製し、Exoskeletonコンポーネントの S、R、N、B、D、TopologizerコンポーネントのTにそれぞれ接続します。
Boolean Toggleコンポーネントは、ExoskeletonコンポーネントのOに接続します。
とんでもないことになりました。
ざっくりですが、各パラメーターを説明するとこんな感じです。
TopologizerコンポーネントのTは、トレランス(交差)です。
どのぐらいの範囲で、重なった頂点を結合するかの数値です。
Exoskeletonコンポーネントの各項目は上画像のとおりです。
これらの数値を調整して、形をつくっていきます。
調整するにあたって、各項目は小数点以下1桁まで入力できるので
各スライダーをダブルクリックして、N(整数)をR(浮動小数点数)に変更し、Digits(桁数)を1にします。
↓画像のように調整してみました。
こんな感じになりました。
でも、拡大してみると交点の部分が変な感じになっています。
これは、Brep Edgesコンポーネントの格納した線データに階層が出来ているからです。
Brep EdgesコンポーネントのEiの部分を右クリックして、Flattenを選択します。
これで、複数の階層が一つになり等価で扱われます。
ちゃんと繋がりました。
次に、Weaverbird’s LaplacianHC Smoothingコンポーネントを選択します。
Weaverbird’s LaplacianHC Smoothingコンポーネントは、元になるメッシュを滑らかなメッシュに変換します。
ExoskeletonコンポーネントとWeaverbird’s LaplacianHC SmoothingコンポーネントのMを接続します。
Number Sliderコンポーネントで2つスライダーをつくります。
2つのスライダーをWeaverbird’s LaplacianHC SmoothingコンポーネントのLとAに接続します。
Lは、スムージングのレベル(1〜10までの数値で、数値を上げると滑らかになります)、Aは、スムージングするボリュームの調整(0.0〜1.0までの数値で数値を上げるとボリュームが小さくなります)です。
↓画像のように設定しました。
次に、Catmull-Clark smoothingコンポーネントを選択します。
LaplacianHC SmoothingコンポーネントとCatmull-Clark smoothingコンポーネントのMを接続します。
Catmull-Clark smoothingコンポーネントは、三角形のメッシュを四角形のメッシュに変換します。
形を保ちつつ、四角形メッシュに細分化します。
結果、滑らかになります。
次に、Params→Geometry→Meshコンポーネントを選択します。
Params→Geometry→Meshコンポーネントは、メッシュオブジェクトを格納します。
Meshコンポーネントを右クリックして、Bakeします。
Rhinoceros上にメッシュオブジェクトとして書き出されました。
RhinocerosからSTLデータで書き出します。
これで3Dデータの完成です!
Grasshopperの全体図は、こんな感じになりました。
レンダリングして確認してみるとこんな感じです。
長文でしたが、最後までありがとうございました。
今回のRhinocerosとGrasshopperのファイルを貼っておきます。
基本的にどんな形状でもボロノイ化出来ると思うので、良かったら使ってください。(Grasshopper勉強中なのでおかしいところがあるかもしれませんが…)
最後に、早速DMM.makeにアップロードしてみたら、造形可能のようです。
ポリアミドで発注してみました。
届くのが楽しみです。