[Grasshopper]複数モデル同士の干渉を調べるCollision Many|Manyの使い方

[Grasshopper]複数モデル同士の干渉を調べるCollision Many|Manyの使い方 Grasshopperコンポーネント
本サイトはプロモーションが含まれています

複数モデル同士の干渉を調べる、Collision Many|Manyの使い方について解説します。

見え方1
見え方2

グラスホッパー上では上の2つのどちらかで表されます。

本記事では、コンポーネントはアイコン表示になっています。


↑YouTube始めました。

本サイトIArchwayでは、仕事の依頼・相談を受け付けています。


本サイトの運営費を少しでもご支援いただけると幸いです。


複数のモデル同士が干渉しているかを調べる

Collision Many|Manyを使うことで、複数のモデル同士が干渉しているかを調べることができます。

使用するモデル

今回の例として、上の画像の4つの立方体を使います。

立方体のインデックス番号(順番の番号)は、表示されている通りです。

複数のモデル同士が干渉しているかを調べる

使用コンポーネント:①Brep ②Collision Many|Many

今回は、4つの立方体を、Brepに格納しています。

Brepを、Collision Many|Manyにつなげます。

すると、上の画像のように、Collision Many|Many(C)から、True、もしくはFalseの情報が出力されます。

入力したモデルが干渉している場合、Trueが表示されます。

入力したモデルが干渉していない場合、Falseが表示されます。

今回の場合、インデックス番号が0~3のモデルが干渉しているので、0~3はTrueと表示されています。

一方、干渉していない4番は、Falseと表示されています。

分ける

追加コンポーネント:①Dispatch

TrueとFalseの情報で場合分けをするDispatchを使ってみます。

Brepを、Dispatch(L)につなげます。

Collision Many|Many(C)を、Dispatch(P)につなげます。

そして、Dispatch(AとB)に、Brepをつなげます。

分けられた

すると、Dispatch(A)からは、Trueの干渉しているモデルが出力されます。

Dispatch(B)からは、Falseの干渉していないモデルが出力されます。

I

Collision Many|Many(I)からは、どのモデルと最初に干渉したかのインデックス番号(順番の番号)が出力されます。

モデルが干渉していない場合、-1と表示されます。

I2

追加コンポーネント:①List Item

Collision Many|Many(I)の一番最初のインデックス番号0を見てみます。

一番最初のインデックス番号0のデータは、1となっています。

これは、0番目のモデルは、1番目のモデルと最初に干渉していることを意味しています。

Brepを、2つのList Item(L)につなぎ、0と1をList Item(i)につないで、0番目と1番目のモデルを取得してみます。

どのモデルと干渉してるかを調べた

すると、上の画像のように、0番目のモデルは、1番目のモデルと干渉していることが分かります。

I2

一方、1番目のモデルは、0と2番目のモデルと干渉していますが、インデックス番号1のデータには、0と表示されています。

これは、干渉している最初のモデルのインデックス番号のみを表示しているためです。

0と2の場合、0の方が最初に干渉していると判定されるため、0と表示されます。

0番目のモデルの干渉を解消すると、2と表示されるようになります。

Collision Many|Manyコンポーネントを使用しているグラスホッパー記事はこちら↓

Comment

Translate »