bherbruck/solvecraft · 上手攻略

  • 仓库:bherbruck/solvecraft
  • 链接:https://github.com/bherbruck/solvecraft
  • 分类:CAD · 3D 建模 · Rust
  • 作者:Jay
  • 更新:2026-10-11

§0 速览

是什么: 用纯 Rust 从零实现的参数化 3D CAD 软件,Fusion 360 的清洁室复刻,支持桌面应用、浏览器(WebAssembly)和 AI Agent 通过 MCP 协议建模。

解决什么问题: Fusion 360 是云订阅制(商业用途有门槛),且对 AI Agent 没有原生支持;SolveCraft 以 MIT/Apache-2.0 双许可开源,提供参数化 CAD 全流程,不依赖云服务,并内置 MCP 服务器让 AI 直接驱动建模。

当前状态: 早期可用,能完成简单零件建模;76 个 Fusion 官方示例零件经验证可完整重建(体积、面积、拓扑一致);命令覆盖率正在 docs/parity.md 追踪。


§1 是什么 / 解决什么问题

SolveCraft 定位是 Fusion 360 的开源替代方案,核心思路一致:草图 → 约束/标注 → 实体特征 → 参数化时间线。

架构分层(L0–L5 + Apps)

层级 crate 职责
L0 geom 向量、平面、截面、网格及度量
L1 sketch, kernel, render 约束求解器(阻尼高斯-牛顿)、B-rep 边界表示、视图数学
L2 doc 参数、表达式、特征时间线及增量求值
L3 io 设计文件、STL/OBJ/STEP/3MF 导出、导入功能
L4 engine 会话与命令注册表(一切皆命令)
L5 ui-egui, mcp 桌面前端(可替换);MCP 服务器
Apps solvecraft, solvecraft-cli 桌面应用 / 无头 CLI

核心能力

  • 草图:origin 平面、偏移平面、平面 face 上创建;支持线段、矩形、圆、弧、多边形、键槽、椭圆、拟合/控制样条线、二次曲线、文字;含构造几何、投影、裁剪、倒角。
  • 约束求解器:自研 damped Gauss-Newton 求解器,支持 11 种几何约束(coincident / horizontal / vertical / parallel / perpendicular / tangent / equal / concentric / collinear / midpoint / symmetry / fix)和 8 种标注驱动参数。过度约束直接拒绝;完全约束几何体变黑。
  • 特征时间线:extrude / revolve / sweep / loft / fillet / chamfer / shell / draft / holes / threads / patterns / mirror / split / combine / move;时间线增量重建,支持回滚、抑制、重命名、调整顺序、删除。
  • 装配:嵌套组件 + occurrences、joints、运动研究、接触集、干涉检测、材质感知质量属性。
  • 钣金:法兰、折弯、展开/重新折弯、材质切口、精确 DXF 展开图、折弯表、塑料外壳规则。
  • 文件格式:设计文件为 JSON (.solvecraft);导出 STEP AP242 / IGES 5.3 / 3MF / STL / OBJ;导入 STEP/IGES/3MF/STL/OBJ(作为网格体或基础特征)。

⚠️ 曲面(surfaces)、工程图(drawings)、CAM、仿真均未实现,详见 ROADMAP.md。


§2 快速安装

依赖

  • Rust(stable)
  • Xcode 16(仅 macOS)
  • Meson / Ninja
  • Git

构建

# 克隆
git clone https://github.com/bherbruck/solvecraft.git
cd solvecraft

# 完整构建(格式化 + clippy + 测试 + 资产)
cargo xtask ci

# 仅构建(开发)
cargo build --release

Windows 特殊构建

cargo xwin build --release --target x86_64-pc-windows-msvc -p solvecraft

⚠️ cargo xtask 需要 cargo-xwin(cargo install cargo-xwin)和 cargo-nextest(cargo install cargo-nextest)。


§3 核心用法

桌面应用

# 运行带示例零件的桌面应用
cargo run --release -p solvecraft -- --sample

# 打开 STEP 文件
cargo run --release -p solvecraft -- part.step

无头 CLI

# 查看所有可用命令
cargo run --release -p solvecraft-cli -- commands

# 运行命令脚本(JSON 列表)
cargo run --release -p solvecraft-cli -- run examples/bracket.json --out bracket.step

# 渲染快照
cargo run --release -p solvecraft-cli -- snapshot examples/bracket.json --out bracket.png

# 测量(体积/面积/重心/面-边-顶点计数)
cargo run --release -p solvecraft-cli -- eval part.step

浏览器运行

cd apps/solvecraft-web
# WebGPU 版本
trunk build --release --public-url ./
# WebGL2 备用(部分浏览器不支持 WebGPU)
trunk build --release --public-url ./ --features webgl
# 加载示例零件
open http://localhost:8080/?sample

MCP 服务器(AI Agent 驱动)

SolveCraft 内置 MCP 服务器,通过 stdio 通信:

# 启动 MCP 服务器(完全无头)
solvecraft-cli mcp

# 连接到运行中的桌面应用(可观看 AI 建模过程)
solvecraft --control 8080
# 然后另一个终端:
solvecraft-cli mcp --connect 127.0.0.1:8080

可用工具:list_commands / execute / batch / inspect_design / measure / body_topology / set_parameter / screenshot / export / undo / redo / new_design / open / save

Claude Code 配置示例:

claude mcp add solvecraft -- solvecraft-cli mcp

命令脚本格式

所有 UI 操作均可编写为 JSON 命令列表:

{
  "commands": [
    {"command": "sketch.create", "params": {"plane": "XY"}},
    {"command": "sketch.rectangle.two_point", "params": {"p0": [0, 0], "p1": [40, 30]}},
    {"command": "solid.extrude", "params": {"distance": 20}},
    {"command": "solid.fillet", "params": {"edges": [[0, 0, 10]], "radius": 3}}
  ]
}

§4 典型适用场景

  • 开源 CAD 爱好者:不想付 Fusion 订阅费,需要参数化建模能力的个人用户。
  • AI Agent 自动化建模:通过 MCP 让大模型直接生成零件,配合 CAD 验证设计参数。
  • Rust 生态开发者:参与或借鉴纯 Rust 实现的 CAD 内核(约束求解器、B-rep 核)。
  • Web CAD:嵌入浏览器的轻量建模需求(目前功能尚简陋)。

⚠️ 复杂零件(复杂曲面、多部件装配、大量 CAM 操作)目前不支持;不适合直接替代 Fusion 360 用于生产。


§5 坑与注意

  1. 功能仍在早期:许多 Fusion 360 命令尚未实现;使用前查看 docs/parity.md 的命令覆盖清单。
  2. Step 导入为 mesh 体:STL/OBJ/3MF 导入为网格体,无参数化特征;需要参数化编辑请用 STEP 导入作为基础特征再构建。
  3. Windows 构建依赖 cargo-xwin:没有该工具链 Windows 构建会失败。
  4. WebGPU 兼容性:部分浏览器/设备不支持 WebGPU;可用 ?webgl 回退到 WebGL2。
  5. 过度约束直接拒绝:编辑时若产生过约束,修改会被拒绝,不会自动解除冲突约束。
  6. 完全约束才变黑:草图几何体未完全约束时为其他颜色,完全约束后变黑,需要注意视觉反馈。
  7. AI Agent 驱动时建议连接桌面应用:无头 MCP 模式下 AI 看不到渲染结果;--connect 模式可让 AI 建模同时在 GUI 中实时预览。
  8. 许可证说明:MIT OR Apache-2.0(双许可);SolveCraft 与 Autodesk 无关联,Fusion 360 是 Autodesk 的商标。

§6 与同类对比

SolveCraft Fusion 360 FreeCAD Onshape
许可 MIT/Apache-2.0 开源 云订阅(商业) LGPL-2.1 开源 订阅制
实现语言 Rust C++/Java C++/Python 云端
参数化时间线 ✅ ✅ ✅ ✅
云依赖 ❌ 完全本地 ✅ 必须联网 ❌ ✅ 必须联网
AI/MCP 支持 ✅ 内置 MCP ❌ ❌ ❌
曲面/CAM/仿真 ❌ 规划中 ✅ 全部 部分 ✅
成熟度 早期(简单零件可用) 成熟商业 成熟开源 成熟商业
浏览器运行 ✅ WebAssembly ❌ ❌ ❌

§7 一句话结论

SolveCraft 是 Rust 生态中目前最具野心的开源参数化 CAD 尝试,AI Agent 原生支持是一大差异化亮点,适合个人用户尝鲜和 AI 自动化建模场景;但功能覆盖仍处于早期阶段,复杂工业设计请继续使用 Fusion 360 或 FreeCAD。


数据来源:GitHub README (fetch 2026-10-11) · SolveCraft Book (bherbruck.github.io/solvecraft) · docs/parity.md · docs/oracle.md · docs/mcp.md