Grasshopperコンポーネント:Intersect

  • グループ名ボタンをクリックで各グループ一覧にジャンプします。
  • 左にあるA~Cは重要度で、Aが一番重要度の高いコンポーネントになります。
  • 「詳しい機能を見る」をクリックで詳細説明が開きます。
  • *は書籍『Rhino×Grasshopper All in 1 パーフェクトリファレンス』に記載しているコンポーネントです。

Mathematical

Brep|Line

C

Intersect>Mathematical

Brepと直線(Line)を入力し、交わる曲線(Curve)や存在すれば点(Point)を出力する。

Curve|Line

C

Intersect>Mathematical

曲線(Curve)と直線(Line)の交わる点(Point)やtパラメータ値、交点数(Count)を出力する。

Line|Line

C

Intersect>Mathematical

直線AとBを入力し、交点のパラメータ(t)と点(Point)を直線AとBのそれぞれ出力する。 

Mesh|Ray

C

Intersect>Mathematical

メッシュ(Mesh)と点(Point)、投影する方向(Direction)を決め、最初に投影される点(Point)とぶつかったかどうかをTrueFalseで出力する。

Surface|Line

C

Intersect>Mathematical

サーフェスと直線(Line)を入力し、交点(Point)やサーフェス上のUV値、法線ベクトル(Normal)などを出力する。

Brep|Plane*

B

Intersect>Mathematical

Brepと平面(Plane)を入力し、交線(Curve)やあれば点(Point)を出力する。

詳しい機能を見る

詳細1:曲線上に[Perp Frames]を使って等間隔に法線方向に沿った平面を生成し、[Brep|Plane]でBrepとの交線を作成、[Surface Split]を利用してサーフェスを交線で分割し、1つ置きに色を割り当てた例。

Contour*

B

Intersect>Mathematical

Brepかメッシュ(Shape)、通過する点(Point)、向きとなるベクトル(Direction)、間隔(Distance)を入力することで、入力データを輪切りにする様な外形曲線を作成する。

詳しい機能を見る

詳細1:Rhinoで作成した3本の曲線を[Move]で高さを移動させ、[Loft]を使ってサーフェス化し、サーフェスを等分割する断面曲線を指定数作成した例。

Contour(ex)*

B

Intersect>Mathematical

Brepかメッシュ(Shape)、基準平面(Plane)を入力し、輪切りにする様な外形曲線を作成する。基準平面のオフセット値(Offset)か断面と断面の間隔(Distance)かを指定して使う。

詳しい機能を見る

詳細1:名前に「Contour」と付く標準コンポーネントは4つあり違いが一目でわかりにくい。
大きく分けると、アイコンにカーブが描かれているものはカーブとの交差を取るもので、
四角形が描かれているものが立体に用いるものである。

詳細2:[Contour(ex)]は、基準面からの距離(Offsets)、あるいは各等高線の間隔(Distances)を
リスト形式で指定し、等高線(コンター線)を作成するコンポーネント。
それぞれの線の位置を個別に指定できるため、等間隔、不等間隔いずれも可能。
基準となる位置と方向は平面(Plane)で入力する(法線方向が等高線を取る方向となる)。
それに対し[Contour]は基準点・方向・間隔を入力するため、等間隔コンターを作成したい場合に使用する。

Curve|Plane*

B

Intersect>Mathematical

曲線(Curve)と平面(Plane)を入力し、交わる点(Point)と曲線のtパラメータ、平面上のUV値を出力する。

詳しい機能を見る

詳細1:同じ曲線を用い[Curve|Plane]でXY平面、YZ平面、XZ平面との交点を作成した例。

Line|Plane

C

Intersect>Mathematical

直線(Line)と平面(Plane)を入力し、交わる点(Point)と曲線のtパラメータ、平面上のUV値を出力する。 

Mesh|Plane

C

Intersect>Mathematical

メッシュ(Mesh)と平面(Plane)を入力し、交わる曲線(Curve)を出力する。

Plane|Plane

C

Intersect>Mathematical

平面(Plane)AとBの交わる個所の直線(Line)を出力する。 直線の長さは1単位分の長さで出力される。

Plane|Plane|Plane

C

Intersect>Mathematical

平面(Plane)ABCを入力し、交わる点(Point)とそれぞれの平面同士の交線(Line)を出力する。 直線の長さは1単位分の長さで出力される。

Plane Region

C

Intersect>Mathematical

複数の平面(Bounds)を入力し、平面同士から作成される境界となる曲線を出力する。境界曲線を作成する平面(Plane)も指定できる。

Point Cloud Contour

C

Intersect>Mathmatical

Rhino8点群(Cloud)と始点(Start)、方向(Direction)、間隔(Distance)を入力し、点群と交差する一定間隔の断面を作成する。法線方向を限定するかどうか(Limit)も設定可能。

Point Cloud Section

C

Intersect>Mathmatical

Rhino8点群(Cloud)と交差する平面(Plane)を入力し、点群を交わる断面を作成する。点群数が少なすぎるとエラーとなる。

IsoVist*

B

Intersect>Mathematical

点から放射状に光を広げるイメージで障害物(Obstacles)との衝突判定を行う。平面(Plane)を指定しその原点から、放射上に作成する点の数(Count)、半径(Radius)を入力し、ぶつかった箇所の点(Point)と移動距離(Distance)、最初にぶつかった障害物のインデックスを出力する。

詳しい機能を見る

詳細1:点から放射状に光を広げるイメージで障害物(Obstacles)との衝突判定を行い、可視領域を計算する。面(Plane)を指定しその原点から放射する光線の数(Count)、半径
(Radius)を入力し、ぶつかった箇所の点(Point)と移動距離(Distance)、最初にぶつかった障害物のインデックスを出力する。(GrasshopperのIsovistコンポーネントは2次元でのみ機能するため、障害物は分析に使用されるポイントと同じ平面内の曲線であると仮定される。)
図は、ウォークスルーのライン上に指定した可動ポイントを原点とし、部屋の内部の可視領域を平面化した例。

IsoVist Ray

C

Intersect>Mathematical

光を投影するイメージで障害物(Obstacles)との衝突判定を行う。光の軌跡を指示する直線(Sample)と移動量(Radius)を入力し、ぶつかった箇所の点(Point)と移動距離(Distance)、最初にぶつかった障害物のインデックスを出力する。

Physical

Curve|Curve*

B

Intersect>Physical

曲線(Curve)AとBを入力し、交点(Point)と曲線上のtパラメータ値をそれぞれ出力する。

詳しい機能を見る

詳細1:[Curve|Curve]で水平方向と斜め方向の直線の交点を出力し、水平方向の線を[Shatter]で分割、[shift List]で下の交点のリストを一つずらして交点同士を線でつなぎ、分割した上の水平線とでサーフェスを作成した例。

Curve|Self

C

Intersect>Physical

曲線(Curve)を入力し自己交差がある場合は、点(Point)とtパラメータ値を出力する。

Multiple Curves*

B

Intersect>Physical

複数の曲線(Curves)を入力し、交点(Points)と、交点を持つ曲線のインデックスをiAとiBから、対応したtパラメータ値をtAとtBから出力する。

詳しい機能を見る

詳細1:図は円に対して[Divide Curve]と[Shift List]で作成したラインを元に、[Multiple Curves],[Sort Along Curve]を利用してXZ平面上に星形を作成した例。

Brep|Brep*

A

Intersect>Physical

BrepAとBを入力し、交線(Curves)と、もしあれば交点(Points)を出力する。

詳しい機能を見る

詳細1:BrepAとBを入力し、交線(Curves)と、あれば交点(Points)を出力する。図はテーパされた円柱Aに対し、各種サーフェスやオブジェクトをBとして交線を出力した例。[BBX]というコマンド検索で呼び出す事ができる。類似したコンポーネントの[Brep|Plane(Sec)]はPlane(平面)でしか曲線を取得できないため、Brepオブジェクトを指定するとエラーが出る。[Brep | Brep]は曲面サーフェスでもBrepオブジェクトでも指定可能。

詳細2:壁に対して[Solid Difference]で穴をあけ、そのBrepObjectを利用して、[Brep|Brep]にて壁との交線を取得、[Cull Index]にて外側の曲線のみ抽出した後、[Sweep1]にて窓枠を作成した例。[Perp Frame]と[Orient]を使用して、交線の始点に断面カーブを配置している。

詳細3:[Sphere]と[Voronoi 3D]の交線を[Brep | Brep]で取得し、[Pipe]にて厚みをつけた例。

Brep|Curve*

B

Intersect>Physical

Brepと曲線(Curve)を入力し、交点(Point)と、もしあれば交線(Curve)を出力する。

詳しい機能を見る

詳細1:多角形の押し出しソリッドを作成し、同じZ距離を等分割した中心点を[Series]等を使って作成、そこから放射状に直線を環状配列し、[Brep|Curve]でソリッドとの交点を出力し球体を作成、ソリッドから削除した例。

Surface|Curve*

B

Intersect>Physical

サーフェスと曲線(Curve)を入力し、交点(Point)、サーフェスのUV値、法線ベクトル(Normal)、曲線のtパラメータ、接線ベクトル(Tangents)などを出力する。

詳しい機能を見る

詳細1:入力したサーフェスとカーブの交点と法線ベクトルを使い、 [AdjustPlane]を使ってサーフェス上に法線方向に垂直な平面を作成した例。

詳細2:入力したサーフェスとカーブのtパラメーター値を使い、[Shatter]でサーフェスによって分割されたカーブを出力した例。

Surface Split*

A

Intersect>Physical

サーフェスと曲線群(Curves)を入力し、それぞれの箇所で分割する。曲線は分割できるようにサーフェスの端から端まで伸びている必要がある。New!

詳しい機能を見る

詳細1:サーフェスと曲線群(Curves)を入力し、それぞれの箇所で分割する。曲線は分割できるようにサーフェスの端から端まで伸びている必要がある。図は、球とボックスの交線を[Brep | Brep]で取得し、その曲線を使用して[Surface Split]でサーフェスを分割、[Dispatch]で分割されたサーフェスをA/Bの出力端子からそれぞれ抽出した例。他に、[List Item]の出力端子を増やし、分割したサーフェスをそれぞれ抽出する事も可能。

詳細2:[Surface Split]を使用して、球を平面で半分に分割し、[List item]で抽出した上半球を再び[Surface Split]にて三角形のカーブで分割した例。最後に[Offset Surf]と[Loft]で厚みをつけ、[Merge]で結合している。

詳細3:[Surface Split]を①[Populate Geometry]を発生させる範囲を決めるため、②サーフェスに複数の穴をあけるため、に使用した例。
大量の穴となるサーフェス群から本体(ベースサーフェス)を抽出するため、[Area]から出力した面積を[Sort List]で小さい順に並べ替え、リストを反転して、一番面積の大きい本体(ベースサーフェス)を[List Item(Index=0)]で取得している。

Mesh|Curve

C

Intersect>Physical

メッシュと曲線(Curve)を入力し、交点(Points)と交点があるメッシュのフェイスの番号(Faces)を出力する。

Mesh|Mesh

C

Intersect>Physical

メッシュAとBを入力し、交線となるポリカーブ(Intersections)を出力する。

Clash

A

Intersect>Physical

1つ目のジオメトリ群(First Set)と2つ目のジオメトリ群(Second Set)とが、指定距離(Distance)以内で干渉するかどうかを調べる。総干渉数(Clash Count)や干渉した点(Clash Points)、干渉した点ごとに1つ目、2つ目のぶつかったジオメトリのインデックスを出力する。使用可能なジオメトリは、曲線、メッシュ、サーフェス、Brep、SubDで、点は使用不可。

詳しい機能を見る

詳細1:Box800個とCylinder3つの干渉を[Clash]で検証し、i出力のindexを使用して、[List Item]で干渉オブジェクトを抽出した例。 同様に障害物と対象オブジェクトの衝突判定を行う[Collision One|Many]、入力した複数オブジェクト同士の衝突判定を行う[Collision Many|Many]があるが、[Clash]は大量のオブジェクトの干渉を高速に判定でき、入出力のオプションが豊富である。

詳細2:[Clash]を利用して梁部材と配管類の干渉チェックをした例。階層を[Explode Tree]で分け、配管の種類によって色分けをしてある。[Text Tag 3D]にて干渉している梁上Index値を表示。

詳細3:[Clash]で干渉したオブジェクトのみ、その干渉量のZ値を数値で表示させた例。[Brep|Brep]で抽出した交線から[Discontinuity]でコーナー点座標を抽出、そのZ座標の最大/最小値から干渉量を計算し、[TextTag3D]でオブジェクト前面に表示させている。

Collision Many|Many*

B

Intersect>Physical

チェックするジオメトリを複数(Collider)入力し、それぞれ干渉している場合はTrueを、していない場合はFalseを出力する。またそれぞれのジオメトリが最初にぶつかった障害物のインデックスも併せて出力する。

詳しい機能を見る

詳細1:チェックするジオメトリを複数(Collider)入力し、それぞれ干渉している場合はTrueを、していない場合はFalseを出力する。またそれぞれのジオメトリが最初にぶつかった障害物のインデックスも併せて出力する。出力されたTrue/Falseのブール値は、[Dispatch]や[Cull Pattern]などに利用して、振り分ける事ができる。

詳細2:図は、それぞれのオブジェクト同士の衝突判定に追加して、他のオブジェクトとの衝突判定を後から加えた例。[Merge]につないだ追加衝突オブジェクトに対して、[Relay]コンポーネントを有効/無効にする事でオン/オフの切替えを行っている。オブジェクト同士の衝突判定が不要で(この場合はBox同士)、指定したオブジェクトとの衝突を判定したい場合は、[Collision One|Many]を使用する。

Collision One|Many*

C

Intersect>Physical

障害物(Obstacles)とチェックするジオメトリ(Collider)を入力し、干渉している場合はTrueをしていない場合はFalseを出力する。また最初にぶつかった障害物のインデックスも併せて出力する。

詳しい機能を見る

詳細1:障害物(Obstacles)とチェックするジオメトリ(Collider)を入力し、干渉している場合はTrueを、していない場合はFalseを出力する。また最初にぶつかった障害物のインデックスも併せて出力する。図は、障害物に指定したライン上のセルを衝突判定で除去した例。

Region

Split with Brep*

B

Intersect>Region

曲線(Curve)を入力したBrepで分割する。分割した曲線(Curve)と交点(Points)を出力する。

詳しい機能を見る

詳細1:曲線(Curve)を入力したBrepで分割する。分割した曲線(Curve)と交点(Points)を出力する。[Trim with Brep]と似ているが、分割したカーブは一緒に出力され、分割した交点も出力できる。
図は、円カーブを円弧状のBrepオブジェクトで分割し、それぞれのカーブに対して異なるPipeの半径を指定した例。

Split with Breps

C

Intersect>Region

曲線(Curve)と複数のBrepを入力し、Brep群の内側の曲線(Inside)と外側の曲線(OutSide)に分割して出力する。

Trim with Brep*

B

Intersect>Region

曲線(Curve)と1つのBrepを入力し、Brepの内側の曲線(Inside)と外側の曲線(OutSide)に分割して出力する。

詳しい機能を見る

詳細1:曲線(Curve)と1つのBrepを入力し、Brepの内側の曲線(Inside)と外側の曲線(OutSide)に分割して出力する。[Sprit with Brep]と似ているが、内側と外側のカーブを別々に出力する事が可能。
図は、サーフェス上に等間隔に配置した網状のカーブに対して、Brepオブジェクトでカーブをトリムし、押し出して厚みをつけた例。

Trim with Breps

C

Intersect>Region

曲線(Curve)と複数のBrepを入力し、Brep群の内側の曲線(Inside)と外側の曲線(OutSide)に分割して出力する。

Trim with Region*

B

Intersect>Region

曲線(Curve)と閉じた曲線(Region)を入力し、曲線の内側(Insiede)と外側(OutSide)で分割して出力する。入力する平面(Plane)は空間上に存在している時にどの平面に投影して内側とみなすかを決めることが出来るオプションのようなもの。

詳しい機能を見る

詳細1:曲線(Curve)と閉じた曲線(Region)を入力し、曲線の内側(Insiede)と外側(OutSide)で分割して出力する。 入力する平面(Plane)は空間上に存在している時にどの平面に投影して内側とみなすかを決めることが出来るオプション。 図は、[Region Union]と[Region Intersection]を使用してカーブ結合時と交差時の内側と外側の曲線を出力した例。

詳細2:複数のカーブを入力した場合、リストの最後のカーブのみが有効となる。

詳細3:カーブの中にカーブ(穴があるカーブなど)は、そのまま入力するとエラーとなる。その場合は、[Trim with Region]を再度適用して処理をする。

詳細4:[Offset Curve]でオフセットしたカーブの一部を[Shatter]等で切断しながらRegionカーブを作成し、一部のカーブを抽出した例。

Trim with Regions

C

Intersect>Region

曲線(Curve)と閉じた曲線群(Regions)を入力し、曲線群の内側(Insiede)と外側(OutSide)で分割して出力する。入力する平面(Plane)は空間上に存在している時にどの平面に投影して内側とみなすかを決めることが出来るオプションのようなもの。

Shape

Boundary Volume*

B

Intersect>Shape

複数の開いた境界面から閉じたソリッドを作成する。RhinoのCreateSolidコマンドの様な機能。

詳しい機能を見る

詳細1:ソリッドを作成できる複数のサーフェス面を入力し、重なりあう箇所からソリッドを作成した例。

Solid Difference*

A

Intersect>Shape

BrepAとBを入力し、AからBを引き算した(差のブール演算した)形を出力する。

詳しい機能を見る

詳細1:Box(箱)とCylinder(円柱)の二種類が重なっている状態をコンポーネントに入力して見る。

詳細2:SolidDifferenceすると、AからBに入力したものを引き算した状態になる(RhinoのBooleanDifferenceの効果)。入力する順番によって、結果が異なることに注意。例は、BoxからCylinderを引き算した図。

詳細3:SolidDifferenceで、BからAを引き算した状態。例は、CylinderからBoxを引き算した図。

Solid Intersection*

A

Intersect>Shape

BrepAとBを入力し、AとBの交わる個所だけ抽出した(積のブール演算した)形を出力する。

詳しい機能を見る

詳細1:Box(箱)とCylinder(円柱)の二種類が重なっている状態をコンポーネントに入力して見る。

詳細2:SolidIntersectionすると、BoxとCylinderのそれぞれの立体の干渉部分のみ残る状態になる(RhinoのBooleanIntersectionの効果)。

Solid Union*

A

Intersect>Shape

Brepを複数入力し、Brep同士を足し算した(和のブール演算した)形を出力する。

詳しい機能を見る

詳細1:Box(箱)とCylinder(円柱)の二種類が重なっている状態をコンポーネントに入力して見る。

詳細2:SolidUnionすると、BoxとCylinderのそれぞれの立体を足し算した状態になる(RhinoのBooleanUnionの効果)。サーフェスの開いたエッジ同士を結合するBrepJoinとは異なり、体積が干渉していれば行えることに注意。

Split Brep*

A

Intersect>Shape

Brepと分割オブジェクト(Cutter)を入力することで、分割オブジェクトにより分割されたオブジェクトが出力される。Trimとは異なり、削除されるのではなく分割された形になる。

詳しい機能を見る

詳細1:Brep(円柱)をサーフェスを使い分割して見る。

詳細2:Split Brepを使うことで指定した箇所(この場合はサーフェス)で分割することができる(RhinoのSplitの効果)。ブーリアンではなく分割されるだけなので、分割された箇所は面が作成されずOpen Brepになるので注意が必要。例では、分割後分かりやすくするために、下側の円柱のみZ方向に-5移動している。

Split Brep Multiple*

A

Intersect>Shape

Brepと分割オブジェクト群(Cutters)を入力することで、分割オブジェクト群により分割されたオブジェクトが出力される。Trimとは異なり、削除されるのではなく分割された形になる。

詳しい機能を見る

詳細1:円柱をBrepに、複数のサーフェスをSurfaceコンポーネントに読み込んだ状態。

詳細2:Split Brep Multipleは、指定した箇所(複数のサーフェス)で分割される(RhinoのSplitの効果)。
ブーリアンではなく分割されるだけなので、分割された箇所は面が作成されずOpen Brepになるので注意が必要。

詳細3:Bake後、分かりやすくする為に移動した例。

Trim Solid*

A

Intersect>Shape

Brep(Shape)と削り取る形を指定するBrep(Cutters)を入力し、削った形状を出力する。SolidDiffrenceコンポーネントと違い、削除された箇所は面が無い形(Open Brep)になる。

詳しい機能を見る

詳細1:箱と円錐の二つのBrepをTrimSolidコンポーネントに入力して見る。

詳細2:TrimSolidすると、SからTに入力したものを引き算した状態になる。例は、円錐から箱形状を引き算した図。ブーリアンではなく分割されるだけなので、分割された箇所は面が作成されずOpen Brepになるので注意が必要。

詳細3:Bakeした状態。上部の面が無い開いた状態になっていることを注意すること。

Region Difference*

A

Intersect>Shape

閉じた曲線AとBを入力し、AからBを引き算した箇所を出力する(曲線の差のブール演算)。空間上の曲線を扱う場合は、オプションで演算を行う平面(Plane)も指定できる。

詳しい機能を見る

詳細1:入力した曲線同士で、ブール演算 差 を行う。 Aに入力した曲線が引かれる側となる。

Region Intersection*

A

Intersect>Shape

閉じた曲線AとBを入力し、AとBの交差する箇所を出力する(曲線の積のブール演算)。空間上の曲線を扱う場合は、オプションで演算を行う平面(Plane)も指定できる。

詳しい機能を見る

詳細1:入力した曲線同士で、ブール演算 積 を行う。

Region Union*

A

Intersect>Shape

複数の曲線(Curves)を入力し、曲線の面積を最大にするようにを行う(曲線の和のブール演算)。空間上の曲線を扱う場合は、オプションで演算を行う平面(Plane)も指定できる。

詳しい機能を見る

詳細1:入力した曲線同士で、ブール演算 和 を行う。

Mesh Difference*

C

Intersect>Shape

メッシュAとBを入力し、AからBを引き算した(差のブール演算)形を出力する。法線の向きはRhinoのDirコマンド等で確認する事。

Mesh Intersection*

C

Intersect>Shape

メッシュAとBを入力し、AとBの交差する箇所だけ抽出した(積のブール演算) 形を出力する。

Mesh Split*

C

Intersect>Shape

メッシュと分割するジオメトリ(Splitters)を入力し、メッシュを分割する。出力結果から、分割されたメッシュがインデックスに分けて出力される。

Mesh Union*

C

Intersect>Shape

メッシュを複数入力し、メッシュ同士を足し算した(和のブール演算)形を出力する。

Box Slits

C

Intersect>Shape

複数のBoxを入力し、スリット形状(はめ込む様にお互いを支えあう形)を作成する。ギャップの値だけオフセットしてスリットを作成することも可能。

Region Slits

C

Intersect>Shape

複数の閉じた曲線(Regions)と幅(Width)を入力し、スリット形状(はめ込む様にお互いを支えあう形)を作成する。ギャップの値だけオフセットしてスリットを作成することも可能。