SolidCraft 参数化 3D CAD 上手指南:5 段特征工作流,改一个数字全模型重算
【免费下载链接】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
下午四点收到改单:底板高度从 24 mm 加到 32 mm。如果手里的模型是一堆一次性画好的面片,你只能删掉重画;如果当初每一步都存成了可编辑的特征,改一个数字,孔位、圆角、薄壁会跟着自己重建。SolidCraft 属于后者——一个用纯 Rust 实现的开源参数化 3D CAD 工具,桌面、浏览器、脚本三端共用同一套内核。
先看一眼工作区:草图、特征与时间轴怎么分工
建模顺序很固定:先在 Sketch 里画轮廓并给足约束,再用特征(Feature)把平面轮廓加工成实体,每一步都落在窗口底部的时间轴(Timeline)上。模型不是整体重算,而是从发生变化的那一步开始往下增量重建;双击任意一步能改参数,也可以抑制、重命名或删除。
上图的 Sample Plate 是典型状态:左侧 Browser 按 Bodies / Sketches 分类,中间是带凸台和两个孔的圆角底板,底部 History 排着每一步特征。记住这个分工就够了——草图管形状,特征管加工,时间轴管顺序。
成形:Extrude 挤出第一块板,先想好 direction 与 operation
板类零件(底板、支架、面板)用solid.extrude:选一个闭合轮廓,沿法线方向给出厚度,内孔和分割区域会被自动识别。回转体(杯、盘、法兰、轴)换solid.revolve:轮廓绕一根轴转过angle(默认360 deg)。注意轮廓要落在轴的同一侧,跨轴画会直接报错。
| 命令 | 参数 | 作用 |
|---|---|---|
solid.extrude | distance/direction | 厚度与朝向:positive、negative、symmetric(两侧各走一半) |
solid.extrude | taper/through_all | 锥度角做出截头锥;或一路贯穿到另一侧 |
solid.extrude | operation | new_body新建、join并、cut差、intersect交 |
solid.revolve | angle/angle2 | 旋转角度;双侧旋转时第二侧的角度 |
solid.revolve | axis/direction: symmetric | 轴取构造轴或{origin, dir};对称时向两侧均分 |
真上手时你会发现 operation 通常不用想:SolidCraft 会先在后台试跑一遍——新料碰到已有实体自动选join,切入已有实体自动选cut,完全独立则new_body。行为和你预期不符(比如明明在加料却判成挖空)时,在特征编辑器里显式指定一次即可。
修整:Fillet 与 Chamfer 收边,Shell 把实心掏成薄壁
收边是典型的下游操作:solid.fillet用radius把锐边换成圆弧,edges里在目标边上点一个点就能锁定整条边,相邻光滑边会自动连成一条链。solid.chamfer削斜面,distance必填,distance2与angle二选一。
要外壳、盒子、壳体就上solid.shell:填thickness壁厚,在faces里点选要开口的面,direction选 inside / outside / both。有个隐藏细节:faces传空数组时它不报错,而是掏出一个完全封闭的中空体。
收边特征引用几何的方式是"按名字挂引用":上游把边挪了位置,下游照样挂得住;真找不到时会给出警告,而不是静默挑一个相邻面。这是参数化 CAD 和一次性建模最实际的区别。
复制:三种 Pattern 让孔和凸台成批出现
单孔阵列一次没问题,20 个孔就该上 Pattern 了。三种命令都接受features(要复制的特征)或bodies:
- 矩形阵列
solid.pattern.rectangular:dir1/count1/spacing1定第一方向,需要第二排再给dir2/count2/spacing2,适合散热孔网格。 - 圆形阵列
solid.pattern.circular:axis写X/Y/Z或{origin, dir},count均布,angle给不足一圈的扇形范围,法兰孔就是它。 - 路径阵列
solid.pattern.path:path_sketch指定草图、path列曲线 id,count+spacing沿曲线铺。
💡 Pattern 的本质是"变换后重放"被选中的特征:原特征的尺寸改了,所有副本跟着改。反过来只改单个副本是不行的——这是新手最常撞上的认知差。
参数闭环:把 d1 换成 width,动一个数字全模型重算
每个尺寸和特征输入天生就是一个模型参数(d1、d2……)。更省事的是随手命名:在任意值框里直接输入width = 40,SolidCraft 会建一个用户参数并把该输入换成width。之后在 Change Parameters 里改它,时间轴从第一个用到它的特征开始重建。
表达式带单位感知:2 * width + 5 mm、angle / 2、1 in + 3 mm都合法;长度填进角度框会报错,不会悄悄换算。
把关键尺寸抽成用户参数后,零件就从"一个模型"变成"一套模板"——这也是下一节 Parameter Sweep 的前提。
FAQ:新手最容易卡住的三个点
Q1:和商用 CAD 比,SolidCraft 差在哪?它走"覆盖常用特征"的路线:Extrude、Revolve、Hole、Fillet、Shell、Pattern 这些日常件齐全,且全部命令化,桌面 + 浏览器 + MCP 自动化三端同源;开源、纯 Rust、设计文件是.sc文本格式,适合进 CI 和自动化流水线。换来的是部分高级曲面能力还需要等待。
Q2:关键尺寸怎么抽成用户参数?不必事后补课。建模时就在值框里写height = 24,参数当场建立;对已有特征,编辑时把d3的值改成height = 32,会直接把该参数改名并接管所有引用。改名会同步全部表达式与特征输入,被引用的参数删不掉,删除时会列出所有使用者。
Q3:一套模板要做很多规格,怎么批量验证?用inspect.parameter_sweep:给一个参数指定 from / to / steps,它逐值重建一份副本,报告哪些特征在哪些取值上失败或告警,原设计不受影响。出模板前先扫一遍,比交付后救火便宜得多。
30 秒上手路径:从空画布到可交付零件
一条被验证过的顺序:画一张约束完整的草图(没有自由度缺口)→ 叠 Extrude(必要时加 Revolve)成形 → Fillet / Shell 收边并薄壁化 → Pattern 批量孔位 → 回头把关键尺寸改名为用户参数。走完后随便改一个数字,看着时间轴自己重算一遍,就是参数化的全部意义。
想继续深入:特征行为细节看 docs/book/src/guide/features.md,表达式与用户参数看 docs/book/src/guide/parameters.md,实体几何内核在 crates/kernel/。本地跑起来:
git clone https://gitcode.com/gh_mirrors/so/solidcraft && cargo run --release -p solidcraft -- --sample
--sample会直接打开一个示例零件,照着 Sample Plate 的时间轴走一遍,比任何教程都快。
【免费下载链接】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),仅供参考