作業を開始する
ここまでは、インタフェースのレイアウトとワークスペースのナビゲートについて見てきました。ここからは、Dynamo でグラフを作成するための一般的なワークフローについて見ていきましょう。最初に、動的にサイズを変更できる円を作成してから、さまざまな半径を持つ円の配列を作成します。
目的と関係を定義する
オブジェクトを Dynamo ワークスペースに追加する前に、作業の目的と、どのような関係が重要であるかを理解しておく必要があります。2 つのノードを接続すると、それらのノード間に明示的なリンクが作成されます。データのフローは後で変更できますが、ノードを一度接続すると、そのノード間の関係が確定します。この演習では円を作成し、近接する点までの距離により、円の半径の入力値を定義します。この場合、円を作成することが「目的」で、近接する点までの距離が「関係」になります。
距離ベースの関係を定義する点は、通常「アトラクタ」と呼ばれます。ここでは、アトラクタ点までの距離を使用して、円の大きさを指定します。
ワークスペースにノードを追加する
目的と関係を確認したところで、グラフの作成を開始します。グラフを作成するには、Dynamo が実行するアクションの順番を表すノードが必要になります。ここでは円を作成することになるため、最初に、円を作成するノードを探しましょう。[検索]フィールドを使用するかライブラリを参照すると、複数の方法で円を作成できることがわかります。
- [Geometry] > [Curves] > [Circle] > [Circle.ByPointRadius]に移動します。
- [検索]フィールドで「ByCenterPointRadius...」と入力します。
ライブラリで Circle.ByPointRadius ノードをクリックして、このノードをワークスペースの中心に追加します。
- ライブラリ内の Circle.ByPointandRadius ノード
- ライブラリで上記のノードをクリックして、このノードをワークスペースに追加します。
さらに、Point.ByCoordinates ノード、Number Input ノード、Number Slider ノードも必要になります。
- [Geometry] > [Points] > [Point] > [Point.ByCoordinates]を選択します。
- [Geometry] > [Geometry] > [DistanceTo]を選択します。
- [Input] > [Basic] > [Number]を選択します。
- [Input] > [Basic] > [Number Slider]を選択します。
ノードをワイヤで接続する
ノードを追加したら、そのノードのポートをワイヤで接続する必要があります。この接続により、データのフローが定義されます。
- Number ノードを Point.ByCoordinates ノードに接続します。
- Number Sliders ノードを Point.ByCoordinates ノードに接続します。
- Point.ByCoordinates (2)ノードを DistanceTo ノードに接続します。
- Point.ByCoordinates ノードと DistanceTo ノードを Circle.ByCenterPointRadius ノードに接続します。
プログラムを実行する
プログラム フローの定義が完了したら、後はプログラム フローの実行を Dynamo に対して指示するだけです。プログラムを実行すると、自動的に実行したか手動モードで[実行]をクリックして実行したかに関係なく、データがワイヤ経由で送信され、結果が 3D プレビューに表示されます。
- [実行]をクリック - 実行バーが手動モードになっている場合は、[実行]をクリックしてグラフを実行する必要があります。
- ノードのプレビュー - ノードの右下隅にあるボックス上にカーソルを合わせると、ポップアップに結果が表示されます。
- 3D プレビュー - ノードを使用してジオメトリを作成した場合は、そのジオメトリが 3D プレビューに表示されます。
- 作成ノードに関する出力ジオメトリが表示されます。
詳細を追加する
プログラムが稼働している場合、アトラクタ点を通過する円が 3D プレビューに表示されます。この状態で、さらに詳細やコントロールを追加することができます。ここでは、半径に対する影響を調整できるように、Circle ノードの入力を調整しましょう。別の Number Slider ノードをワークスペースに追加してから、ワークスペースの空白領域をダブルクリックして Code Block ノードを追加します。 次に、Code Block ノードのフィールドで「X/Y
」を指定します。
- Code Block ノード
- DistanceTo ノードと Number Slider ノードを Code Block ノードに接続します。
- Code Block ノードを Circle.ByCenterPointRadius ノードに接続します。
複雑なプログラムにする
単純なプログラムを作成して次第に複雑なものにしていく方法は、プログラムを段階的に開発するための効果的な方法です。1 つの円で機能するプログラムを作成したら、複数の円でも機能するようにプログラムの性能を拡張してみましょう。1 つの中心点の代わりに点のグリッドを使用し、生成されるデータ構造の変更を適用すると、プログラムによって多くの円が作成されます。各円の半径の値は、アトラクタ点までの調整された距離によって定義されたユニークな値になります。
- Number Sequence ノードを追加して Point.ByCoordinates ノードの入力を置き換え、Point.ByCoordinates ノードを右クリックして[レーシング] > [直積]を選択します。
- Point.ByCoordinates ノードの後に Flatten ノードを追加します。リストを完全にフラット化するには、
amt
入力を既定の-1
のままにします。- 3D プレビューが円のグリッドによって更新されます。
直接操作で値を調整する
場合によっては、数値を操作しない方がいいことがあります。このような場合、背景の 3D プレビューをナビゲートする際に、点ジオメトリを手動で操作することができます。また、点によって作成された他のジオメトリをコントロールすることもできます。たとえば、Sphere.ByCenterPointRadius ノードの場合、直接操作を行うこともできます。 点の位置は、Point.ByCoordinates ノードで X、Y、Z の値を使用してコントロールすることができます。 ただし、直接操作の場合、3D プレビュー ナビゲーション モードで点を手動で移動することにより、スライダの値を更新することができます。 この方法により、点の場所を識別する個別の値セットを直感的にコントロールすることができます。
- 直接操作を使用するには、移動する点のパネルを選択します。選択した点の上に矢印が表示されます。
- 3D プレビュー ナビゲーション モードに切り替えます。
- 点の上にカーソルを合わせると、X 軸、Y 軸、Z 軸が表示されます。
- 色付きの矢印をクリックして対応する軸にドラッグすると、手動で移動した点に合わせて Number Slider ノードの値が更新されます。
- 直接操作を実行する前は、1 つのスライダだけが Point.ByCoordinates コンポーネントに接続されていたことに注意してください。 点を X 方向に手動で移動すると、X 入力用として新しい Number Slider ノードが自動的に生成されます。