suggested exercise
建立參數式花瓶是一個開始學習 Dynamo 的絕佳方式。
此工作流程將教您如何:
使用數字滑棒控制設計中的變數。
使用節點建立和修改幾何元素。
即時視覺化設計結果。
在使用 Dynamo 之前,我們先從概念上設計花瓶。
假設我們現在要設計一個黏土花瓶,就要考慮陶藝家所使用的作法。陶藝家通常使用拉坯機來製作圓柱形花瓶。然後藉由對花瓶的不同高度施加壓力,就可以改變花瓶的造型,創作出各種設計。
我們使用類似的方法定義花瓶。我們將在不同的高度和半徑建立 4 個圓,然後透過斷面混成這些圓來建立曲面。
按一下下方的連結下載範例檔案。
附錄中提供完整的範例檔案清單。
我們需要一些節點來展示 Dynamo 將執行的動作序列。我們知道要嘗試建立圓形,所以先找出執行該作業的節點。使用搜尋欄位或瀏覽 Library 以尋找 Circle.ByCenterPointRadius 節點,並將其加入工作區
搜尋 >「Circle...」
選取 >「ByCenterPointRadius」
節點將顯示在工作區中
我們來詳細瞭解這個節點。在左側,您有節點的輸入 (centerPoint 和 radius),在右側,您有節點的輸出 (Circle)。請注意,輸出有一條淺藍線。這表示輸入有預設值。若要取得有關輸入的更多資訊,請將游標懸停在輸入名稱上。radius 輸入需要一個 double (雙精確度) 輸入,且預設值為 1。
我們將保留 centerPoint 的預設值,但加入一個數字滑棒控制半徑。與使用 Circle.ByCenterPointRadius 節點時一樣,使用資源庫搜尋 Number Slider,並將其加入圖表。
此節點與我們先前的節點稍有不同,因為它包含滑棒。您可以使用介面變更滑棒的輸出值。
您可以使用節點左側的下拉式按鈕規劃滑棒。我們將滑棒限制最大值為 15。
我們將其放在 Circle.ByCenterPointRadius 節點的左側,選取 Number Slider 的輸出並連接到 Radius 輸入,以連接兩個節點。
我們按兩下節點的名稱,將「Number Slider」名稱變更為「Top Radius」。
我們繼續在邏輯中增加一些節點和連接以定義花瓶。
我們複製這些節點 4 次,讓這些圓定義曲面,變更 Number Slider 的名稱,如下圖所示。
圓是由一個中心點和一個半徑產生
我們缺少花瓶的關鍵參數,也就是花瓶的高度。為了控制花瓶的高度,我們要建立另一個數字滑棒。我們也加入一個 Code Block 節點。程式碼區塊可協助將個人化的程式碼片段加入我們的工作流程。我們將使用程式碼區塊讓高度滑棒乘以不同係數,以便我們可以沿花瓶高度放置圓。
然後,我們使用 Geometry.Translate 節點,將圓放在所需的高度。由於我們要將圓分佈到花瓶中,因此我們使用程式碼區塊將高度參數乘以一個係數。
2.圓在 Z 軸中會依變數平移 (移動)。
為了使用 Surface.ByLoft 節點建立曲面,我們需要將所有平移的圓合併為一個清單。我們使用 List.Create 將所有圓合併為一個清單,最後將此清單輸出到 Surface.ByLoft 節點以檢視結果。
我們也關閉其他節點中的預覽,只顯示 Surface.ByLoft 的畫面。
3.曲面是透過斷面混成平移的圓建立而成。
我們的工作流程已經準備好!我們現在可以使用腳本中定義的數字滑棒產生不同的花瓶設計。
The following list can be used to locate concepts introduced in the sample workflows.
練習清單 | 練習中引入的重要概念 | 連結至後面章節進一步閱讀 |
---|---|---|
本節提供簡單的工作流程,可協助您開始使用 Dynamo。
本節將探索一系列工作流程,引導您使用 Dynamo。
可以使用以下範例工作流程:
入門工作流程
您也可以使用找出工作流程中引入的概念
參數式花瓶
在資源庫中搜尋節點
使用節點和線路
建立曲線和曲面
使用程式碼區塊
牽引點
建立管理和編輯清單
變更預覽模式
變更執行模式
牽引點非常適合用於實驗幾何圖形樣式,可用於根據物件的距離建立物件的逐步變化。
此工作流程將教您如何:
建立、管理和編輯清單。
使用直接操控在 3D 預覽中移動點。
變更執行模式。
在本練習中,我們希望建立圓 (目標),其半徑輸入由距附近點的距離定義 (關係)。
定義距離式關係的點通常稱為「牽引點」。 在此,距牽引點的距離將用於指定圓的大小。
按一下下方的連結下載範例檔案。
附錄中提供範例檔案的完整清單。
現在,我們繪製了目標與關係,可以開始建立圖表。我們需要節點展示 Dynamo 將執行的動作序列。我們先加入以下節點:Number、Number Slider、Point.ByCoordinates、Geometry.DistanceTo、Circle.ByCenterPointRadius。
Input > Basic > Number
Input > Basic > Number Slider
Geometry > Points > Point > By Coordinates(x,y,z)
Geometry > Modifiers > Geometry > DistanceTo
Geometry > Curves > Circle > ByCenterPointRadius
現在,我們已建立一些節點,需要使用線路連接這些節點的埠。這些連接將定義資料的流動。
Number 到 Point.ByCoordinates
Number Sliders 到 Point.ByCoordinates
Point.ByCoordinates (2) 到 DistanceTo
Point.ByCoordinates 和 DistanceTo 到 Circle.ByCenterPointRadius
定義程式流動後,只需告知 Dynamo 執行該程式即可。執行程式 (自動執行或在手動模式中按一下「執行」) 後,資料將通過線路,我們應該會在 3D 預覽中看到結果。
(按一下「執行」) - 如果執行列處於手動模式,我們需要按一下「執行」,以執行圖表
節點預覽 - 將滑鼠懸停於節點右下角的方塊上,將為您提供結果的快顯資訊
3D 預覽 - 如果任何節點建立幾何圖形,我們會在 3D 預覽中看到。
建立節點上的輸出幾何圖形。
如果程式能運作,我們會在 3D 預覽中看到通過牽引點的圓。這很好,但我們可能需要加入更多詳圖或更多控制項。接下來調整圓節點的輸入,以便可以校正對半徑的影響。在工作區加入另一個 Number Slider,然後按兩下工作區的空白區域加入一個 Code Block 節點。在 Code Block 中編輯欄位,指定 X/Y
。
Code Block
DistanceTo 和 Number Slider 到 Code Block
Code Block 到 Circle.ByCenterPointRadius
從簡易的內容開始,然後提高複雜性,這是逐步開發程式的有效方式。在建立一個圓後,接下來我們應用程式的強大功能建立多個圓。現在,如果我們使用一個網格的點而不是使用一個中心點,然後在產生的資料結構中配合變更,程式現在會建立多個圓,其中每個圓都具有由距牽引點的校正距離定義的唯一半徑值。
加入 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 值將根據手動移動的點而即時更新。
請注意,在直接操控之前,只有一個滑棒插入 Point.ByCoordinates 的分量中。在 X 方向手動移動點時,Dynamo 會為 X 輸入自動產生新的 Number Slider。