SolidCraft 参数化建模上手指南: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
SolidCraft 是一款用纯 Rust 编写的参数化 3D CAD 工具。本文拆解它最常用的 5 个实体特征——拉伸、旋转、圆角倒角、抽壳、阵列,讲清每个特征替你干什么、参数怎么填,再把它们串成一个随时可以改尺寸的零件。
Sample Plate 工作区:左侧浏览器列出草图与特征,中间是 3D 实体,底部 History 时间轴按顺序记录每一步。
先看懂模型怎么长出来:特征都排在时间轴上
SolidCraft 走经典参数化流程:先画草图(带尺寸和约束的 2D 轮廓),再用特征把它变成实体、加工出形状。每个特征都按顺序记在窗口底部的时间轴上,模型从第一个发生变化的特征开始增量重建;特征可以双击编辑、抑制、重命名、调整顺序或删除,删除时若有下游依赖会先提示。
核心心智模型:草图是 2D 轮廓,特征负责把它"抬"成立体或加工掉材料,而每个尺寸都是一个随时可以拧的旋钮。
完整命令清单见 docs/features.md,参数与表达式机制见 参数指南。
用拉伸把草图变成实体
干什么:把闭合草图轮廓沿一个方向"拔"出指定距离,是最主要的建实体方式。它会自动识别闭合轮廓,包括被直线分割的区域和外轮廓内部的孔。
适合:底板、壳体、支架、凸台——绝大多数零件的起点。拉伸前的草图长这样:
草图里每个数字都可编辑:80×50 的矩形、Ø24 的中心圆、两个对称孔。
参数一览(solid.extrude的字段):
| 参数 | 说明 |
|---|---|
distance | 拉伸距离,可填表达式,如20或2 * width |
direction | positive/negative/symmetric(对称把距离当总厚,向两侧各分一半:10 mm 即 -5 到 +5) |
taper | 锥度角:10×10 mm 正方形拉伸 10 mm,taper: "5 deg"远端约 11.75×11.75 mm,"-5 deg"约 8.25×8.25 |
through_all | "贯穿",直接穿到另一端 |
operation | new_body/join/cut/intersect |
💡 不指定
operation时,SolidCraft 会在设计副本上后台试跑一次 join 来推断 join/cut/new_body——"加料"变成"挖空"时先查这个字段;你显式选过的操作会保留。
用旋转做回转体
做什么:把草图绕一根轴转一个角度,是杯子、法兰、轴、轮毂这类回转体的最佳选择。
适用场景:截面是轴一侧封闭轮廓的一切零件。
参数速查(solid.revolve):
| 参数 | 说明 |
|---|---|
angle | 旋转角度,360表示一整圈 |
angle2 | 双侧旋转时的第二个角度 |
symmetric | 把输入角度围绕草图两侧均分,与轴指向无关 |
axis | 旋转轴:可来自直线、圆形边,或圆柱/圆锥/圆环面;脚本里也可写X/Y/Z或{origin, dir} |
💡 轮廓画在轴的一侧;对称旋转会把角度围绕草图均匀分配,因此轴方向写反也不会转反。
用圆角和倒角给零件收边
目的:圆角(Fillet)把锐边磨成圆弧,倒角(Chamfer)削成斜面。Fillet 支持平面间的直线边、整条光滑边环、邻接边链(交角处斜接或球形过渡)以及闭合的曲线边链。
何时用:典型后置工序,排在拉伸/旋转/打孔之后,用于去毛刺、减应力、视觉收尾。
圆角对话框:选边、设radius,还能切换连续性等级。
参数明细(solid.fillet/solid.chamfer):
| 特征 | 参数 | 说明 |
|---|---|---|
| Fillet | radius | 圆角半径 |
| Fillet | edges | 每条选中边上的一个点,一个点锁定整条边 |
| Chamfer | distance/distance2 | 等距倒角,两侧深度 |
| Chamfer | angle | "距离 + 角度"式倒角,与distance配合 |
⚠️ 特征的边/面引用按持久化名字存储:上游改动移动了几何,特征仍挂在正确的面上;真找不到时给出警告,而不是静默挑另一张面。Fillet 对话框里的 G2 类型用精确五次曲线混合,曲率平滑贴合两侧,适合要做反射的曲面。
用抽壳把实心体掏成薄壁
角色:把实心体掏空成指定壁厚,并让一张或多张面保持开放,是外壳、盒子、省材料件的核心操作。
使用场景:需要薄壁的壳体;想保留底面、顶部开口的盒子。
参数表(solid.shell):
| 参数 | 说明 |
|---|---|
thickness | 掏空后的壁厚 |
faces | 选中的开放面——这些位置被掏掉形成开口;脚本里也可以给面名,如"F2:side#1" |
direction | 掏空方向 |
💡 先选开口面、再定壁厚:选中顶面、
thickness填 2,就是一张 2 mm 壁厚的开口盒。脚本形态:{"command":"solid.shell","params":{"faces":[[50,30,30]],"thickness":2}}
用阵列让重复特征批量出现
解决什么问题:把一个特征(孔、凸台)按规则复制多份,免去手工重复建模。三种类型:矩形solid.pattern.rectangular、圆形solid.pattern.circular、沿路径solid.pattern.path。
高光时刻:网格孔位、法兰均布孔、沿曲线排的凸台。
关键参数:
| 参数 | 说明 |
|---|---|
features | 要阵列的特征;副本重放原操作,孔还是孔 |
count/count1、count2 | 实例数,包含原始特征 |
spacing1、spacing2 | 矩形阵列两方向的间距;两方向可成任意夹角,不给第二方向就是单行 |
angle | 圆形阵列总角度:90° 放 6 个就是 18° 一步 |
alignment | 布局,省略默认right;center让原件不动、副本两侧交替 |
axis | 圆形阵列轴:X/Y/Z、{origin, dir},或圆边/圆柱面 |
💡 整圆会把 360° 除以数量,不会在 360° 处重复原件;副本跟随原特征——上游把孔径改大,所有副本一起变。
组合实战:从空文件到一个可改尺寸的底板
以开头的 Sample Plate 为目标:
- 在 XY 平面新建草图,画 80×50 mm 矩形、中心 Ø24 圆和两个对称孔;
solid.extrude,distance填 20,底板成型;- 顶面再画一个圆,拉伸 10 mm,
operation自动选join,凸台长出来; - 选中四条竖棱和孔口边,
solid.fillet,radius3; - 选中一个孔,
solid.pattern.circular,axis: "Z"、count6,整圈均布; - 在 Change Parameters 里加用户参数
width = 80,让矩形长边引用它; - 把
width改成 90:从第一个用到它的特征开始重算,草图、拉伸、凸台、圆角、孔阵列全部联动,无需重画。
想要薄壁就在末尾再加一步solid.shell:faces选顶面、thickness2。
新手常问的三个问题
Q:想加料,拉伸却把模型挖空了?是operation的自动推断在起作用:它在副本上后台试跑 join 来决定 join/cut/new_body。行为不符时显式指定operation即可。
Q:上游尺寸一改,圆角或阵列挂错面了?不会悄悄挂错。引用按持久化名字存,几何移动后特征仍找到正确的面;找不到会警告,而不是静默挑另一张面。
Q:这些特征能用脚本或命令行驱动吗?能。所有命令走同一套引擎:工具栏、脚本、solidcraft-cli exec <id> '<json>'、MCP 都是同一份命令。CLI 还能把设计历史导出成脚本(timeline.export_script),改一个 JSON 数值就重建出零件。
带走五句话
- 特征排在时间轴上,模型从第一个变化处增量重建
- 拉伸建主体,旋转做回转体
- 圆角/倒角是后置工序,引用按名字持久,不会挂错面
- 抽壳先选开口面再定壁厚;阵列的数量包含原件,副本跟随原件更新
- 每个输入都是参数:改一个数字,下游全部重算,命令注册与重放逻辑在 crates/engine/src/cmd/
上手顺序:先画一个约束完整的草图,依次叠拉伸、旋转、圆角、抽壳、阵列,最后把关键尺寸抽成用户参数——你会立刻体会到"改一个数字,整个零件重算"的参 数化闭环。
【免费下载链接】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),仅供参考