SolidCraft:開源參數化 3D CAD 的另一種選擇
這是一個名為 **SolidCraft** 的開源專案,其核心是一個使用 **純 Rust** 語言開發的**參數化 3D CAD** 應用程式。它旨在提供類似於專業 CAD 軟體(如 Fusion 360 或 SolidWorks)的體驗,但完全開源且支援多平台。 以下是該倉庫內容的詳細整理: ### 1. 專案核心目的與功能 SolidCraft 的
這篇會談什麼 5 個段落
這是一個名為 SolidCraft 的開源專案,其核心是一個使用 純 Rust 語言開發的參數化 3D CAD 應用程式。它旨在提供類似於專業 CAD 軟體(如 Fusion 360 或 SolidWorks)的體驗,但完全開源且支援多平台。
以下是該倉庫內容的詳細整理:
1. 專案核心目的與功能
SolidCraft 的目標是讓使用者能透過「草圖 $\rightarrow$ 約束 $\rightarrow$ 特徵 $\rightarrow$ 參數化時間軸」的工作流來建立 3D 模型。
- 參數化設計:修改一個尺寸,整個模型會根據時間軸自動重建。
- 多端運行:同一套命令集驅動桌面 App、瀏覽器 App、Headless CLI 以及 MCP Server(讓 AI Agent 如 Claude 可以直接操作設計)。
- 目前可用功能:
- 草圖與約束:自研約束求解器,支援線、弧、Spline 及文字。
- 建模特徵:包含擠出 (Extrude)、旋轉 (Revolve)、掃掠 (Sweep)、放樣 (Loft)、圓角 (Fillet)、倒角 (Chamfer)、薄壁 (Shell) 等。
- 組裝與金屬板:支援關節 (Joints)、運動研究、金屬板展開 (Flat patterns) 及塑膠外殼特徵。
- 檔案支援:可匯入/匯出 STEP, IGES, 3MF, STL, OBJ, glTF 等格式。
2. 技術棧 (Tech Stack)
- 語言:Rust (Edition 2024, 嚴格禁止
unsafe程式碼)。 - 幾何核心 (Kernel):目前主要使用
truck系列庫(Apache-2.0),但根據路線圖,正計劃遷移至 NVIDIA 的 SMLib (usd-brep)。 - UI 框架:使用
egui+eframe構建介面,底層渲染採用wgpu(GPU 加速)。 - Web 部署:透過 WebAssembly (Wasm) 實作瀏覽器版本。
- AI 整合:實作了 MCP (Model Context Protocol),允許 AI 代理直接呼叫 CAD 命令進行建模。
3. 倉庫目錄結構
apps/:可執行端solidcraft: 桌面應用程式。solidcraft-cli: 命令列工具,包含 MCP Server 實作。solidcraft-web: 瀏覽器版本。
crates/:核心模組 (Internal Crates)kernel/geom: 處理 BREP 幾何核心與運算。sketch: 處理 2D 草圖與約束求解。engine: 驅動參數化命令的引擎。render/gpu: 負責 3D 視覺化與 GPU 渲染。io: 處理各種 CAD 檔案格式的讀寫。mcp: 實作 AI 代理的通訊協定。
vendor/:存放經過本地修補 (Patch) 的第三方依賴庫。docs/:詳細的功能清單、建置指南與 MCP 使用說明。
4. 如何開始使用
- 直接使用:
- Web 版:直接訪問 solidcraft.io/app 即可試用。
- 安裝版:提供 Windows Installer, macOS Disk Image 及 Linux AppImage/Snap。
- 從原始碼建置:
# 啟動桌面 App 並載入範例 cargo run --release -p solidcraft -- --sample
執行腳本產生 STEP 檔
cargo run --release -p solidcraft-cli -- run examples/bracket.json --out bracket.step
```
- AI 整合 (Claude):
可以使用
claude mcp add solidcraft -- solidcraft-cli mcp將其加入 Claude 的工具集。
總結
SolidCraft 是一個野心極大的 Rust 專案,試圖將專業級的參數化 CAD 功能帶入開源世界,並前瞻性地將 AI Agent (MCP) 納入設計流程,使其不僅僅是一個繪圖工具,而是一個可被自動化驅動的設計引擎。
內容整理:178 編輯室。編輯方式與更正說明