GrasshopperのBoolean差分失敗の謎
Grasshopperで複雑なジオメトリを扱う際、Solid Differenceコンポーネントが機能せず、Rhinoでは成功するという現象に遭遇することがあります。特に建築ファサードのようなモデルで報告され、多くのユーザーが作業の進行に頭を悩ませる問題です。GH内でブーリアン操作が失敗する一方で、同じ形状をRhinoにベイクして実行すると成功する、という矛盾した挙動が特徴です。
失敗の背景とRhinoとの挙動差
この違いは、GHのSolid DifferenceコンポーネントとRhinoのネイティブBoolean Differenceコマンドが、内部的な処理ロジックや許容誤差に差があるためと考えられます。McNeelのGiulio Piacentino氏も「Brep booleans」の診断に言及しており、この問題は「RH-98363」として開発チームに報告済みです。特に複雑なBrepジオメトリを扱う際、GHコンポーネントがRhinoコマンドよりも厳密な、あるいは異なる計算ロジックを持つことが原因と推測されます。`LunchBox`のような外部プラグインで生成された形状も、ジオメトリの複雑性を増し、ブーリアン操作に影響を与える可能性があります。
対処法とスムーズなモデリングのヒント
GHのSolid Differenceが機能しない場合の最も確実な対処法は、一時的にRhinoの環境を利用することです。
1. GHでブーリアン操作の対象となるジオメトリを生成。
2. これらのジオメトリを右クリックメニューからBake(ベイク)してRhinoドキュメントに実体化。
3. Rhino上で、ベイクされたジオメトリを選択し、RhinoのBoolean Differenceを実行します。
この方法で、GHでは失敗したブーリアン操作がRhinoでは成功するケースが多く、作業を続行できます。これは一時的な回避策であり、根本的な解決は将来のGHアップデートに期待されます。問題発生時には使用しているRhinoのバージョンを把握しておくことが、開発側での診断に役立ちます。複雑なジオメトリでブーリアン操作を行う前に、シンプルな形状でテストする、ジオメトリのクリーンアップや最適化を試みることも有効です。GHとRhinoの挙動の違いを理解し、適切なツールやワークフローを選択することが、スムーズなモデリング作業の鍵となります。
