051

text-to-cad:讓 Agent 從自然語言走到 STEP、URDF 與製造檢查

text-to-cad:讓 Agent 從自然語言走到 STEP、URDF 與製造檢查 封面圖

Seer

2026-08-01

很多人看到 text-to-cad 這個專案,直覺反應大概是:這是不是又一個能把文字直接轉成 3D 模型的 AI?但實際看過目前的 repository 後,會發現答案並非如此。

earthtojake/text-to-cad 目前的定位,其實是一套專為 CAD、機器人與硬體設計 Agent 打造的 skills library(技能庫)。它著重於將自然語言需求與本地的 CAD 原始碼、STEP 輸出、實體檢驗、URDF/SDF/SRDF、G-code 以及製造前置檢查等流程串接起來,而非只追求生出一個「看起來像」的 3D 網格模型。

截至 2026-07-31,專案 main 分支的檢查版本為 0.3.13,commit 雜湊為 4fd71ea75fbb8a80b0d7c76862e0fd73c52a8989,採用 MIT License 授權。

核心價值:重構 CAD 工作流,而非單純的模型生成

README 將這套 library 定位為:一套能從本地專案檔案生成、檢查、尋找、切片,並交付 CAD 與機器人描述 artifacts 的工具箱。

目前 repo 列出的 skills 相當完整:

  • CAD:根據自然語言或圖片需求,建立與修改參數化 CAD。以 STEP 為主要輸出,同時支援生成 STL、3MF 與 GLB。
  • CAD Viewer:在本地瀏覽器直接預覽 CAD、G-code 以及機器人描述檔。
  • step.parts:尋找螺絲、軸承、馬達與連接器等標準 STEP 零件。
  • DXF:生成 2D 輪廓(profile)、墊片(gasket)、模板(template)與切割排版(cut layout)。
  • URDF / SRDF / SDF:分別處理機器人運動學結構、MoveIt2 語意群組,以及物理模擬器的模型與 world 場景。
  • SendCutSend:在上傳 DXF/STEP 到該金屬加工服務前,先行做前置的製造規範檢查。
  • G-code / Bambu Labs:將支援的網格模型切片,產生驗證過的 FDM G-code,並對接至本地 3D 印表機工作流。
  • Implicit CAD:利用 GLSL signed-distance field 在瀏覽器原生渲染隱式 CAD,目前仍標記為實驗性(experimental)。

從這份清單可以看出,它的功能範圍遠比單純的 text-to-3D 模型廣泛,更像是一個「硬體 Agent 的整合工作台」:先理解人類意圖,進而建立可修改的原始碼,輸出實體 CAD 檔案,最後完成檢查與交付。

CAD Skill 的主線:以程式碼為源頭,STEP 為本位

此專案在架構上做了一個非常務實的選擇:將業界標準的 STEP 檔視為最核心的 CAD 產出,而 STL、3MF 或網頁用的 GLB 則放在輔助輸出的次要位置。

無論是從零設計還是修改現有模型,其標準工作流都是使用 Python 配合 build123d 庫來撰寫原始碼,並定義一個 gen_step() 函數:

def gen_step():
    # 建立參數化的 build123d shape 或 labeled assembly
    return shape

接著透過專案自備的腳本啟動器來輸出 STEP 檔案:

python scripts/step path/to/part.py
python scripts/step path/to/part.py -o path/to/custom.step

這裡有一個實務開發上需要特別注意的規範:gen_step() 函數本身只負責回傳幾何物件,不該將輸出路徑寫死在程式碼內部,路徑應由外部 CLI 負責指定。此外,如果是複雜的組合件(assembly),原始碼中必須保留各零件標籤(part label)、局部座標系(local frame)、配合基準(mating datum)以及組裝約束關係,而不是直接融合成一個失去結構層級的單一複合實體(compound)。

要是面對沒有原始生成腳本的外部 STEP 檔案,則改用 direct import 的模式導入:

python scripts/step --kind part path/to/imported.step

每次執行 scripts/step 時,系統也會同步產生 CAD Viewer 所需的相鄰 GLB 檔與拓撲結構數據。這些並非僅供展示的預覽檔,而是本地幾何檢查流程不可或缺的資料來源。

「生成成功」不等於「模型正確」

這套工作流要求在生成檔案後,必須至少進行一次基礎的幾何檢驗(inspection):

python scripts/inspect refs path/to/model.step \
  --facts --planes --positioning

這項操作會解析並確認模型的關鍵尺寸、標籤、主平面以及定位基準。接著,開發者可根據設計意圖,靈活套用額外的 measurealignframediff 工具來做細部交叉比對:

  • 確認孔徑、板厚、裝配間隙(clearance)等尺寸是否合乎設計目標;
  • 檢查組合件的貼合面是否對齊(flush)或居中(centered);
  • 確認各組件(occurrence)的世界座標系是否設定正確;
  • 比對修改前後的幾何差異,避免意外破壞無關的特徵(geometry)。

除了程式自動化的幾何特徵檢驗,CAD skill 也強調對主要的 STEP 模型進行快照視覺評估(snapshot review)。這點非常切中要害:固定的幾何規則檢查只能驗證你寫好的邊界,但很多時候「數值完全合規,幾何語意卻錯了」的邏輯 Bug,往往只有透過視覺外觀的雙重確認才抓得出來。

這同時說明了專案的邊界:它並沒有把 AI 生成的 CAD 包裝成萬能的工程保證。官方規則中明確提到,這套流程並不能用來宣稱結構安全(structural safety)、工藝認證(process certification)、公差合規(tolerance compliance)或保證完整的可製造性(manufacturability)。

從幾何零件延伸到機器人運動學描述

這套專案將 CAD 設計與機器人描述檔(robot description)的工作流整合在一起。

以 URDF skill 來說,它的設計哲學並非單純拼湊 XML 標記,而是將其視為一套受物理規則約束的運動學模型(kinematic model)。因此在實作時,必須嚴謹定義並處理:

  • 各關節座標系(frame placement)的精確定位;
  • 關節起點(joint origin)與旋轉/移動軸向(axis);
  • 外觀網格(visual)、碰撞邊界(collision)與慣性張量(inertial)的分工;
  • 網格縮放比例(mesh scale)與物理單位;
  • 關節限位(joint limits);
  • 幾何與參考坐標的關聯。

整個 URDF 的生成依舊遵循 Python 優先原則,以 gen_urdf() 程式碼作為單一事實來源,再透過 launcher 編譯出 .urdf 檔案。這套生成器預設會在建置時進行即時驗證(generation-time validation),省去了額外執行獨立驗證命令的麻煩。

此外,針對 MoveIt2 或物理模擬器的整合需求,SRDF 與 SDF 技能則分別補足了規劃群組(planning groups)、末端效應器(end effectors)、碰撞規則(collision rules),以及模擬器所需的座標系、物理性質、感測器與光源配置。這讓 Agent 能做的事不再只是「畫一個零件」,職責也能直接延伸到機器人運動學與環境模擬的生命週期。

安裝途徑:Skills CLI 與開發工具外掛

在專案 README 中,官方提供了三種將技能庫導入 Agent 的管道。

途徑一:使用 Skills CLI

npx skills install earthtojake/text-to-cad

這是官方推薦的首選安裝方式,會自動將各個獨立的 skills 安裝到受支援的 Agent 當中。

途徑二:作為 Codex 插件

codex plugin marketplace add earthtojake/text-to-cad
codex plugin add cad@text-to-cad

這裡需要注意,這種直接從 repository 根目錄安裝插件的模式,要求 Codex 版本必須在 0.142.0(含)以上,若使用舊版本可能會有被靜默跳過、無法成功加載的問題。

途徑三:作為 Claude Code 插件

claude plugin marketplace add earthtojake/text-to-cad
claude plugin install cad@text-to-cad

目前專案庫中已包含 .claude-plugin/plugin.json.codex-plugin/plugin.json 描述檔,版本皆對應為 0.3.13。如果在安裝完成後發現 Agent 未能順利載入新技能,README 建議可以嘗試重啟 Agent。

(註:以上指令均為 repo 官方文檔所列的安裝指引。本輪評估僅進行靜態程式碼走讀與文件審查,並未在本地實際執行安裝或啟動任何插件。)

後端製造流程的對接

在實務中,3D 模型畫好之後,最容易出包的往往是與製造端的檔案交接。這套專案對此提供了實用的過濾機制:

  • dxf 技能:能將 2D 輪廓、板材、墊片或切割排版匯出成 DXF 檔,並自動校驗是否有未閉合的幾何邊界(closed contours)、檢查圖面範圍(drawing extents)以及統計圖元(entity)數量。
  • sendcutsend 技能:能根據使用者選用的金屬加工服務、特定材質與厚度,檢驗 DXF/STEP 檔案是否合乎代工廠的加工約束。不過它很有分寸,並不會在缺乏具體訂單情境的情況下,就擅自將檔案標記為「可直接上傳生產」。
  • gcode 技能:會調用本地的切片軟體輸出純文字的 .gcode,並在背景審查噴嘴與熱床溫度、移動軌跡、擠出量、XYZ 極限邊界(bounds),並對未知的指令發出警示。
  • bambu-labs 技能:負責處理本地拓竹(Bambu Lab)3D 印表機的模擬運行(dry-run)、檔案上傳與安全的開工啟動流程。

這一層設計的價值並不在於讓 AI 幫你扛起工廠加工失敗的責任,而是透過「檔案導出 → 自動化檢驗 → 安全交付」這套可重複的標準動作,大幅降低我們將錯誤的檔案直接送進雷切機或 3D 印表機的機率。

目前 Benchmarks 評測的範疇

專案內建了 10 個基準測試 prompt,測試範疇涵蓋基本幾何體到多組件裝配,具體包含:

  • 帶有四個孔洞的矩形校準塊(rectangular calibration block);
  • 圓形法蘭與螺栓孔陣列(circular flange & bolt-hole pattern);
  • 帶加強肋的 L 型支架(L-bracket with gusset);
  • 帶鍵槽的階梯軸(stepped shaft with keyway);
  • 電子外殼(electronics enclosure);
  • 雙耳支架(clevis bracket);
  • 星型發動機風格氣缸(radial-engine-style cylinder);
  • 離心葉輪(centrifugal impeller);
  • 螺旋樓梯(spiral staircase);
  • 簡化版行星齒輪組(simplified planetary gear stage)。

這些 benchmark 主要目的在於展示提示詞(prompt)的撰寫架構、預期的幾何拓撲結構與視覺輸出效果,並不等同於工程精度、結構強度或製造合規的驗證。例如其中的行星齒輪組測試,幾何邊界明確聲明使用簡化的梯形齒(trapezoidal teeth),而非符合工業傳動規範的漸開線齒形(involute teeth)。讀者切勿直接將這些 demo 模型拿去下料加工或用於實際受力的產品設計中。

這套專案適合誰?

我認為以下三類背景的人會對它感興趣:

  1. 想將 coding Agent 引入實體設計工作流的開發者:能以自然語言作為設計起點,但最終產出是高可讀性、可版本控制的 Python build123d 原始碼以及標準的 STEP 檔案。
  2. 機器人學與模擬環境開發者:這套技能庫一站式解決了從 CAD 幾何、URDF 運動學、SRDF 語意規劃、SDF 物理場景到 Viewer 視覺交付的繁瑣對接。
  3. 希望自動化設計至製造(Design-to-Manufacture)橋梁的人:針對 DXF 排版、SendCutSend 加工干涉、G-code 切片參數與 Bambu Lab 上傳,都提供了清晰的自動化檢查邊界。

相反地,如果你期待的是那種「按下一鍵、自動畫出完美產品並取代專業 CAD 工程師」的魔法,那這套專案可能會讓你失望。它底層的 workflow 反而處處在強調幾何原始碼(source)、具名參數(named parameters)、幾何校驗(geometry checks)、快照視覺審查(snapshot review)以及明確的工程邊界假設。

個人觀點:比起「生成」,「可驗證性」才是 text-to-cad 的真正亮點

這個專案最值得關注的地方,不在於它的名字取得有多響亮,而是它切實地將 AI Agent 的輸出,從「好看的 3D 圖檔」推向了「嚴謹的工程文件」:

自然語言需求
  → CAD 設計簡介(brief)/ 參數設定與工程假設
  → build123d Python 原始碼
  → STEP / URDF / DXF 等實體與運動學 artifacts
  → 幾何幾何特徵提取(facts) / 尺寸測量(measure) / 對齊(align) / 快照視覺評估(snapshot)
  → 本地 Viewer 審查
  → 轉入製造切片或模擬環境前置交付

過往 AI 輔助 CAD 設計最常被人詬病的,就是生出一個看似精緻的模型,卻沒人能確保它的物理尺寸、幾何拓撲、裝配座標與下游加工格式是正確的。text-to-cad 的解法相對務實:讓 Agent 撰寫具備高度可修改性的原始碼,再藉由配套工具鏈將幾何檢驗與交接步驟規範化,成為工作流中不可或缺的防錯網。

最後做個說明:本輪評估僅針對該 GitHub repository 進行靜態文件與代碼結構走讀,過程中並未實際安裝 skills 庫、執行 CAD 幾何生成器、輸出 STEP 檔案、執行基準測試(benchmarks),亦未啟動任何本地 CAD 預覽器。因此,本文所有結論均基於專案公開文件、SKILL 規範、外掛元數據(metadata)與範例測試的靜態分析,無法提供關於模型生成品質、運行速度或本機相容性等實測效能的任何背書。

參考來源

畫出形狀不難。讓它能被檢查,才算進入工程。

Visits

--

Waiting for Cloudflare metrics.