Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
ベクトルは大きさと方向を表すもので、特定の速度で特定の方向に向かって加速する矢印として描画できます。ベクトルは、Dynamo のモデルにおける主要なコンポーネントです。ベクトルは[Helper]という抽象的なカテゴリに分類されるため、ベクトルを作成しても背景プレビューには何も表示されないことに注意してください。
ベクトル プレビューの代わりに線分を使用することができます。
下のリンクをクリックして、サンプル ファイルをダウンロードします。
すべてのサンプルファイルの一覧については、付録を参照してください。
平面は 2 次元サーフェスで、無限に広がる平坦なサーフェスとして描画できます。各平面には、原点、X 方向、Y 方向、Z (上)方向があります。
平面は抽象的な概念ですが、平面には基準点があるため、空間内で平面の場所を特定することができます。
Dynamo では、平面は背景プレビューにレンダリングされます。
下のリンクをクリックして、サンプル ファイルをダウンロードします。
すべてのサンプルファイルの一覧については、付録を参照してください。
座標系は、点やその他のジオメトリ要素の位置を決定します。次の画像は、Dynamo での外観と各カラーの意味について説明しています。
座標系は抽象的な概念ですが、座標系には基準点があるため、空間内で座標系の場所を特定することができます。
Dynamo の座標系は、点(基準点)と 3 つの軸を定義する線分(X は赤、Y は緑、Z は青で表示)として背景プレビューにレンダリングされます。
下のリンクをクリックして、サンプル ファイルをダウンロードします。
すべてのサンプルファイルの一覧については、付録を参照してください。
抽象的なジオメトリ タイプの主要なグループは、ベクトル、平面、座標系により構成されています。ベクトル、平面、座標系により、形状を表すその他のジオメトリの位置、方向、空間コンテキストを定義することができます。たとえば、ニューヨーク市 42 丁目のブロードウェイ(座標系)の路上(平面)に立って北(ベクトル)を向いている場合、ベクトル、平面、座標系という[Helper]カテゴリの情報を使用して自分の現在の居場所を定義していることになります。電話ケース製品や高層ビルについても、同じことが言えます。モデルを開発するには、このコンテキストが必要です。
ベクトルとは、方向と大きさを表すジオメトリの量です。ベクトルは抽象的な概念です。つまり、ジオメトリ要素ではなく量を表します。ベクトルは点と同様に値のリストで構成されているため、点とベクトルを混同しないようにする必要があります。ただし、点とベクトルには大きな違いがあります。点が特定の座標系における位置を表すのに対して、ベクトルは位置における相対的な差異を表します。これは、「方向」と言い換えることもできます。
相対的な違いの考え方が分かりにくい場合は、ベクトル AB を「点 A に立って点 B の方向を向いている」と考えてみてください。 現在地 A から目的地 B に対する方向が、ベクトルです。
ここでは、同じ AB 表記を使用して、ベクトルを構成する要素について説明します。
ベクトルの開始点は、起点と呼ばれます。
ベクトルの終了点は、先端または向きと呼ばれます。
ベクトル AB とベクトル BA は違います。これらは、反対方向のベクトルです。
ベクトルとその定義に関するジョークとして、古典的なコメディである Airplane (邦題: フライングハイ)の有名なジョークがあります。
Roger, Roger.What's our vector, Victor? (訳注: ロジャー、了解だ(発音は「ロジャー」、ラジャー)。ビクター、機首の向き(発音は「ベクター」、ベクトル)は?
平面は、2 次元の抽象的な Helper です。 より厳密に定義すると、平面とは 2 つの方向に無限に延びる概念的に「平らな」面のことです。平面は、通常、小さな長方形として基準点の近くにレンダリングされます。
ここで、「基準点とは、CAD ソフトウェアでモデルを作成する場合に使用する、座標系に関係ある用語ではないだろうか」と思いつく人がいるかもしれません。
そのとおりです。多くのモデル作成ソフトウェアは、構築面(「レベル」)を使用してローカルな 2 次元のコンテキストを定義し、その面上に図面を作成します。XY 平面、XZ 平面、YZ 平面や、北、南東などの用語の方がなじみがあるかもしれません。これらはすべて、無限の平らなコンテキストを定義する平面です。平面には深さはありませんが、方向の記述に役立ちます。
平面を理解できれば、座標系もすぐに理解することができます。平面のすべての要素は、標準的なユークリッド座標系または XYZ 座標系の要素と同じです。
ただし、円柱や球体など、他の座標系もあります。平面の要素は、これらの座標系の要素とは異なります。他のジオメトリ タイプに座標系を適用し、そのジオメトリ上の位置を定義することもできます。これについては、これ以降のセクションで説明します。
別の座標系(円柱、球体)に関する説明をここに追加
ビジュアル プログラミング環境の Dynamo では、データの処理方法を構築することができます。数値やテキストだけでなく、ジオメトリもデータです。コンピュータが認識できるジオメトリ(計算設計用のジオメトリと呼ぶ場合もあります)は、美しいモデル、複雑なモデル、パフォーマンス重視のモデルを作成するためのデータです。ジオメトリを使用するには、そのジオメトリのさまざまな入力と出力を理解する必要があります。
単一のサーフェスから作成することのできない複雑なモデルを構築する場合や、明示的な体積を定義する場合は、ソリッド(およびポリサーフェス)を使用する必要があります。単純な立方体でさえ、全部で 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 ノードは、球体と内側を向いた円錐の差演算を行います。
ジオメトリ データ タイプには複数のタイプがありますが、最初にについて説明します。曲線には、曲がっているか、まっすぐか、長いか、短いかなど、その形状を表す一連のプロパティが存在します。線分からスプライン曲線まで、すべての曲線タイプは点という構成要素で定義されることに注意してください。
線分
ポリライン
円弧
円
楕円
NURBS 曲線
ポリカーブ
NurbsCurve.ByControlPoints ノードは、点のリストを制御点として使用します。
NurbsCurve.ByPoints ノードは、点のリストを使用して曲線を描画します。
下のリンクをクリックして、サンプル ファイルをダウンロードします。
すべてのサンプルファイルの一覧については、付録を参照してください。
曲線という用語は通常、すべての曲がった形状を指します(直線を含みます)。大文字の「C」で始まる「Curve」は、直線、円、スプライン曲線など、すべての形状タイプの親カテゴリです。より厳密に定義すると、曲線とは、(x = -1.26*t, y = t
)などの単純な関数から微積分を使用する複雑な関数まで、さまざまな関数の集合に「t」を代入して指定することができるすべての点のことです。操作する曲線の種類に関係なく、この「t」というパラメータが評価対象のプロパティになります。また、形状の外観にかかわらず、すべての曲線には開始点と終了点があり、この開始点と終了点が、曲線の作成に使用される t の最小値と最大値に対応します。これを理解すると、曲線の方向についても理解できます。
Dynamo では、曲線に対する t の値の範囲は 0.0 ~ 1.0 になります。これは、覚えておく必要があります。
すべての曲線には、曲線の記述や解析で使用されるさまざまなプロパティと性質があります。開始点と終了点の間の距離がゼロの場合は、「閉じた」曲線になります。 また、すべての曲線には複数の制御点があります。これらの点がすべて一つの平面上に配置されている場合、その曲線は「平らな」曲線になります。 一部のプロパティは曲線全体に適用されますが、曲線上の特定の点にのみ適用されるプロパティもあります。たとえば平面性はグローバル プロパティですが、特定の t 値における接線ベクトルはローカル プロパティです。
線分は、最も簡単な形状の曲線です。直線は曲線には見えないかもしれませんが、曲率がゼロであるというだけで、実際には曲線です。線分を作成する方法はいくつかあります。最も直感的な方法は、点 A から点 B までの線分を作成する方法です。この場合、線分 AB の形状が点間に描画されますが、数学的には、直線が両方向に無限に延びている状態になります。
2 つの線分を接続すると、ポリラインが作成されます。ここで、制御点について簡単に説明します。どの制御点の位置を編集しても、ポリラインの形状が変化します。ポリラインが閉じている場合は、ポリゴンが作成されます。ポリゴンの辺の長さがすべて同じである場合、このポリゴンは正多角形になります。
ここからは、形状を定義するための複雑なパラメトリック関数を見ていきます。これまでは線分について説明しましたが、ここでは 1 つまたは 2 つの半径を設定することにより、円弧、円、楕円弧、楕円を作成します。円弧と円または楕円の違いは、形状が閉じているかどうかだけです。
NURBS (非一様有理スプライン)は、単純な 2 次元の線分、円、円弧、長方形の形状から、複雑な 3 次元フリーフォームの有機的な曲線まで、あらゆる形状を正確にモデル化することができる数学的表現です。その柔軟性(比較的少ない制御点で、次数の設定に基づいたスムーズな補間が可能)と精度(堅牢な数学演算による形状指定)により、イラストレーションやアニメーションから製造にわたる幅広いプロセスで使用することができます。
次数: 曲線の次数により、制御点が曲線に与える影響力の範囲が決まります。次数が大きいほど、影響力の範囲も大きくなります。次数は正の整数です。この数値は通常 1、2、3、または 5 ですが、任意の正の整数にすることができます。NURBS 線分とポリラインの次数は、通常は 1 です。ほとんどのフリーフォーム曲線の次数は、3 または 5 です。
制御点: 制御点は、次数 + 1 個以上の点を含むリストです。NURBS 曲線の形状を変更するための最も簡単な方法は、その制御点を移動する方法です。
ウェイト: 制御点には、ウェイトと呼ばれる数値が関連付けられています。ウェイトは、通常は正の数値です。曲線の制御点のすべてのウェイトの値が同じである場合(通常は 1)、その曲線は非有理曲線と呼ばれます。それ以外の場合は、有理曲線と呼ばれます。ほとんどの NURBS 曲線は、非有理曲線です。
ノット: ノットは、N を制御点の数としたとき、「次数 + N - 1」個の数値のリストとして表されます。ノットはウェイトとともに使用され、作成される曲線上の制御点の影響力をコントロールします。ノットは、曲線上の特定の点でねじれを作成する場合などに使用します。
次数 = 1
次数 = 2
次数 = 3
次数の値が大きいほど、作成される曲線を補間するための制御点の数が多くなります。
コンピュータ モデリングの分野では、3D ジオメトリを表現する形式としてが広く普及しています。メッシュ ジオメトリは一般的に四角形または三角形の集合で構成され、NURBS 操作の代替として、軽量で柔軟なジオメトリにすることができます。メッシュは、レンダリングやビジュアライゼーションからデジタル製造や 3D プリントまで、あらゆる用途に使用されます。
Dynamo では、面と頂点のデータ構造を使用してメッシュを定義します。最も基本的なレベルでは、この構造はポリゴンにグループ化された単なる点の集合です。メッシュの点を頂点と呼び、サーフェスのような形状のポリゴンを面と呼びます。
メッシュを作成するには、頂点のリストと、それらの頂点をインデックス グループと呼ばれる面にグループ化するための仕組みが必要です。
頂点のリスト
面を定義するためのインデックス グループのリスト
このライブラリには、メッシュの変更や修復を行うためのツールや、製造処理で使用する水平方向のスライスを抽出するためのツールも用意されています。
メッシュは、サーフェスまたはソリッド ジオメトリを表す四角形と三角形の集まりです。メッシュ オブジェクトは、ソリッドと同様に、頂点、辺、面から構成されます。メッシュには、標準のプロパティの他に、法線のような独自のプロパティもあります。
メッシュの頂点
メッシュの辺: 隣接する面が 1 つだけの辺を「裸の辺」と呼びます。 それ以外のすべての辺を、「おおわれた辺」と呼びます。
メッシュの面
メッシュの頂点は、単純な点のリストです。メッシュを作成する場合や、メッシュの構造に関する情報を取得する場合、頂点のインデックスは非常に重要です。各頂点には、対応する頂点法線(ベクトル)があります。この頂点法線は、頂点において隣接する面の方向の平均を表すため、メッシュが「内向き」か「外向き」かを判断する場合に役立ちます。
頂点
頂点法線
面は、3 つまたは 4 つの頂点の順番付きリストです。そのため、メッシュ面の「サーフェス」としての表示方法は、インデックス化された頂点の位置によって決まります。メッシュを構成する頂点のリストは既に作成されているため、ここでは個々の点を指定して面を定義するのではなく、頂点のインデックスをそのまま使用します。これにより、複数の面で同じ頂点を使用することができます。
四角形の面は、0、1、2、3 のインデックスから構成されます。
三角形の面は、1、4、2 のインデックスから構成されます。インデックス グループの順序は、変更することができます。ただし、反時計回りに並んでいる必要があります。これにより、面が正しく定義されます。
メッシュ ジオメトリと NURBS ジオメトリとの違いは何でしょうか。どのような場合にどちらのジオメトリを使用したらよいのでしょうか。
前の章で、NURBS サーフェスは 2 つの方向に向かう一連の NURBS 曲線によって定義されるということを説明しました。これらの方向には、U
と V
というラベルが付けられます。これにより、2 次元サーフェスの範囲に応じて、NURBS サーフェスをパラメータ化することができます。曲線自体は、計算式としてコンピュータに格納されます。これにより、生成されるサーフェスを任意の精度で計算することができます。ただし、複数の NURBS サーフェスを結合するのは難しい場合があります。2 つの NURBS サーフェスを結合すると、ポリサーフェスが作成されます。ジオメトリの異なる部分には、異なる UV パラメータと曲線がそれぞれ定義されます。
サーフェス
アイソパラメトリック(Isoparm)曲線
サーフェス制御点
サーフェス制御ポリゴン
パラメトリック点
サーフェス フレーム
メッシュ
裸の辺
メッシュ ネットワーク
メッシュの辺
頂点法線
メッシュ面、メッシュ面の法線
NURBS サーフェスとは異なり、メッシュは、正確に定義された複数の不連続な頂点と面で構成されます。頂点のネットワークは、通常、単純な UV
座標で定義することはできません。面は互いに連続していないため、精度はメッシュ内で定義されます。精度を高めるには、メッシュを変更し、面の数を増やす必要があります。メッシュには数学的な表現方法がないため、1 つのメッシュ内で複雑なジオメトリをより柔軟に処理することができます。
メッシュと NURBS サーフェスのもう一つの重要な違いは、メッシュ内または NURBS ジオメトリ内のローカルの変更が形状全体に与える影響の度合いです。メッシュで 1 つの頂点を移動すると、その頂点に隣接する面だけが影響を受けます。NURBS サーフェスの場合、影響の範囲はより複雑で、サーフェスの次数、制御点のウェイト、制御点のノットによって影響の範囲が異なります。ただし、一般的には、NURBS サーフェスで 1 つの制御点を移動した場合の方が、ジオメトリの変更はより広範囲で滑らかなものになります。
NURBS サーフェスで 1 つの制御点を移動すると、形状全体に影響が及びます。
メッシュ ジオメトリで 1 つの頂点を移動すると、隣接する要素にのみ影響が及びます。
この対比関係は、直線と曲線で構成されるベクター イメージと、個々のピクセルで構成されるラスター イメージとの関係に似ています。ベクター イメージを拡大表示しても曲線はくっきりと表示されるのに対して、ラスター イメージを拡大表示すると個々のピクセルが拡大されて表示されます。つまり、NURBS サーフェスは、数学的に滑らかな関係があるという点でベクター イメージに似ています。一方メッシュは、一定の解像度を持つという点でラスター イメージに似ています。
モデル内でを使用して、オブジェクトを 3 次元の世界で表現できるようにします。曲線は常に平らというわけではありません。つまり、曲線は 3 次元のオブジェクトですが、曲線が定義する空間は必ず 1 次元になります。サーフェスを定義すると、次元をもう 1 つ増やし、別のプロパティの集合を他のモデリング操作で使用できるようになります。
Dynamo のパラメータにサーフェスを読み込んで評価し、どのような情報を抽出できるかを確認します。
Surface.PointAtParameter ノードは、指定された UV 座標における点を返します。
Surface.NormalAtParameter ノードは、指定された UV 座標における法線ベクトルを返します。
Surface.GetIsoline ノードは、U 座標または V 座標におけるアイソパラメトリック曲線を返します。入力が isoDirection であることに注意してください。
下のリンクをクリックして、サンプル ファイルをダウンロードします。
すべてのサンプルファイルの一覧については、付録を参照してください。
サーフェスは、1 つの関数と 2 つのパラメータによって定義される数学的な形状です。曲線を定義する t
ではなく、サーフェスでは U
と V
を使用してパラメータ空間を定義します。そのため、このタイプのジオメトリを使用すると、より多くのジオメトリ データを描画することができます。たとえば、曲線には法線ベクトルと接平面があり、接平面は曲線に沿って回転させることができます。一方、サーフェスの法線ベクトルと接平面は、方向が固定されています。
サーフェス
U アイソカーブ
V アイソカーブ
UV 座標
接平面
法線ベクトル
サーフェスの範囲: サーフェスの範囲は、そのサーフェス上の 3 次元の点を指定する(U,V)パラメータの範囲として定義されます。各次元(U または V)の範囲は、通常 2 つの数値(U の最小値から U の最大値までの数値と、V の最小値から V の最大値までの数値)で表されます。
サーフェスの形状が「長方形」に見えない場合や、サーフェスのローカルのアイソカーブの密度が高い場合や低い場合がありますが、サーフェスの範囲によって定義される「空間」は常に 2 次元になります。Dynamo におけるサーフェスの範囲は、U 方向と V 方向の両方向で、最小値 0.0 から最大値 1.0 までの範囲内で定義する必要があります。ただし、平らなサーフェスやトリム サーフェスについては、範囲が異なる場合があります。
アイソカーブ(アイソパラメトリック曲線): サーフェス上の U 定数値または V 定数値と、対応するもう一方の U 方向または V 方向の値の範囲によって定義される曲線です。
UV 座標: U と V (場合によってはさらに W)を使用して定義される、UV パラメータ空間内の点です。
接平面: 特定の UV 座標において、U アイソカーブと V アイソカーブの両方に接する平面です。
法線ベクトル: 接平面に対して相対的に「上」方向を定義するベクトルです。
NURBS サーフェスは、NURBS 曲線によく似ています。NURBS サーフェスは、2 つの方向に向かう NURBS 曲線のグリッドとして考えることができます。NURBS サーフェスの形状は、制御点の数と、そのサーフェスの U 方向および V 方向の次数によって定義されます。制御点、ウェイト、次元を使用して、形状、法線、接線、曲率などのプロパティを計算する場合にも、同じアルゴリズムが使用されます。
NURBS サーフェスの場合、ジオメトリによって 2 つの方向が暗黙的に定義されます。これは、表示される形状に関係なく、NURBS サーフェスは制御点から構成される長方形のグリッドであるためです。これらの方向は、多くの場合、ワールド座標系に対して任意の方向が相対的に設定されています。このチュートリアルでは、これらの方向を頻繁に使用し、サーフェスに基づいてモデルの解析や他のジオメトリの生成を行います。
Degree (U,V) = (3,3)
Degree (U,V) = (3,1)
Degree (U,V) = (1,2)
Degree (U,V) = (1,1)
ポリサーフェスは、エッジで結合されているサーフェスによって構成されます。ポリサーフェスのトポロジを経由して結合された形状間を移動できるため、ポリサーフェスは 2 次元の UV 定義よりも多くの機能を持っています。
一般的にトポロジとは、パーツの結合や関連についての概念を指しますが、Dynamo におけるトポロジとは、一種のジオメトリでもあります。具体的には、トポロジは、サーフェス、ポリサーフェス、ソリッドの親カテゴリにあたります。
このような方法でサーフェスを結合することにより、複雑な形状を作成したり、継ぎ目の形状の詳細を定義することができます。このように結合されたサーフェスは、パッチと呼ばれる場合もあります。ポリサーフェスのエッジに対して、フィレット操作や面取り操作を簡単に適用することができます。
は、座標と呼ばれる 1 つまたは複数の値によって定義されます。点を定義するために必要な座標値の数は、その点が存在する座標系やコンテキストによって異なります。
Dynamo で使用される最も一般的な種類の点は、3 次元のワールド座標系内に存在します。それらの点には、[X,Y,Z]の 3 つの座標があります(Dynamo の 3D 点)。
Dynamo の 2D 点には 2 つの座標[X,Y]があります。
曲線とサーフェスのパラメータは連続しており、指定されたジオメトリのエッジを超えて拡張されます。パラメータ空間を定義する形状は 3 次元のワールド座標系内に存在しているため、パラメータ座標をいつでも「ワールド」座標に変換することができます。たとえば、サーフェス上の点[0.2, 0.5]は、ワールド座標系の点[1.8, 2.0, 4.1]と同一です。
ワールド XYZ 座標とみなされる座標で表された点
指定された座標系(円柱座標)で表された点
サーフェス上の UV 座標で表された点
下のリンクをクリックして、サンプル ファイルをダウンロードします。
すべてのサンプルファイルの一覧については、付録を参照してください。
ジオメトリがモデルの言語だと仮定すると、点はアルファベットにあたります。点は、点以外のすべてのジオメトリを作成するための基礎になります。たとえば、1 本の曲線を作成するには、少なくとも 2 つの点が必要です。また、1 つのポリゴンまたはメッシュ面を作成するには、少なくとも 3 つの点が必要です。正弦関数を使用して点群の位置、順序、関係を定義すると、円や曲線など、高次元のジオメトリを定義することができます。
関数
x=r*cos(t)
とy=r*sin(t)
を使用する円関数
x=(t)
とy=r*sin(t)
を使用した正弦曲線
点は、2 次元の座標系内にも存在することができます。通常は、使用する空間に応じて異なる文字表記を使用します。この手引では、平面上では[X,Y]を使用し、サーフェス上では[U,V]を使用します。
ユークリッド座標系上の点: [X,Y,Z]
曲線パラメータの座標系上の点: [t]
サーフェス パラメータの座標系上の点: [U,V]
このように、ソリッドのブール演算は、作業時間を節約するための強力な機能です。ソリッドのブール演算には、ジオメトリのどの部分を保持するかを区別する 3 つの操作があります。
これら 3 つの演算に加えて、Dynamo には、さまざまなソリッドの差演算と和演算を実行するための Solid.DifferenceAll ノードと Solid.UnionAll ノードが用意されています。
はポイントのセットで構成され、各ラインには最低 2 つのポイントがあります。Dynamo で線分を作成する最も一般的な方法の 1 つは、Line.ByStartPointEndPoint
を使用して Dynamo で線分を作成することです。
は、曲線やサーフェスを正確に表現するために使用されるモデルです。NURBS 曲線の作成には 2 つ方法があります。それぞれの方法で Dynamo で正弦曲線を作成し、結果を比較してみましょう。
Dynamo のメッシュ機能は、 パッケージをインストールすることによって拡張することができます。Dynamo Mesh Toolkit は、外部ファイル形式からメッシュを読み込む機能、Dynamo のジオメトリ オブジェクトからメッシュを作成する機能、頂点とインデックスからメッシュを手動で作成する機能を提供するライブラリです。
このパッケージの使用例については、「」を参照してください。
ジオメトリは、設計用の言語です。プログラミング言語やプログラミング環境の核心部分でジオメトリ カーネルを使用している場合は、設計ルーチンを自動化し、アルゴリズムを使用して設計の繰り返し部分を生成することにより、正確で安定したモデルを設計することができます。
ジオメトリのタイプとその相互関係を理解すれば、ライブラリ内で使用できるジオメトリ ノードのグループをナビゲートできるようになります。ジオメトリ ノードは、階層別ではなくアルファベット順に整理されています。Dynamo のユーザ インタフェース内のレイアウトに似たイメージで表示されます。
Dynamo でモデルを作成し、[背景プレビュー]でプレビュー表示される内容をグラフ内のデータ フローに接続する作業は、時間の経過に伴ってより直感的に行うことができるようになります。
仮の座標系が色付きのグリッド ラインによってレンダリングされています。
ノードを選択すると、そのノードによってジオメトリが作成される場合は、対応するジオメトリが背景内でハイライト表示されます。
下のリンクをクリックして、サンプル ファイルをダウンロードします。
すべてのサンプルファイルの一覧については、付録を参照してください。
ジオメトリとは、古典的な定義によれば、形状の外形、サイズ、相対的な位置、空間上の特性に関する研究(幾何学)のことです。この分野には、数千年にもおよぶ豊かな歴史があります。コンピュータの出現と普及により、私たちは、ジオメトリの定義、研究、生成を行うための強力な手段を手に入れました。現在では、ジオメトリの複雑な相互作用の結果を簡単に計算できるようになりました。
コンピュータを利用してどれほど多様で複雑なジオメトリを作成できるかということを確かめるには、「Stanford Bunny」という文字列で Web を検索してみてください。「Stanford Bunny」とは、アルゴリズムのテストで使用されている標準モデルのことです。
アルゴリズム、コンピューティング、複雑性という観点からジオメトリを理解するのは、難しそうだと感じるかもしれません。しかし、比較的単純ないくつかの重要な原則を理解すれば、それをベースとしてより高度なケースに適用することができます。
ジオメトリはデータです。コンピュータや Dynamo にとって、Stanford Bunny と数値に大きな違いはありません。
ジオメトリは、抽象化に依存します。基本的に、ジオメトリの要素は、特定の空間座標系内で、数値、関係、計算式によって記述されます。
ジオメトリには階層があります。点が集まって線が構成され、線が集まって面が構成されます。
ジオメトリは、細部と全体の両方を同時に記述します。たとえば曲線が存在する場合、その曲線は曲線の形状を表すと同時に、その曲線を構成する点群も表します。
実際の作業では、複雑なモデルの開発においてさまざまなジオメトリの構成、解体、再構成を柔軟に実行できるように、作業の内容(ジオメトリのタイプやジオメトリの構成など)について理解しておく必要があります。
ここで、ジオメトリの抽象と階層との関係について簡単に説明します。これら 2 つの概念は相互に関係していますが、この関係を最初から明確に理解するのは必ずしも簡単なことではありません。そのため、複雑なワークフローやモデルの開発を開始すると、すぐに理解の壁に直面することがあります。ここでは、入門者向けに次元という概念を使用して、モデリングについて簡単に説明します。1 つの形状を記述するためにいくつの次元が必要になるかを考えると、ジオメトリの階層構成を理解する手がかりになります。
座標によって定義される点には、次元は存在しません。点は、各座標を示す単なる数字に過ぎません。
2 つの点によって定義される線には、1 つの次元が存在します。線の上では、前方(正の方向)または後方(負の方向)に向かって移動することができます。
複数の線によって定義される面には、2 つの次元が存在します。面の上では、前後だけでなく左右に移動することもできます。
複数の面によって定義される直方体には 、3 つの次元が存在します。ボックスの中では、前後左右に加えて、高低の位置関係を定義することができます。
ジオメトリを分類する場合、次元という概念は役に立ちますが、必ずしもそれが最適な概念というわけではありません。なぜなら、点、線、面、直方体だけを使用してモデルを作成することはほとんどないからです。曲線や曲面を使用する場合を考えてみれば、それは明らかです。また、方向、体積、パーツ間の関係などを定義する、完全に抽象的なジオメトリ タイプのまったく異なるカテゴリもあります。ベクトルを実際にこの手でつかむことはできません。では、空間内に見えているものに対してベクトルを定義するにはどうすればいいでしょうか。ジオメトリの階層をさらに細分化すると、抽象的なジオメトリ タイプを「補助的なジオメトリ タイプ」とみなすべきだということがわかります。各タイプは、その機能と、モデル要素の形状を記述するタイプを基準として、グループ化することができます。
Dynamo で作成するモデルは、ノードを使用して生成されるモデルだけではありません。ジオメトリでの作業を次のレベルに進めるには、キーとなる方法がいくつかあります。
Dynamo では、CSV ファイルを使用して点群を読み込んだり、SAT ファイルを読み込んでサーフェスを作成するなど、ファイルを読み込んでさまざまな操作を行うことができます。
Dynamo を Revit と組み合わせると、Revit の要素を参照して Dynamo で使用することができます。
Dynamo Package Manager には、ジオメトリのタイプや操作を拡張するための追加の機能が用意されています。Mesh Toolkit パッケージを確認してください。