Open Nest: 複数シート配置の誤解

GrasshopperのOpen Nestプラグインは、材料の効率的な配置、いわゆる「ネスト」を行う上で非常に強力なツールですよね。しかし、「なぜかネストが1枚のシートにしか収まらない!」という経験はありませんか?これは多くのユーザーが直面する、Open Nestの挙動に関する一般的な誤解から来ています。

実は、Open Nestコンポーネントは、あなたに代わって自動的にシートを生成するわけではありません。入力されたジオメトリを、あなたが指定したシートの境界内に配置するだけの機能を持っています。つまり、Sheetsインプットに1枚分のシート境界(例えば1つの長方形)しか与えなければ、結果も当然1枚のシートにしか配置されません。そして、その1枚に収まらなかったオブジェクトは、残念ながら配置されないままになってしまうのです。この点を理解することが、効率的なネストへの第一歩となります。

複数シートでネストする具体策

では、どのようにすれば複数のシートにわたってネストできるようになるのでしょうか?答えはシンプルです。Open NestSheetsインプットに、複数のシート境界をリストとして与えればいいのです。

例えば、あらかじめ複数の長方形を作成し、それらをリストとしてSheetsに接続します。最も簡単な方法は、Rectangleコンポーネントで1枚分のシート境界を作成し、それをArray LinearArray Gridなどのコンポーネントを使って複製し、シートのリストを生成することです。こうすることで、Open Nestは与えられた複数のシート境界それぞれに、可能な限りオブジェクトを配置しようと試みます。

また、入力する配置対象のジオメトリ(Curvesインプット)は、データ構造を「Flatten(フラット化)」することも重要です。これにより、ネストのアルゴリズムがすべてのオブジェクトを一貫したリストとして扱いやすくなり、意図した通りの配置結果を得やすくなります。

解決策が効かない時の注意点

上記の解決策は多くのケースで有効ですが、残念ながら常に万能というわけではないようです。一部のユーザーからは、「以前は機能していたスクリプトが、最近になって突然動かなくなった」「同じスクリプト内でも、異なるインスタンスで結果が異なる」といった報告も上がっています。

これは、Open Nestプラグインのバージョンアップや、Grasshopperの他のコンポーネントとの相互作用、あるいは非常に複雑なジオメトリが原因で発生する可能性があります。もし一般的な解決策を試しても問題が解決しない場合は、使用しているOpen Nestのバージョンを確認したり、スクリプトの他の部分に問題がないかデバッグしたりする必要があるかもしれません。コミュニティのフォーラムなどを活用して、最新の情報やより具体的な解決策を探すのも良い方法でしょう。