开源 CAD 选型指南:Rust 三维建模器 SolidCraft 三种使用形态完整对比
开源 CAD 选型指南:Rust 三维建模器 SolidCraft 三种使用形态完整对比
【免费下载链接】solidcraftSolidCraft: an open-source parametric 3D CAD application built in pure Rust. Desktop, web, and automation through MCP.项目地址: https://gitcode.com/gh_mirrors/so/solidcraft
想找一款开源 CAD 替代商业软件的订阅费用?你可能见过 SolveCraft、SolidCraft、solidcraft-cli 三个名字——它们是同一个纯 Rust 参数化三维建模项目的三种入口。真正的选型问题不在"信不信",而在:桌面、浏览器、还是给 AI 代理调用的 MCP 接口,该用哪一个。
📦 项目速览:30 秒看懂 SolidCraft 三张卡片
桌面端 solidcraft
- 定位:纯 Rust 参数化 3D CAD 本体,"草图约束 → 特征时间线 → 参数驱动重建",改一个尺寸模型自动重算。注意它曾名 SolveCraft,0.5.0 起把二进制、包名、设计文件扩展名(.solvecraft 改 .solidcraft,现在存 .sc)、环境变量、MCP 服务器名整体更名,旧文件仍可读,见 兼容性说明。
- 差异化:唯一功能最完整的形态——egui + wgpu 桌面应用,工具栏、时间线、命令面板齐全,支持 3D 鼠标,覆盖 Windows(MSI)、macOS(签名+公证的 DMG)、Linux(AppImage/Snap/deb/rpm/Flatpak)与 FreeBSD/Nix。
- 硬限制:官方自我描述为"early but usable for simple parts"(简单零件早期可用),复杂自由曲面、CAM、仿真不在当前路线图内(能力清单)。
浏览器版 solidcraft-web
- 定位:把与桌面端完全相同的 UI 应用跑在浏览器里,通过 eframe 的 web runner 用 wgpu 渲染,WebGPU 优先,加 ?webgl 参数可强制 WebGL2(源码)。
- 差异化:零安装试用——设计文件存在浏览器 OPFS(浏览器本地文件系统)里,支持打开、插入、重命名、下载、自动保存,关页面前有未保存提醒。
- 硬限制:wasm 环境串行执行,STEP 导入的并行加速路径会自动退回串行(性能文档),大型装配体加载明显慢于桌面端。
无头形态 solidcraft-cli 与 MCP 服务器
- 定位:无窗口运行同一个命令注册表——执行 JSON 命令脚本、测量体积/质心/拓扑、导出模型、渲染 PNG 快照、回放参考配方。
- 差异化:
solidcraft-cli mcp把它变成 MCP(Model Context Protocol,一种让 AI 代理按工具调用操作软件的协议)服务器,代理可直接建模、检查、测量、截图、导出;加 --connect 参数还能桥接正在运行的桌面端,肉眼看着代理建模(MCP 文档)。 - 硬限制:代理可读写文件被限制在白名单目录内(--allow-path),默认够不着系统里的任何文件。
📊 横向对比:SolidCraft 三形态对比表
| 维度 | 桌面 solidcraft | Web solidcraft-web | 无头 solidcraft-cli / MCP |
|---|---|---|---|
| 面向场景 | 完整建模与迭代 | 零安装看图、轻量建模 | 脚本化批量建模、AI 集成 |
| 渲染 | 桌面 wgpu GPU | WebGPU 优先,可强制 WebGL2 | 无头 GPU 截图,无显卡时 CPU 光栅化 |
| 文件存放 | 本地磁盘 | 浏览器 OPFS | 白名单目录(--allow-path) |
| 输入方式 | 鼠标键盘 + 3D 鼠标 | 鼠标键盘 | JSON 脚本 / MCP 工具调用 |
| 输入/输出格式 | STEP(AP242)、IGES、3MF、STL、OBJ、URDF,另可导入 STEP/IGES/glTF 及 FreeCAD、Rhino 文件 | 同一命令集,能力相同 | 相同,另加 PNG 快照 |
| 自动化能力 | JSON-lines 控制通道(默认 27878 端口、每次启动随机 token) | 浏览器命令 API | 全量命令目录 + batch 出错回滚 |
| 典型短板 | Windows 构建暂未签名,SmartScreen 需手动放行 | 串行执行,大装配慢 | 依赖 JSON 命令与参数文档 |
三者不是三个产品,而是同一套命令引擎的三种出口:命令脚本在任意形态间通用,模型文件互通。
🔍 单品深拆:SolidCraft 最有工程含金量的地方
架构分层:六层解耦,一切皆命令
架构文档把代码分成六层:geom(向量/平面/剖面/网格)→ sketch/kernel/render(约束求解、B-rep 内核边界、视图数学)→ doc(参数、表达式、特征时间线增量求值)→ io(设计文件与多格式导入导出)→ engine(会话与命令注册表)→ gpu/ui-egui/mcp(可替换前端与 MCP 服务器)。
其中"一切皆命令"是核心设计:同一个 solid.extrude,工具栏按钮、JSON 脚本、CLI、控制通道和 MCP 调用的都是同一份实现。功能清单由命令注册表自动生成,共 320 余个命令(含少量计划项),草图 103 个、实体建模 37 个、装配组件 28 个、装配接合 19 个、钣金 14 个、时间线编辑 23 个。这带来三个直接好处:脚本化天然成立;无头环境可跑完整建模;失败命令不改设计,batch 支持出错回滚到编辑检查点。
约束求解器:精确落位优先,数值求解兜底
草图约束不是一锅端丢给数值求解。可构造的约束(按 Owen 1991 与 Fudos–Hoffmann 1997 的轨迹交点与刚体簇分解)用构造式方法精确落位,其余交给 Levenberg–Marquardt,用雅可比矩阵的秩报告剩余自由度;过度约束的编辑会被拒绝,完全约束的草图变黑(能力清单)。这套语义与 Fusion/SolidWorks 的约束哲学一致,对习惯商业 CAD 的用户迁移成本低。
质量保障:90/90 参考测试矩阵
参考测试矩阵当前 90/90 用例全部通过:69 个用手算解析几何验证(棱柱、圆柱、Pappus 定理算旋转体、B 样条变半径圆角),21 个由 FreeCAD 1.1.4 的独立内核计算,表面用 Hausdorff 距离采样比对,最大偏差 0.033 毫米。两个细节值得注意:每个重建零件还会导出 STEP 再读回验证;文档明确"没有任何期望值来自商业 CAD 产品",走 clean-room 路线规避知识产权风险。README 与能力清单另写"75/76 公开参考件匹配、其余为已跟踪 bug",且 case 95 的解析参考值事后被修正、标注待重新回放——数据口径有版本差异,引用时以文档为准。
工程细节:内核选型、性能与可回滚性
几何内核没有重复造轮子:Apache-2.0 的 truck 以 vendored 形式进入 vendor/ 目录并经 Cargo.toml 的 patch.crates-io 接入,外层包一层自己的 kernel crate(自研圆角操作与布尔重试)。性能上有实测量表:自研网格规划对 78 个参考体约 65 毫秒,比旧网格化器快 50–65 倍(能力清单);STEP 导入并行化最多 8 个 worker,512 圆柱件从 896 毫秒降到 313 毫秒(65%),48 圆环件降 81%(性能文档)。面向自动化,batch 的回滚基于 edit.checkpoint 引擎检查点,设计、活动草图与撤销历史都精确恢复;MCP 侧还有 crash_reports 工具可回溯崩溃并给出复现路径,代理文件访问则做了路径解析、符号链接与 Windows 特殊路径的防逃逸处理(MCP 文档)。
🧭 趋势共性:这套项目群共同押注的两条路线
MCP 让 CAD 可被 AI 代理直接操作。桌面、Web、无头共享同一个命令面,意味着代理不需要"学会点界面":docs/mcp.md 里一段典型会话用 batch 一次完成"建草图 → 画 40×30 矩形 → 拉伸 20 → 圆角 3 → 开 Φ10 孔"共 8 步,返回 ok:true,再 measure 拿到 22390.6 立方毫米体积,screenshot 取 iso 视图 PNG,export 出 STEP——全程无对话框。对使用者的价值是具体的:batch 出错即回滚,直接降低 AI 试错成本;body_topology 返回每条边的中点坐标,"选中这条边倒 R3 圆角"变成可编程原语;仓库还内置了 modeling、mechanisms、reporting 等代理技能文档。
同一套代码跑桌面 + Web + 无头,等于把 CAD 变成可测试、可零安装的平台。CI 里 cargo xtask ci 会执行 wasm32 构建,测试全量无头化;浏览器版则把"值不值得装"的门槛降为零——打开链接先看效果。
🎯 怎么选:决策清单
- 如果你在迭代 3D 零件(外壳、支架、带参数的板件)并要送 3D 打印 → 选桌面版。理由:草图约束 + 特征时间线 + 配置表完整,STEP/3MF/STL/OBJ 直通切片与 FreeCAD 交接,还支持 3D 鼠标。前提:零件以盒类、参数化特征为主,复杂自由曲面请回避。
- 如果你低频看图、重视隐私、不想装任何东西 → 选 Web 版。理由:OPFS 本地存储、离线可用、零安装。前提:中小模型;大型 STEP 装配加载明显慢于桌面端。
- 如果你要写脚本、跑 CI 或接 AI 代理 → 选 solidcraft-cli + MCP。理由:320 余个命令全量开放、batch 检查点回滚、崩溃报告可复现、文件访问白名单化。前提:愿意按 JSON 命令参数文档编程,并用 --allow-path 显式授权目录。
- 不建议的场景:自由曲面雕刻、T-spline、CAM 刀路、仿真——都不在当前路线图;2D 制图为主的出图工作流(DWG/DXF 画图画图、尺寸标注、图纸空间)不是它的战场,它只提供当前视图 DXF 导出与钣金展开 DXF 轮廓;正式生产件在参考矩阵之外必须自测。
SolidCraft 的三种形态是同一台命令引擎的三套外壳,命令脚本与模型文件在形态间完全互通。如果你的核心需求是"改一个尺寸、看模型自动重建,并且允许程序与智能体替你操作",它是目前开源侧工程完成度最高的答案之一;复杂自由曲面与量产场景,请等路线图兑现或先跑自己的验证件。
【免费下载链接】solidcraftSolidCraft: an open-source parametric 3D CAD application built in pure Rust. Desktop, web, and automation through MCP.项目地址: https://gitcode.com/gh_mirrors/so/solidcraft
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考