AI 3D建模工具: Tripo 3D | Meshy AI

一句话结论:SolidCraft 是同名项目从 SolveCraft 改名并迁到 tangency-labs 之后的版本:纯 Rust 写的开源参数化 CAD(草图 → 约束 → 特征时间线 → 改一个尺寸就重建),同一套代码跑在 桌面(Windows / macOS / Linux)、浏览器(WebGPU,带 WebGL2 回退) 和 headless CLI,并且自带 MCP 服务器——Agent 可以和人一样,用同一批命令建模、测量、截图、导出。截至 2026-10-19:GitHub 6,549 star、36 次 release / 16 个 minor(v0.1.0 是 10-09,v0.16.2 是 10-19)、release 资产累计下载 112,847 次(含各类安装包,不等于用户数)、中文语言包 1,598 条键值全覆盖。它还很早期:官方标的是 "early but usable for simple parts",没有 CAM、没有仿真、没有工程图。

披露:本文编译自 SolidCraft 官方仓库的 README、docs/features.md、ROADMAP.md、docs/mcp.md、docs/oracle.md、兼容性说明与 v0.16.x 发布说明(均截至 2026-10-19),并只对"导出 STEP"这一步做了本地实测(见第六节,Windows 便携版 + 仓库自带 examples/bracket.json);其余流程与数字来自官方文档与仓库统计,未做逐项复现。项目由 Tangency Labs 维护,本站在其中没有任何利益关系。


一、它是什么:一个"三种入口、一套命令"的 CAD

项目 情况
仓库 tangency-labs/solidcraft(原名 SolveCraft,旧文件与旧配置有兼容层)
许可 MIT OR Apache-2.0(双许可,任选其一)
语言 Rust(源码构建需 1.95+)
桌面 Windows(MSI / 便携 zip / WinGet)、macOS(universal dmg)、Linux(AppImage / deb / rpm / Flatpak / Snap)
浏览器 solidcraft.io/app,WebGPU;缺 WebGPU 或异常时用 ?webgl 切 WebGL2;设计存在浏览器私有文件存储(需 HTTPS 或 localhost)
自动化 solidcraft-cli:跑脚本、测量、导出、渲染 PNG,以及 solidcraft-cli mcp
几何内核 自家 kernel crate,底层 B-rep 用 truck(Apache-2.0),混合(blend)与布尔重试/校验是自己写的
安装体积 Windows 安装包 49.3 MB、便携 zip 64.1 MB(0.16.2)

用户真正会碰到的三条入口,共用同一套引擎命令:

# 桌面:打开示例零件
solidcraft --sample
# 桌面:开控制通道,让 MCP 服务器接管当前窗口(能看到 Agent 在建模)
solidcraft --control 7878
# 别处:接上去
solidcraft-cli mcp --connect 127.0.0.1:7878

# 无窗口:跑脚本、导出
solidcraft-cli run examples/bracket.json --out bracket.step

二、三个值得注意的设计决定

1)"一切都是命令"(everything is a command)

这一条决定了它和大多数桌面 CAD 的根本差别:工具栏按钮、命令面板(按 S)、JSON 脚本、控制通道、MCP 工具,调用的都是同一张命令注册表。solidcraft-cli commands 打印整张表的 id、参数文档和当前是否可用;docs/features.md 就是由这张表生成的。

好处很实际:

  • 你手点一遍的操作,可以原样录成 JSON,交给脚本或 Agent 重放;
  • Agent 失败时读到的是引擎的结构化报错,不是"截图里看起来不对";
  • 界面上有的能力,自动化里就有;反之,自动化能做的,人也能点出来。

代价也很清楚:命令粒度很细(草图约束就几十条命令),纯手写脚本前得先熟悉 id 与参数形状。

2)约束求解器不靠"拖到差不多就行"

官方说明了求解器的分工:能被约束唯一确定的点,用几何构造直接放准(轨迹求交 + 刚性簇分解,参考 Owen 1991、Fudos–Hoffmann 1997),其余交给 Levenberg–Marquardt,剩余自由度由 雅可比的秩给出。于是:

  • 过约束的编辑会被拒绝,而不是悄悄变形;
  • 完全约束的草图变黑;
  • 拖动时每帧求解,松手才重建模型(不会每帧跑一次布尔)。

对实际绘图的意义是"改尺寸不会把草图搞乱"——这也是参数化 CAD 最容易被忽略的基本功。

3)文件与格式是开放的

设计文件是 .solidcraft 容器(网格载荷是无损二进制,纯 JSON 仍然支持);导出覆盖 STEP AP242(带实体名、颜色、装配体)、IGES 5.3、3MF / STL(二进制与 ASCII)/ OBJ、URDF(带关节的装配体给机器人仿真)和当前视图 DXF;导入支持 STEP(AP203/214/242)、IGES、3MF/STL/OBJ/glTF,桌面版还能通过 cadmpeg 读 FreeCAD .FCStd 与 Rhino .3dm 的实体。

对下游(切片、仿真、PLM、渲染)来说,STEP AP242 是那个"能交出去"的口子;对 Web/游戏一侧,glTF 与 OBJ 至少有路可走。

三、上手:一个树莓派 4 外壳的六步

官方演示是最能说明工作流的一段:从空设计到可打印的树莓派 4 外壳,每一步都留在时间线上,改一个参数整条链重建。

步骤 做什么 关键点
1 在基准面画草图,用板子参数(58 × 49 mm 孔距)定尺寸 尺寸写成表达式,后面改板子不用重画
2 拉伸成壳体毛坯 特征入时间线,可改、可抑制、可重排
3 圆角 + 抽壳(Shell) 一次选中整圈边;抽壳内外/双侧可选
4 M2.5 铜柱按孔位矩形阵列 阵列参数来源于同一组参数
5 侧面开 USB/网口缺口、顶部开散热槽 剖面自动识别,槽口可一次拉伸多轮廓
6 刻字(DejaVu Sans Bold)+ 定义 PETG 材料 属性面板里直接给出质量(体积 × 密度)

然后回到参数表,把高度 24 → 32 mm,整条时间线重建,外壳、孔位、槽口、刻字全部跟着走——演示视频里这一步是连续的,不是"重新画一遍"。

SolidCraft 里用 MCP 建出来的 SELENE 火星车:3,323 步时间线,可编辑、可重放

上面这张是同一套软件的另一面:社区项目 SELENE 用 SolidCraft 的 MCP 服务器建模,时间线 3,323 步、重建零错误,模型可以下载回来继续改(来源:0xlillith/solidcraft-rover)。

四、中文与桌面体验

  • 界面语言:assets/locales/ 里 18 个语种,中文 1,598 条键值与英文一一对应(只有 4 条与英文相同,基本等于全覆盖);v0.16.0 又补了意大利语、波兰语与中/日/法/西的更新。
  • 3D 鼠标:Windows / macOS / Linux 都能读 3Dconnexion SpaceMouse / SpaceNavigator(HID 多轴),浏览器侧走 Gamepad API(Firefox 需要先用 3DxWare 的配置文件把设备暴露成虚拟手柄)。
  • 浏览器版能装成应用:Chromium 系有"安装应用…",首次访问后离线可用;团队要内网部署可以用官方镜像 ghcr.io/tangency-labs/solidcraft-web(nginx + 8080,设计存在访客浏览器里,服务器不存东西)。
  • 崩溃与恢复:自动保存 + 崩溃恢复,报错对话框能直接生成 GitHub issue 草稿(带上下文,是否提交由你决定)。

五、MCP:让 Claude Code 直接画零件

这是 2026 年这类工具真正的新东西:不是"聊天框贴代码",而是 Agent 调 CAD 的命令。

启动

# headless:自带一个设计会话,没有窗口
solidcraft-cli mcp

# 从已有设计或脚本起步
solidcraft-cli mcp --in part.solidcraft

# 桥接到正在运行的 App:能看见 Agent 一步步建模
solidcraft --control 7878
solidcraft-cli mcp --connect 127.0.0.1:7878

Claude Code 一行接上:

claude mcp add solidcraft -- solidcraft-cli mcp

15 个工具

工具 作用
list_commands 命令目录:id、标签、快捷键、参数文档、当前是否可用
execute / batch 跑单条 / 一批命令;batch 默认遇错回滚到第一步之前的检查点
inspect_design 参数、时间线(含每步耗时、错误、警告)、实体、草图(约束、自由度、求解状态)
measure 体积、面积、质心、包围盒、面/边/点计数;两两选取还能给最小/最大距离、轴线距、夹角
body_topology 面/边的索引、面积、法向、圆柱面的轴与半径——给 Agent 一个能"指"的编号
set_parameter 改用户参数并重算,回报重建/复用了多少特征
screenshot 返回 PNG(可指定视角、相机、网格与坐标轴,headless 用 GPU 或 CPU 光栅)
export STEP / 3MF / STL / OBJ / URDF
undo / redo / new_design / open / save 文档操作
crash_reports 读本机崩溃报告(回溯、命令、最近命令、设计路径)

磁贴之外还有两个资源:solidcraft://design(带测量的 inspection JSON)与 solidcraft://commands(命令目录)。

文件访问是被关起来的

Agent 只能碰:当前设计所在目录(且必须严格在 home 之下、不能是隐藏目录)、SolidCraft 自己的恢复目录、服务器私有暂存目录,以及显式 --allow-path DIR 给的目录。~/.ssh、~/.aws、.env 默认不可达;Windows 上 UNC、设备名、短文件名(PROGRA~1)等在落盘前就被拒。这个设计比"给 Agent 一个 shell"安全得多——但也意味着你要主动把工作目录划给它。

配套的四个 Skill

仓库 skills/ 下有四个 Agent Skill(Agent Skills 格式):solidcraft-modeling(新建零件)、solidcraft-editing(改已有设计)、solidcraft-checking(补 SolidCraft 不报的检查、回归与移植)、solidcraft-mechanisms(装配:关节、运动链接、接触集、运动研究)。它们把"命令怎么摆、怎么用 measure 自检、已知的坑"写成了可加载的说明书——这正是 Agent 建模能不能稳住的关键,而不是模型本身有多强。

边界(官方的说法,也是我的建议)

  • Agent 建模必须人复核:几何对不对,看体积/面积/质心这些客观量,再看剖面与配合,别只看渲染图;
  • headless 截图在无 GPU 时会退到 CPU 光栅(回复里 renderer 会写 cpu,并带 warning),颜色分析类信息会缺失;
  • MCP 里没有"运行/停止"这类危险语义,但 execute/batch/export/open/save 都能读写文件,客户端的自动批准策略要自己收(官方把它们的 destructiveHint/openWorldHint 标成了 true)。

六、把模型交出去:STEP 导出(本地实测)

只说"能导出"没意义,我拿 0.16.2 的 Windows 便携版跑了一遍仓库自带的 examples/bracket.json:

solidcraft-cli run examples/bracket.json --out bracket.step

结果:

项 实测值
CLI 版本 solidcraft-cli 0.16.2
输出 bracket.step,8,871 字节
STEP 协议 文件头 FILE_SCHEMA 为 AP242(managed model based 3D engineering)
几何 实体 1 个,9 面 / 21 边 / 14 点(8 平面 + 1 圆柱面)
体积 / 表面积 22,988.46 mm³ / 9,114.77 mm²

这一步只证明"脚本 → 内核 → STEP 写出"是通的。没有验证复杂件、装配、颜色与名称是否在别的 CAD 里保真——那需要你在自己的零件上过一遍。收到 STEP 之后的检查项,可以照着 CAD STEP 到网格的拓扑验收 那篇的六步走。

导出物想快速看一眼(不装 CAD),直接把 STEP / IGES 丢进 在线三维 CAD 查看器;只有 STL / OBJ / GLB 的话用 3D 模型查看器 更省事。

七、现状与限制:先看清它"还不是什么"

官方 README 自己写的是 "early but usable for simple parts"。几个必须知道的点:

验证口径:参考测试 83/83 通过(62 个解析解 + 21 个 FreeCAD 1.1.4 独立算出的期望值),比的是体积、面积、质心、包围盒、面数与采样 Hausdorff 距离,且每个件都导出 STEP 再读回。官方明确写了:这些检查不构成完整的几何或工作流等价性证明。

没有的东西(ROADMAP 的"暂缓"清单):MESH、FORM(T-Spline)、超出实体需要的 SURFACE、PCB / 3D PCB、Render(只有简单的 PBR 预览)、Animation、Simulation、Manufacture / CAM、Drawings(工程图)。也就是说:能做零件,不能出图、不能仿真、不能生成刀路。

已知的技术限制(摘几条对交付有影响的):

  • STEP 导入的装配体被拍平成实体,自由曲面 offset 与只有 pcurve 的边还没读;
  • 布尔在"同半径轴线相交"等特殊相切情形会明确拒绝,而不是给一个坏结果(官方立场是"能拒就拒");
  • G2 圆角只覆盖"平面之间直边"的组合,曲面边、斜端、角接头还不支持;
  • 下载尚未代码签名:Windows SmartScreen 会拦,macOS 首次要右键"打开";
  • 0.11–0.14 的"应用内更新"装不上 0.15+(仓库搬家),得手动下一次新版。

换代速度快 ≠ 稳定:11 天 16 个 minor,意味着接口、设计文件格式(0.16 是 format 27)和行为的变动都很快。生产件要用,先钉版本、留 STEP 作为交换物,别把 .solidcraft 当唯一存档。

八、和现有方案怎么比

方案 形态 许可 / 成本 强项 短板
SolidCraft 桌面 + 浏览器 + CLI/MCP 开源(MIT/Apache-2.0) 参数化时间线、装配/钣金、Agent 可驱动、文件开放 早期;无工程图/仿真/CAM;生态小
Fusion 360 桌面 + 云 商业订阅 建模 + CAM + 仿真 + 出图一体 成本、云依赖、许可以外
Onshape 纯云 商业订阅 协同与版本管理 云依赖、订阅
FreeCAD 桌面 开源(LGPL) 模块全(含 FEM/CAM/TechDraw) 参数化与稳定性口碑分化
CadQuery / build123d Python 代码建模 开源(Apache-2.0) 可进 CI、可版本化 无交互建模,学习曲线陡
SolidCraft 的差异 — — 交互建模 + 同一套命令可被 Agent/CI 调用 + 浏览器可跑 只适合简单件与早期采用者

九、该不该试:三条判断

适合马上试:① 想把"建模"接进脚本/CI/Agent 流水线;② 需要浏览器里打开就改、不想装 CAD 的轻量场景;③ 想给团队找一个可自托管、数据不外发的参数化建模工具(浏览器设计存在本地,桌面版天然本地)。

再等等:① 要出工程图、做 FEA、生成刀路;② 交付对象只认 .sldprt/.f3d,且不接受 STEP 作为中间格式;③ 需要成熟曲面(Class-A)、T-Spline 造型。

上手三步:① 浏览器直接开,用 ?sample 看示例件,确认操作习惯;② 桌面装 0.16.2,跟着演示把一个你自己的小件(板 + 孔 + 圆角 + 抽壳)走完参数化;③ 导出 STEP,用 在线 CAD 查看器 或你现有的 CAD 复核尺寸与颜色,再决定要不要接进流程。


Sources

同主题阅读

本文属于「CAD / 制造 / G-Code」专题。BimAnt 编译整理,转载请注明出处。文中版本与统计数字截至 2026-10-19;实测仅覆盖示例脚本的 STEP 导出,其余请以你自己的零件复测为准。

本文属于「CAD / 制造」专题。查看专题全部文章 →