— 2026.05.12 / Topic 03
Grasshopperでブロックインスタンスの輪郭を効率的に抽出するTips
返信数
─── 詳細記事
複雑なブロックの輪郭抽出: なぜ難しい?
GrasshopperでRhinoのブロックインスタンスから、きれいな輪郭線(エッジプロファイル)を抽出したい場面は多いでしょう。壁の開口部作成やサーフェスへの投影などに必要です。しかし、ブロックインスタンスは複数のBrepやサーフェス、カーブが混在していることが多く、直接的な抽出はエラーになりがちです。
本記事では、この課題を解決するGrasshopperのワークフローをご紹介します。間接的なアプローチで、複雑なブロックインスタンスからでも狙い通りの輪郭を抽出できるようになります。
ブロック内容の確認と初期設定
まず、RhinoからGrasshopperにブロックインスタンスをインポートします。内部構造を確認するため、Explodeコンポーネントで内容を見てみましょう。複数のBrep、サーフェス、カーブが混在しているはずです。この「混在」が、直接抽出を難しくする原因です。
ここから、間接的な手法で目的の輪郭を抽出していきます。
ソリッド差分で外形を分離するロジック
この方法の肝は、「Solid Difference(ソリッド差分)」コンポーネントの応用です。
1. 対象ブロックインスタンス全体を覆う、少し大きめのBounding Box(バウンディングボックス)を作成します。ブロックインスタンスよりわずかに大きく設定するのがポイントです。
2. 次に、このBounding Boxを基準として、ブロックインスタンス内の全てのオブジェクトを差し引きます。これにより、ブロックインスタンスの「外側」の形状情報だけが残ります。つまり、ブロック全体を覆うソリッドから、内部の複雑な形状をくり抜いた状態です。
3. 複数の結果が出る場合、List Itemコンポーネントでインデックス0番目(または適切なインデックス)を選択し、目的の「外側」の形状を取得します。
XZ平面への輪郭抽出
「外側」の形状、つまりブロックインスタンスを包み込むソリッド形状が手に入ったら、あとは簡単です。
このソリッド形状に対して、Contourコンポーネントを使用します。例としてXZ平面に平行な輪郭線を抽出します。Contourコンポーネントにソリッド形状を入力し、輪郭の方向(XZ平面の法線方向)と間隔を設定すれば、目的のフラットな輪郭線が得られます。
まとめ: 応用と可能性
Grasshopperでブロックインスタンスの輪郭抽出に困ったら、今回紹介した「Bounding BoxとSolid Differenceを組み合わせた間接的な方法」をぜひ試してみてください。このロジックは、輪郭抽出だけでなく、複雑なアセンブリから特定の形状を分離したり、モデルのボリュームを解析したりする際にも応用できる強力なテクニックです。
─── 要約
Grasshopperで複雑なブロックインスタンスから、きれいに輪郭線(エッジプロファイル)を抽出する方法を解説します。複数のBrepやサーフェスで構成されるブロックでも、ソリッド差分を応用することで、開口部作成や投影に使えるシンプルな形状データを得るロジックを習得できます。建築・プロダクトデザインで役立つ実践的なテクニックです。
