Dynamo
Primer for v2.0
繁體中文
繁體中文
  • 關於
  • 簡介
    • 什麼是 Dynamo?它如何運作?
    • 手冊使用者指南、Dynamo 社群與平台
  • 安裝 Dynamo
  • 使用者介面
    • 工作區
    • 資源庫
  • 節點和線路
  • 基本節點和概念
    • 節點的索引
    • 用於計算設計的幾何圖形
      • 幾何圖形概述
      • 向量、平面和座標系統
      • 點
      • 曲線
      • 曲面
      • 實體
      • 網格
    • 程式的建置區塊
      • 資料
      • 數學
      • 邏輯
      • 字串
      • 顏色
    • 使用清單設計
      • 什麼是清單
      • 使用清單
      • 清單的清單
      • n 維清單
    • Dynamo 中的字典
      • 什麼是字典
      • 字典節點
      • 程式碼區塊中的字典
      • Revit 使用情況
  • 自訂節點和套件
    • 自訂節點
      • 自訂節點簡介
      • 建立自訂節點
      • 發佈至資源庫
    • 套件
      • 套件簡介
      • 套件案例研究 - Mesh Toolkit
      • 開發套件
      • 發佈套件
      • Zero-Touch 匯入
  • 適用於 Revit 的 Dynamo
    • Revit 連接
    • 選取
    • 編輯
    • 建立
    • 自訂
    • 記錄
  • Dynamo for Civil 3D
    • Civil 3D 連接
    • 入門
    • 節點資源庫
    • 範例工作流程
      • 道路
        • 燈柱放置
      • 面
        • 服務放置
      • 公用程式
        • 更名結構
      • 鐵路
        • 間隙包絡線
      • 測量
        • 點群組管理
    • 進階主題
      • 物件併入
      • Python 和 Civil 3D
    • Dynamo 播放器
    • 有用的套件
    • 資源
  • Dynamo in Forma Beta 版
    • 設定 Forma 中的 Dynamo Player
    • 在 Dynamo Player 中加入和分享圖表
    • 在 Dynamo Player 中執行圖表
    • Dynamo 計算服務與桌面版 Dynamo 的差異
  • 在 Dynamo 中撰寫程式碼
    • 程式碼區塊和 DesignScript
      • 什麼是程式碼區塊
      • DesignScript 語法
      • 速寫
      • 函數
    • 使用 DesignScript 的幾何圖形
      • DesignScript 幾何圖形基礎知識
      • 幾何基本型
      • 向量數學
      • 曲線:內插和控制點
      • 平移、旋轉和其他轉換
      • 曲面:內插、控制點、斷面混成、迴轉
      • 幾何參數化
      • 交集和修剪
      • 幾何布林運算
      • Python 點產生器
    • Python
      • Python 節點
      • Python 和 Revit
      • 設定您自己的 Python 樣板
    • 語言變更
  • 最佳實踐
    • 圖表策略
    • 指令碼撰寫策略
    • 指令碼撰寫參考
    • 管理您的程式
    • 在 Dynamo 中有效率地處理大型資料集
  • 範例工作流程
    • 入門工作流程
      • 參數式花瓶
      • 牽引點
    • 概念索引
  • 開發人員手冊
    • 從原始碼建置 Dynamo
      • 從原始碼建置 DynamoRevit
      • 管理和更新 Dynamo 中的相依性
    • 為 Dynamo 開發
      • 入門
      • Zero-Touch 案例研究 - 網格節點
      • 在 Zero-Touch 節點中執行 Python 指令碼 (C#)
      • 深入瞭解 Zero-Touch
      • 進階 Dynamo 節點自訂
      • 在 Dynamo 套件中使用 COM (互通性) 類型
      • NodeModel 案例研究 - 自訂使用者介面
      • 針對 Dynamo 2.x 更新您的套件和 Dynamo 資源庫
      • 針對 Dynamo 3.x 更新套件與 Dynamo 資料庫
      • 延伸
      • 定義 Dynamo 2.0+ 的自訂套件組織
      • Dynamo 指令行介面
      • Dynamo 整合
      • 為 Dynamo for Revit 開發
      • 發佈套件
      • 從 Visual Studio 建置套件
      • 將延伸當作套件
    • 提取請求
    • 測試預期結果
    • 範例
  • 附錄
    • 常見問題
    • 視覺程式設計和 Dynamo
    • 資源
    • 發行說明
    • 有用的套件
    • 範例檔案
    • 主體程式整合對應表
    • 下載 PDF
    • Dynamo 鍵盤快速鍵
Powered by GitBook
On this page
  • 練習:UV 對映的自訂節點
  • 第 I 部分:以圖表開始
  • 第 II 部分:從圖表到自訂節點
Edit on GitHub
Export as PDF
  1. 自訂節點和套件
  2. 自訂節點

建立自訂節點

Previous自訂節點簡介Next發佈至資源庫

Last updated 1 month ago

Dynamo 提供自訂節點的多種不同建立方法。您可以從頭開始建置自訂節點、從既有圖表建置自訂節點,或使用 C# 明確建置自訂節點。在本節中,我們將討論在 Dynamo 使用者介面內透過既有圖表建置自訂節點。此方法非常適用於清理工作區,以及封裝一系列節點以供在其他位置重複使用。

練習:UV 對映的自訂節點

第 I 部分:以圖表開始

在以下影像中,我們將使用 UV 座標在曲面之間對映點。我們將使用此概念建立對 XY 平面中的曲線進行參考的面板化曲面。在此,我們將建立四邊形面板以進行面板化,但運用相同邏輯,我們可以使用 UV 對映建立多種面板。這是開發自訂節點的好機會,因為我們在此圖表或在其他 Dynamo 工作流程中,可以更輕鬆地重複使用類似程序。

按一下下方的連結下載範例檔案。

附錄中提供範例檔案的完整清單。

  1. Code Block: 使用此行建立範圍介於 -45 到 45 之間的 10 個數字 45..45..#10;

  2. Point.ByCoordinates: 將 Code Block 的輸出連接至「x」與「y」輸入,並將交織設定為交互參考。現在應該已建立點的格線。

  3. Plane.ByOriginNormal: 將 Point 輸出連接至 origin 輸入,以便在每個點處建立平面。將使用預設的法線向量 (0,0,1)。

  4. Rectangle.ByWidthLength: 將上一步中的平面連接至 plane 輸入,並使用 Code Block 以值 10 指定寬度與長度。

現在應該能看到矩形的格線。接下來使用 UV 座標將這些矩形對映到目標曲面。

  1. Polygon.Points: 將上一步中的 Rectangle.ByWidthLength 輸出連接至 polygon 輸入,以擷取每個矩形的角點。這些是將要對映到目標曲面的點。

  2. Rectangle.ByWidthLength: 使用 Code Block 以值 100 指定矩形的長度與寬度。這將是基準曲面的邊界。

  3. Surface.ByPatch: 將上一步中的 Rectangle.ByWidthLength 連接至 closedCurve 輸入,以建立基準曲面。

  4. Surface.UVParameterAtPoint: 連接 Polygon.Points 節點的 Point 輸出與 Surface.ByPatch 節點的 Surface 輸出,以傳回每個點處的 UV 參數。

現在,我們已建立基準曲面與一組 UV 座標,可以匯入目標曲面並在曲面之間對映點。

  1. File Path: 選取要匯入的曲面的檔案路徑。檔案類型應是 .SAT。按一下 「瀏覽...」 按鈕,導覽至上面所下載 .zip 檔案中的 UVmapping_srf.sat 檔案。

  2. Geometry.ImportFromSAT: 連接檔案路徑以匯入曲面。您在幾何圖形預覽中應該能看到匯入的曲面。

  3. UV: 將 UV 參數輸出連接至 UV.U 與 UV.V 節點。

  4. Surface.PointAtParameter: 連接匯入的曲面以及 u 與 v 座標。現在,您應該能看到目標曲面上 3D 點的格線。

最後一步是使用 3D 點來建構矩形曲面修補。

  1. PolyCurve.ByPoints: 連接曲面上的點以建構通過這些點的 PolyCurve。

  2. Boolean: 在工作區中加入 Boolean ,將其連接至 connectLastToFirst 輸入,並切換至「True」以封閉 polycurve。現在,您應該能看到對映到曲面的矩形。

  3. Surface.ByPatch: 將 polycurve 連接至 closedCurve 輸入,以建構曲面修補。

第 II 部分:從圖表到自訂節點

現在選取要巢狀插入至自訂節點的節點,同時考慮希望採用的節點輸入與輸出。我們希望自訂節點盡可能靈活,因此該自訂節點應該能對映任何多邊形,而不僅僅是矩形。

選取以下節點 (從 Polygon.Points 開始),在工作區上按一下右鍵,然後選取「建立自訂節點」。

在「自訂節點性質」對話方塊中,指定自訂節點的名稱、描述及品類。

  1. 名稱:MapPolygonsToSurface

  2. 描述:將多邊形從基礎曲面對映至目標曲面

  3. 附加元件品類:Geometry.Curve

自訂節點已顯著清理工作區。請注意,已根據原始節點命名輸入與輸出。接下來編輯自訂節點,以便讓名稱更具描述性。

按兩下「自訂節點」以對其進行編輯。這將開啟工作區,並以黃色背景表示節點內部。

  1. Input: 將輸入名稱變更為 baseSurface 與 targetSurface。

  2. Output: 為對映的多邊形加入其他輸出。

儲存自訂節點,然後返回首頁工作區。請注意 MapPolygonsToSurface 節點反映我們剛剛所做的變更。

我們也可以在自訂註解中加入內容,以提高自訂節點的堅實性。註解有助於提示輸入與輸出類型,或說明節點的功能。使用者將游標懸停在自訂節點的輸入或輸出上方時,將顯示註釋。

按兩下「自訂節點」以對其進行編輯。這會重新開啟黃色背景工作區。

  1. 開始編輯 Input Code Block。若要開始註解,請在註解文字之前鍵入「//」。鍵入有助於說明節點的任何內容 - 在此我們將描述 targetSurface。

  2. 接下來還要設定輸入類型等於某個值,以設定 inputSurface 的預設值。在此,我們將預設值設定為原始 Surface.ByPatch 設定。

也可以將註解套用到 Output。

編輯 Output Code Block 中的文字。在註解文字前鍵入「//」。在此,我們將加入更深入的描述,以說明 Polygons 與 surfacePatches 輸出。

  1. 將游標懸停在自訂節點輸入上方可查看註解。

  2. 設定 inputSurface 的預設值後,我們也可以執行定義,而不提供曲面輸入。

接下來先建立我們希望巢狀插入到自訂節點中的圖表。在此範例中,我們將建立使用 UV 座標將多邊形從基準曲面對映至目標曲面的圖表。我們會經常使用此 UV 對映程序,因此該程序是建立自訂節點的良好備用程序。如需曲面和 UV 空間的更多資訊,請參閱頁面。從上面下載的 .zip 檔案中,完整的圖表為 UVmapping_Custom-Node.dyn。

曲面
5KB
UV-CustomNode.zip
archive