2022年2月12日土曜日

【Grasshopper_56】Split Brepを使って複数のカッターで同時に分割する方法


サーフェスをBrep形式のデータで分割する時に便利なのがSplit Brepコンポーネントです。
今回は、穴を一度に開ける方法のご紹介。

※Rhinoceros7以降、Split Brep Multipleコンポーネントで同じことが実現可能なので、そちらを使うことをお勧めします。

このコンポーネントの動作がSurface Splitコンポーネントとは異なりまして、トップ画像のように、大量のカッター(ここでは六角形)で分割しようとしてもうまくいかないんですよね。

一回につき一つのカッターでのみ分割するので、穴が1つ開いたサーフェスが大量にできあがる現象が起きてしまいます。それの対策として、Anemoneプラグインを使ってループ処理を行うというものです。

Anemoneの使い方は言葉での説明が難しいので、まずは以下の手順で組んでみてください。

・まずは適当なサーフェスを用意して、Grasshopperに取り込みます。

・取り込んだサーフェスの真下に六角形を配置します。

・六角形をZ方向に押し出してサーフェス化します。これが今回のカッター(分割に使用する形状)です。

・続きは上のように組みます。

・Anemoneプラグインに含まれる、Loop StartとLoop End間がループ処理になっていて、データがぐるぐる循環する部分となっています。

・Loop Startの入力(D0、D1、・・・)口から入ったデータが途中につながれたコンポーネントを経由してLoop Endの出口(D0、D1・・・)に出て、<と>で結ばれた点線のケーブルを通してLoop Startに戻る、みたいな感じで、停止命令が出るまでデータが循環します。

・中間部分のコンポーネントの説明ですが、Loop StartのD0を通ったカッター形状の0番目がSplit Brepコンポーネントを使ってサーフェスを分割したのち、Cull Indexコンポーネントを使って使用済の0番目を削除し、次の処理に移動します。また、D1を通ったサーフェスは、カッターの0番目を使って穴が開いた状態のサーフェスをD1出口につなげて、また次の処理で使用するというループを順に繰り返して行きます。

・Loop StartのN入力は計算回数です。ひとまず適当に1000回分を設定しています。Loop EndのE入力が、ループを終わらせる条件となります。カッター(六角形)のリストの長さが0かどうかを毎回チェックし、0になった時点でEqualityコンポーネントがTrueに切り替わり、ループが終了します。

・ボタンを押すと、処理がリセットされ、何度も再生されます。

カッターを一つづつ使って分割する作業を自動で行うというものなので、カッターの数が膨大だとそれに見合った時間がかかりますが、毎回、RhinoにBakeして作業するのが面倒な場合はチャレンジしてみてください。

0 件のコメント:

コメントを投稿

【Grasshopper_98】SporphとSurface Morphingの特徴、違いなどについて

今年もまたGWに突入しましたね。コロナ明けに円安、インバウンド特需のおかげで東京から郊外に出かけると例年以上に混雑に巻き込まれそうなので、昨年と同様、連休中は家に籠ってブログを更新します。今回のテーマは、Surface MorphingとSporphの違いについてまとめてみました。