Brep同士でモデルを分割する、Split Brepの使い方について解説します。


グラスホッパー上では上の2つのどちらかで表されます。
Brepモデルとサーフェスの場合
最初に、Brepモデルに対してサーフェスを使った場合を見てみましょう。

使用コンポーネント:①Rectangle ②Surface ③Unit Z ④Extrude ⑤Division ⑥Move ⑦Split Brep
今回は例として、立方体のBrepモデルと正方形のサーフェスを使います。

まず、RectangleのXとY端子に、1辺の長さの数値を入力します。
今回は、どちらにも1000を入力しています。
そのため、1000×1000の正方形の線データが作成されます。
その後、RectangleのR端子を、Surfaceにつなげます。
すると、正方形のサーフェスが作成されました。

その後、Unit Zに、先程使用した1000の数値を入力します。
そして、Unit Zを、ExtrudeのD端子につなげます。
また、Surfaceを、ExtrudeのB端子につなげます。
すると、上の画像のようにサーフェスが押し出されて、立方体が作成されました。

次に、サーフェスを真ん中まで移動させます。
その後、DivisionのB端子に、2の数値を入力します。
すると、立方体の半分の位置まで、正方形のサーフェスが移動します。

その後、Extrudeを、Split BrepのB端子につなげます。
加えて、MoveのG端子を、Split BrepのC端子につなげます。
すると、立方体が、サーフェスの位置で分割されます。
しかし、分割されたモデルは、どちらもSplit Brepに存在しているため、個別に選ぶことはできません。

追加コンポーネント:①List Item
そのため、List Itemなどを使い、個別に分割されたモデルを取得します。
Split Brepのデータを見てみると、2つのデータがあることが分かります。
そのため、2つのList Itemを用意します。
そして、Split Brepを、2つのList ItemのL端子につなげます。
その後、1つ目のList Itemのi端子には0、2つ目には1の数値を入力します。


すると、上2枚の画像のように、分割されたモデルを個別に取得できました。
Brepモデル同士の場合
次に、Brepモデル同士の場合を見てみましょう。

今回は、先程のサーフェスを押し出して、もう1つのBrepモデルを作成しました。

Unit Zに、押し出す距離の数値を入力します。
今回は、200を入力しています。
その後、Unit Zを、ExtrudeのD端子につなげます。
また、先程のMoveのG端子を、ExtrudeのB端子につなげます。
すると、上の画像のように、サーフェスが押し出されて、新たな厚みのあるBrepモデルが作成されました。

その後、先程と同じように、Split Brepにつなげます。
すると、立方体が分割されます。
今回は、Split Brepに3つのデータあります。



今回の場合、使用した2つのBrepと重複する部分も、分割されていることが分かります。
開いているモデルを閉じる

Split Brepを使ってモデルを分割すると、分割されたモデルはOpen Brepとなり、開いた状態のモデルになります。
そのため、場合によっては閉じる必要があります。

追加コンポーネント:①Cap Holes

切り口が2次元の場合、多くの場合、Cap Holesを使うと閉じることができます。


一方、上の画像のように切り口が2次元ではなく複雑な場合は、その切り口の部分のサーフェスを別に作成し、結合する必要があります。

追加コンポーネント:①Solid Intersection ②Brep Join
今回は例として、Solid Intersectionを使い、切り口部分を作成します。

元々のモデルと、分割に使用したサーフェスを、それぞれSolid Intersectionにつなげます。
すると、重複する部分である、切り口部分のサーフェスを取得できました。

その後、元々のモデルとSolid Intersectionを、Brep Joinにつなげます。
すると、元々のモデルと切り口部分を結合し、閉じることができました。
Split Brepコンポーネントを使用しているグラスホッパー記事はこちら↓
Comment