Community程式設計與開發github.com

文字轉參數化3D CAD 技能

將自然語言描述、機械調整、緊固件 BOM 請求、爆炸視圖與運動動畫,透過 Fusion 360 MCP 伺服器,轉換為 100% 原生、參數化的 3D CAD 模型與組合件。

文字轉參數化3D CAD 技能 是什麼?

此技能會將口語化的機械描述,轉換為 Autodesk Fusion 360 中的嚴謹參數化 CAD 幾何。它不需要任何 3D 參考檔案或圖片,而是透過結構化的六階段工作流程:前期探測、規格制定、設計選項管理、緊固件 BOM 與爆炸圖產生、動畫合成,以及最終的數學驗證。它能確保幾何完全由草圖、建構平面、使用者參數和特徵(擠出/旋轉/接合)建立,絕不產生網格本體。對於使用 Claude Desktop、Claude Code、Cursor 或 Codex 等智慧型工具的開發者與 CAD 愛好者來說,它是在 Autodesk Fusion 360(透過 MCP 伺服器)中實現快速、參數化建模與迭代的強大橋樑。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Kamish76/To-Fusion-Skill-Sets/tree/HEAD/skills/text-to-fusion

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

文字轉 Fusion 360 純參數化 CAD 技能

當使用者以自然語言描述機械物件、零件、修改、配件托盤、緊固件規格、爆炸組合件或運動動畫,但未提供 3D 參考檔案(.3mf/.stl → 使用 3mf-to-fusion)或視覺媒體(.png/.mp4 → 使用 media-to-fusion)時,請遵循此六階段確定性 CAD 工作流程。

嚴格的 CAD 規範:

  • 使用 Fusion 360 時間軸中原生的草圖、建構平面、使用者參數和擠出/旋轉/接合特徵重建所有幾何。絕不產生原始網格本體(root.meshBodies.add)或網格轉換。
  • 所有程式碼必須在 execute_api_script 內乾淨執行,並使用公分(cm = mm / 10.0)為單位。
  • 始終使用 get_screenshot 視覺驗證每個產生或修改的本體。

第零階段:預檢探測與工作區對齊

  1. 驗證即時 Fusion 360 MCP 工作階段: 透過 fusion-mcp 工具 execute_api_script 執行偵測探測:

    def run(context):
        import adsk.core, adsk.fusion
        app = adsk.core.Application.get()
        if not app or not adsk.fusion.Design.cast(app.activeProduct):
            raise RuntimeError("未開啟作用中的 Fusion 360 設計文件。")
        print("FUSION_MCP_READY")
    

    快速失敗法則: 如果探測失敗,請停止並指示使用者開啟 Autodesk Fusion 360。

  2. 工作區與單一儲存庫路由:

    • 主要儲存庫:作用中的 CAD 單一儲存庫或專案根目錄(CAD_MONOREPO_ROOT 或目前工作區)。
    • 嚴格隔離保證: 絕不在儲存庫根目錄建立暫存檔案、腳本或渲染,也不變更 shared/。
    • 如果開始全新模型,請建立專用資料夾:
      python3 <path_to_skills>/text-to-fusion/scripts/scaffold_text_model.py "<Model_Name>"
      
    • 將模型腳本儲存在 models/<NN>_<Model_Name>/scripts/,視覺渲染儲存在 models/<NN>_<Model_Name>/renders/,中間工作檔案儲存在 models/<NN>_<Model_Name>/workspace/。
    • 從 ../../shared/ 匯入通用 CAD 輔助程式(fusion_client、cad_primitives、hardware_library、scene_animator)。
  3. 領域參考: 在撰寫自訂幾何前,請諮詢本地參考函式庫:

    • references/prompt-to-geometry-patterns.md — 將自然語言轉譯為參數化草圖約束。
    • references/exploded-view-guidelines.md — 爆炸向量、金色導引桿與正交構圖。
    • references/assembly-animation-pipeline.md — Matrix3D 發生次變換動畫與 GIF 編譯。
    • references/variant-management-and-undo.md — 安全 A/B 變體展示與非破壞性隱藏。

第一階段:歧義消除與參數化規格

當使用者以對話方式描述幾何時,請識別並正式化缺失的工程約束:

  1. 外框與關鍵尺寸:
    • 整體邊界框(寬 × 深 × 高,單位 mm)。
    • 最小壁厚(結構件預設 2.0 - 2.5 mm,內部隔板 1.6 mm)。
    • 3D 列印機床限制(例如 220 × 220 × 250 mm)。
  2. 註冊主使用者參數(design.userParameters): 始終將關鍵尺寸暴露為使用者參數,讓使用者可以一鍵重新縮放:
    def set_user_param(design, name, expr_str, units="mm", comment=""):
        existing = design.userParameters.itemByName(name)
        if existing:
            existing.expression = expr_str
            return existing
        return design.userParameters.add(
            name, adsk.core.ValueInput.createByString(expr_str), units, comment
        )
    

第二階段:變體暫存與可逆探索

當使用者要求設計選項(「給我選項 2」、「試試沒有蓋子的版本」)時:

  1. 展示模式:
    • 在專用元件中建立實驗性選項(例如 Sample_Options_Showroom:1)。
    • 將變體在虛擬工作區地面上並排間隔(例如 Y = -350 mm 或 X = -200 mm),並使用獨特外觀(Rack_Desert_Tan、Rack_Matte_White)。
    • 擷取附有標籤的並排概覽螢幕截圖。
  2. 非破壞性採用:
    • 當使用者選定一個方案時,將選中的本體複製到作用中組合件(InSitu_Tier3_Option2)。
    • 透過 bRepBody.isLightBulbOn = False 隱藏被拒絕的展示本體。
    • 絕不在可能破壞下游時間軸參考的物件上呼叫 body.deleteMe()。

第三階段:標準緊固件與硬體 BOM 合成

當使用者要求螺絲、螺母或組裝硬體時:

  1. 硬體標準化:
    • 所有樞軸與結構接合處,預設使用 DIN 7991 M3 埋頭螺絲 和 DIN 934 M3 六角螺母。
  2. 標準容納槽尺寸:
    • 六角螺母容納槽: 對邊距離 (AF) 為 5.70 mm(在 5.50 mm 螺母上增加 +0.20 mm FDM 間隙),深度 2.50 mm。
    • 螺絲孔: 直徑 3.20 mm 通孔,附 90° 錐形埋頭槽(直徑 6.20 mm × 1.80 mm)。
    • 固定墊圈: 3D 列印墊圈(外徑 9.50 mm × 內徑 3.20 mm × 厚度 1.80 mm,90° 埋頭),夾持樞軸凸緣端部,同時保持連桿可自由旋轉。
  3. 模板停放規則:
    • 主硬體模板(Template_DIN_7991_M3x10、Template_DIN_934_M3)必須設定 isLightBulbOn = True。
    • 將模板停放於地下深處(Z = -500.0 cm),使組合件中的子實例保持可見,同時模板完全在畫面外。

第四階段:爆炸圖與技術圖解

當使用者要求說明零件如何組裝時:

  1. 線性爆炸偏移:
    • 將連桿沿主軸向外偏移(+X 方向 35 - 50 mm)。
    • 將結構支架或框架沿 Y 軸向後偏移(+45 - 60 mm)。
    • 將模組化插入件沿 Z 軸向上偏移(+40 - 50 mm)。
  2. 金色對齊導引桿:
    • 擠出細圓柱桿(直徑 1.2 - 1.4 mm),外觀為 Rack_Mustard_Yellow 或 Gold - Polished,貫穿每個螺絲/樞軸接合軸線,從最內側螺絲頭到最外側螺母。
    • 將所有導引桿歸組到專用元件:Opened_Explosion_Guides。
  3. 正交相機設定: 設定 cam.cameraType = OrthographicCameraType,並設定目標邊界範圍,以確保平行軸且無透視失真。

第五階段:高速組合件動畫管線

當使用者要求動畫 GIF 顯示零件組合到位時:

  1. 基於發生次的場景圖骨架綁定:
    • 將每個移動組合件歸入其專用 Occurrence(Anim_Bars、Anim_Stand、Anim_Fasteners)。
    • 請勿在影格迴圈內使用 features.moveFeatures.add()(每次影格會造成約 2.2 秒的時間軸重建)。
    • 直接重新指派 occ.transform = Matrix3D(0.005 秒/影格)。
  2. 多階段交錯平滑步進: 對分階段子組裝區間(t ∈ [0.0, 1.0])套用平滑步進緩動函數 s(τ) = 3τ² - 2τ³:
    • 底座對接:t ∈ [0.00, 0.40]
    • 連桿就位:t ∈ [0.15, 0.60]
    • 固定墊圈就位:t ∈ [0.30, 0.70]
    • 緊固件夾緊:t ∈ [0.40, 0.92]
    • 導引桿淡出:guides_occ.isLightBulbOn = (t < 0.88)
  3. 腳本內批次渲染與乒乓編譯:
    • 直接將影格渲染到磁碟:vp.saveAsImageFile('/tmp/frames/frame_%03d.png', 800, 800)。
    • 使用 PIL.Image 編譯:28 個前向影格 (45ms) → 28 個保持影格組裝 (50ms) → 26 個反向影格 (45ms) → 20 個保持影格爆炸 (50ms)。
    • 使用 128 色自適應調色板與 Floyd-Steinberg 抖色進行量化(約 2.3 MB)。
    • 使用唯一/版本化檔名(例如 _final.gif)以避免瀏覽器聊天圖片快取。

第六階段:數學自我驗證與開發大腦同步

  1. 數學驗證配合邊界:
    • 如果零件出現意外間隙(「看起來落後了」),請檢查世界座標: delta = target_face.x - moving_face.x。
    • 套用精確的數學差值;絕不猜測調整。
  2. 執行總結與記憶同步:
    • 將範圍內的變更提交到作用中 CAD 儲存庫。
    • 如果破解了新的機制、公差規則或 API 問題,請記錄在 references/ 中,並在 CHANGELOG.md 中記錄變更。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相關技能