grasshopperを使っていると点、線、サーフェスをモデルから抽出したい場面が多くあると思います。
しかし、どのコンポーネントを使用すれば自分の使いたい部分だけ抽出できるのかは、Grasshopperに慣れていない時には難しいと思います。
そこで今回は実際にソリッド、サーフェス、線からそれぞれの構成要素を抽出する方法を紹介します。
結論としてはソリッドとサーフェスの場合は“Deconstruct Brep”、線の場合は“End Points”を使用すればできます。

それでは解説していきます。下のリンクから今回のGrasshopperとライノセラスのデータをダウンロードできるので是非ご利用ください。
今回のGrasshopperとライノのデータダウンロードはこちら
ダウンロードできるデータのご利用に関しては、利用規約をご覧ください。
動画で見る
ソリッドとサーフェスの場合
最初のコンポーネントはこちらになります。

使用コンポーネント:① Geometry ② Deconstruct Brep ③List Item

まずは使用するソリッドもしくはサーフェスをGeometryに収納します。
最初にGeometryコンポーネントを右クリックします。
そして”set one geometry”を選択するとモデルを格納できます。

次にDeconstruct Brepを使用します。
これを使うことで、現在モデルは面、線、点に分解されています。
F端子には面、E端子には線、V端子には点のデータが格納されています。
しかしこのままでは分解されているだけで自分の取り出したい部分を抽出できていません。

そこでList Itemを使用します。
このコンポーネントはi端子に数値を入力することで、インデックス番号に対応するデータを抽出できます。
簡単に表現すると、面が6つある場合、1つ1つの面に番号が割り当てられていて、0~5の1つを入力することで1つだけ抽出できます。

上の写真のように数値を0から1にしてみます。

そうすると、選択されている面が正面から右側面に変わりました。
このようにして自分の取得したい部分を抽出することができます。

こちらは線を抽出している様子です。

このように点も抽出できます。

最初にGeometryに入れるデータをサーフェスにしても同様に分解、抽出することができます。
しかし、線の場合はエラーが発生します。そのため線を分解したい場合には他の方法が必要です。
線の場合
線の場合のコンポーネントはこちらになります。

使用コンポーネント:④ Curve ⑤ End Points

まずはCurveに線を収納します。先程のGeometryの時と方法は一緒です。
コンポーネントを右クリックし”set one geometry”でできます。

そしてEnd Pointsを使用します。
このコンポーネントは、線の最初と最後の点を抽出することができます。
S端子は始まりの点、E端子からは終わりの点が抽出できます。
これにより、線から点を抽出することができます。
まとめ

まとめです。
Grasshopperでサーフェス、線、点を抽出したい場合には
ソリッドとサーフェスの場合は"Deconstruct Brep"
線の場合は"End Points"
です。今回は以上になります。
Comment