Shpigford/nurb
Agentic CAD for 3D printing
nurb – 面向 3D 列印的 AI 驅動 CAD 合作夥伴
是什麼 – nurb 是一個基於 Python 的工具(附帶原生 macOS GUI),讓您與已訂閱的大語言模型(LLM)對話,由其生成可用於 FDM 3D 列印的真實 B-Rep CAD 幾何。AI 會撰寫一個帶有 @part 裝飾器的小型 Python 函數來描述零件;nurb 在 Open CASCADE (OCCT) 內核上執行該程式碼,檢查生成的實體是否符合一組列印可行性規則,即時在 three.js 查看器中顯示模型,並可匯出包含切片器設定的列印就緒 3MF(或 STL/STEP/GLB)。
核心理念
| 方面 | 如何運作(如 README 所述) |
|---|---|
| 提示 → 模型 | 您輸入自然語言請求(例如:「製作一個將我的吸塵器軟管連接到台鋸塵口的轉接器」)。AI 使用您現有的訂閱(GPT-4、Claude 等)撰寫一個帶有 @part 裝飾器的 Python 函數。 |
| 真實 CAD 內核 | 生成的函數使用 build123d 在 OCCT 內核上運作,因此幾何體是真正的 B-Rep 實體(而非網格)。 |
| 即時查看器 | 內建的 three.js 查看器會隨著零件變動即時更新,保持相機固定,並可使用截面平面進行切片。 |
| 參數滑桿 | 零件函數的預設參數會變成 UI 滑桿;移動滑桿會更新模型,AI 也能看到新值。 |
| 可列印性檢查 | 13 條硬編碼規則(懸垂、薄壁、浮島、翹曲風險、穩定性等)會針對精確實體執行。觸發規則的面會顯示檢查結果。 |
| 成本與時間估算 | 查看器會呼叫您已有的切片器(OrcaSlicer 或 Bambu Studio)來報告估算的列印時間與耗材重量。 |
| 強度模擬 | 基於體素的應力分析可提供破斷重量估算,並可視化載荷集中區域。 |
| 現實世界適配 | 您可以匯入掃描資料或測量值;工具會強制 AI 使用這些尺寸而非猜測。 |
| 匯出 | 預設匯出為嵌入列印設定的 3MF;STL、STEP、GLB 僅需一個旗標即可。 |
| 離線優先 | 所有建模、檢查和查看均在本機執行;無需雲端帳戶。 |
安裝
| 平台 | 方法 |
|---|---|
| macOS(Apple Silicon 或 Intel) | 從最新 GitHub 發布頁下載簽署的 .dmg。 |
| 命令列(任意系統) | `curl -fsSL https://nurb.dev/install.sh |
| 替代方法 | uv tool install nurb 或 pip install nurb 安裝 Python 套件,然後執行 npx skills add shpigford/nurb --skill nurb 將技能註冊到您選擇的 AI 代理框架。 |
典型工作流程
- 啟動 – 執行 GUI(
nurb dev)或 CLI(nurb new <name>)。專案只是一個包含parts/目錄的資料夾。2. 提示 – 透過內建聊天或您自己的終端代理與 AI 交流。AI 建立一個parts/<name>.py檔案,其中包含一個@part函數。3. 迭代 – 使用滑桿調整參數,觀察即時查看器,並重新執行nurb check查看任何可列印性警告。4. 驗證 – 可選地執行nurb stress取得強度估算,或執行nurb slice取得時間/耗材。5. 匯出 –nurb export <part>產生可直接放入切片器的 3MF(或其他格式)。6. 列印 – 在 OrcaSlicer 或 Bambu Studio 中開啟匯出檔案並列印。
主要命令(CLI)
nurb new <name>– 建構新零件檔案及其 Markdown 卡片。nurb dev– 啟動熱重載查看器。nurb check [part]– 執行 13 項可列印性規則(--strict用於 CI 失敗)。nurb slice [part]– 查詢連接的切片器以取得時間/耗材。nurb stress [part]– 基於體素的載荷模擬。nurb export [part]– 輸出 3MF / STL / STEP / GLB。nurb scan <file>– 匯入手機掃描或外部網格並記錄其尺寸。nurb skill– 顯示或同步 AI 代理技能檔案。
為何「以 AI 為中心」?
- 模型無關 – 與您已付費的任意 LLM 兼容;README 提供了在真實零件設計任務中評估模型的基準頁面連結。
- 代理技能 – 一個小型「技能」檔案(
npx skills add ...)告訴您選擇的 AI 如何呼叫nurb命令,將語言模型轉變為互動式 CAD 助手。 - 提示驅動幾何 – AI 編寫實際 CAD 程式碼;您無需手動繪製。
限制與目前缺口(如 README 所述)
- 查看器的測量工具仍為 TODO。
- 尚未建構託管的、可共用的配置器。
- 薄壁檢測可能遺漏採樣演算法未命中極窄特徵。
- 應力分析為簡單體素模擬;適用於快速驗證,但不能取代完整的有限元素分析。
- 該工具僅支援 FDM 類型列印機(呼叫 OrcaSlicer/Bambu Studio)。樹脂或工業設備未涵蓋。
許可與來源
- 源碼開放,採用 FSL-1.1-MIT(一種寬鬆許可,每次發佈後兩年轉為普通 MIT)。許可明確禁止建構競爭性商業產品。
- 核心幾何依賴於 Open CASCADE Technology(LGPL-2.1 + 例外)透過
build123d和OCPPython 綁定。 - 查看器資源包含 three.js(MIT)和 JetBrains Mono(OFL 1.1)。
總結
nurb 是一個面向愛好者和小型車間 FDM 3D 列印的實用、本機執行的 AI 增強 CAD 系統。它將自然語言設計、真實 B-Rep 幾何與列印機特定驗證無縫整合,無需依賴雲端服務。如果您已有 LLM 訂閱,並希望將口語化設計想法快速轉化為可列印零件並獲得即時反饋,nurb 提供了一個開箱即用的完整解決方案。
相關
- 專案
- 專案
- 專案
- 專案
- 專案