単一のサーフェスから作成することのできない複雑なモデルを構築する場合や、明示的な体積を定義する場合は、ソリッド(およびポリサーフェス)を使用する必要があります。単純な立方体でさえ、全部で 6 つのサーフェスが必要になる複雑な構造をしています。ソリッドには、サーフェスには存在しない 2 つの重要な概念があります。それは、高度な位相幾何学的な概念(面、辺、頂点)と、ブール演算という概念です。
ブール演算を使用して、ソリッドを修正することができます。いくつかのブール演算を使用して、スパイク状のボールを作成してみましょう。
Sphere.ByCenterPointRadius ノードを使用して、ベースとなるソリッドを作成します。
Topology.Faces ノードと Face.SurfaceGeometry ノードを使用してソリッドの面のクエリーを実行し、サーフェス ジオメトリに変換します。この場合、球体には 1 つの面しかありません。
Cone.ByPointsRadii ノードで、サーフェス上の点を使用して円錐を作成します。
Solid.UnionAll ノードを使用して、円錐と球体との和演算を行います。
Topology.Edges ノードを使用して、新しいソリッドの辺のクエリーを実行します。
Solid.Fillet ノードを使用して、スパイク状の球体のエッジの面取りを行います。
下のリンクをクリックして、サンプル ファイルをダウンロードします。
すべてのサンプルファイルの一覧については、付録を参照してください。
ブール演算は複雑なため、計算に時間がかかります。「フリーズ機能」を使用すると、選択したノードとその影響を受ける下流ノードの実行を中断できます。
1. Solid.UnionAll ノードの和演算をフリーズするには、右クリックしてコンテキスト メニューを使用します。
2.選択したノードとすべての下流ノードがライト グレーのゴースト モードでプレビュー表示され、影響を受けるワイヤが破線で表示されます。影響を受けるジオメトリのプレビューも、ゴースト モードになります。これで、ブール論理和を計算することなく、上流で値を変更することができます。
3.ノードのフリーズを解除するには、ノードを右クリックして[フリーズ]の選択を解除します。
4.影響を受けるすべてのノードとそれに関連するジオメトリのプレビューが更新され、標準プレビュー モードに戻ります。
ノードのフリーズの詳細については、「ノードとワイヤ」セクションを参照してください。
ソリッドは 1 つまたは複数のサーフェスから構成され、「内部」と「外部」を定義する閉じた境界によって体積が定義されます。 ソリッドとして認識される条件は、サーフェスの数に関係なく、全体が完全に閉じた形状になっているということです。ソリッドは、サーフェスまたはポリサーフェスを結合して作成することも、ロフト、スイープ、回転などの操作を使用して作成することもできます。球体、立方体、円錐、円柱プリミティブなどもソリッドです。立方体から 1 つまたは複数の面を取り除いた場合、その形状はポリサーフェスとして認識されます。ポリサーフェスのプロパティはソリッドのプロパティと似ていますが、このポリサーフェスはソリッドではありません。
単一のサーフェスで構成される平面は、ソリッドではありません。
単一のサーフェスで構成される球体は、ソリッドです。
2 つの結合されたサーフェスで構成される円錐は、ソリッドです。
3 つの結合されたサーフェスで構成される円柱は、ソリッドです。
6 つの結合されたサーフェスで構成される立方体は、ソリッドです。
ソリッドは、頂点、辺、面という 3 種類の要素で構成されます。面は、ソリッドを構成するサーフェスです。辺は、隣接する面の接続を定義する曲線です。頂点は、これらの曲線の開始点と終了点です。Topology ノードを使用すると、これらの要素についてクエリーを実行することができます。
面
辺
頂点
ソリッドの辺をフィレット操作や面取り操作で変更することにより、角のとがりや出っ張りを取り除くことができます。面取り操作を実行すると、2 つの面の間に直線的なサーフェスが作成され、フィレット操作を実行すると、2 つの面がなめらかに接合されます。
ソリッド立方体
面取りされた立方体
フィレットされた立方体
ソリッドのブール演算は、2 つ以上のソリッドを組み合わせるための方法です。ブール演算を 1 回実行すると、実際には次に示す 4 つの操作が実行されます。
2 つ以上のオブジェクトを交差させる。
すべてのオブジェクトを交点で分割する。
ジオメトリの不要な部分を削除する。
すべてのオブジェクトを 1 つに結合する。
和: ソリッドの重複部分を削除して 1 つのソリッドに結合します。
差: 一方のソリッドから別のソリッドを取り除きます。取り除く側のソリッドは、ツールと呼ばれます。ツールとなるソリッドを切り替えて、逆のボリュームを作成することができます。
積: 2 つのソリッドが交差している部分だけを保持します。
UnionAll ノードは、球体と外側を向いた円錐の和演算を行います。
DifferenceAll ノードは、球体と内側を向いた円錐の差演算を行います。
このように、ソリッドのブール演算は、作業時間を節約するための強力な機能です。ソリッドのブール演算には、ジオメトリのどの部分を保持するかを区別する 3 つの操作があります。
これら 3 つの演算に加えて、Dynamo には、さまざまなソリッドの差演算と和演算を実行するための Solid.DifferenceAll ノードと Solid.UnionAll ノードが用意されています。