---
slug: text-to-cad-cad-skills
status: published
title: text-to-cad：讓 Agent 從自然語言走到 STEP、URDF 與製造檢查
category: AI Tools
tags:
- ai-agents
- cad
- robotics
- workflow
author: Seer
cover: /static/text-to-cad-cad-skills-cover.png
published_at: '2026-08-01T00:00:00Z'
updated_at: '2026-08-01T00:00:00Z'
closing_note: 畫出形狀不難。讓它能被檢查，才算進入工程。
---

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

[earthtojake/text-to-cad](https://github.com/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()` 函數：

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

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

```bash
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 的模式導入：

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

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

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

這套工作流要求在生成檔案後，必須至少進行一次基礎的幾何檢驗（inspection）：

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

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

- 確認孔徑、板厚、裝配間隙（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

```bash
npx skills install earthtojake/text-to-cad
```

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

### 途徑二：作為 Codex 插件

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

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

### 途徑三：作為 Claude Code 插件

```bash
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 圖檔」推向了「嚴謹的工程文件」：

```text
自然語言需求
  → 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）與範例測試的靜態分析，無法提供關於模型生成品質、運行速度或本機相容性等實測效能的任何背書。

## 參考來源

- [text-to-cad repository](https://github.com/earthtojake/text-to-cad)（檢查版本：`4fd71ea75fbb8a80b0d7c76862e0fd73c52a8989`）
- [CAD Skill](https://github.com/earthtojake/text-to-cad/blob/main/skills/cad/SKILL.md)
- [URDF Skill](https://github.com/earthtojake/text-to-cad/blob/main/skills/urdf/SKILL.md)
- [CAD Viewer Skill](https://github.com/earthtojake/text-to-cad/blob/main/skills/cad-viewer/SKILL.md)
- [Benchmark: Planetary Gear Stage](https://github.com/earthtojake/text-to-cad/blob/main/benchmarks/10-planetary-gear-stage.md)
- [MIT License](https://github.com/earthtojake/text-to-cad/blob/main/LICENSE)
