news 2026/11/3 10:09:15

开源 CAD 选型指南:Rust 三维建模器 SolidCraft 三种使用形态完整对比

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
开源 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 三形态对比表

维度桌面 solidcraftWeb solidcraft-web无头 solidcraft-cli / MCP
面向场景完整建模与迭代零安装看图、轻量建模脚本化批量建模、AI 集成
渲染桌面 wgpu GPUWebGPU 优先,可强制 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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/3 10:08:40

BBDown 快速入门:命令行离线下载 B 站视频教程

BBDown 快速入门:命令行离线下载 B 站视频教程 【免费下载链接】BBDown Bilibili Downloader. 一个命令行式哔哩哔哩下载器. 项目地址: https://gitcode.com/gh_mirrors/bb/BBDown BBDown 是一个命令行式哔哩哔哩下载器:给它一条视频链接&#xf…

作者头像 李华
网站建设 2026/11/3 10:08:13

告别手动注册:D2Admin 的 Vuex 模块自动注册全解

告别手动注册:D2Admin 的 Vuex 模块自动注册全解 【免费下载链接】d2-admin An elegant dashboard 项目地址: https://gitcode.com/gh_mirrors/d2/d2-admin 做 Vue 2 中后台项目时,Vuex 模块数量一旦涨到十几个,你大概率体会过这种痛&…

作者头像 李华
网站建设 2026/11/3 10:02:22

OpenWhispr 语音转文字:免费本地隐私转录的完整上手方案

OpenWhispr 语音转文字:免费本地隐私转录的完整上手方案 【免费下载链接】openwhispr Voice-to-text dictation app with local (Nvidia Parakeet/Whisper) and cloud models (BYOK). Privacy-first and available cross-platform. 项目地址: https://gitcode.com/GitHub_Tre…

作者头像 李华
网站建设 2026/11/3 9:54:50

3步掌握LTX-Best-Face-ID:用单张照片生成身份保留视频的完整指南

3步掌握LTX-Best-Face-ID:用单张照片生成身份保留视频的完整指南 想要用一张人脸照片就能生成保持人物身份的高质量视频吗?LTX-Best-Face-ID正是你需要的解决方案!这款基于LTX-2.3模型的身份保留参考转视频LoRA工具,通过创新的重…

作者头像 李华
网站建设 2026/11/3 9:45:36

金兰功率半导体发布LE3系列三电平光伏、储能应用模块

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华