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 写的开源 CAD 工具,走的是参数化 3D CAD 路线:你画草图、叠特征,之后改任何一个尺寸,整张模型自动重算。这篇文章不讲抽象概念,而是带你走一遍真实流程——从一块空白的草图平面开始,把底板、凸台、收边、薄壁和一圈法兰孔依次做出来,顺带把拉伸、旋转、圆角/倒角、抽壳、阵列这 5 个最常用的实体特征讲透。
先把第一块底板拔出来:Extrude 拉伸
一句话人话版:拉伸就是把一张闭合的草图"垫"出厚度,是建实体出现频率最高的动作。
你画一个带圆角的矩形,选中它做拉伸,弹窗里要决定的事情其实不多:
distance:拔多高,支持表达式,比如20或2 * width;direction:positive往一面拔、negative往另一面拔、symmetric以草图平面为中心两侧各走一半;taper:给侧壁一个锥度角,就能做出上小下大的截头锥;through_all:不填距离,直接穿到对面;operation:new_body/join/cut/intersect,决定这块材料是独立成体、并进去、挖出来还是取交集。
💡 新手最常困惑的"为什么我拉了个孔它自己把材料挖掉了"就出在operation上:SolidCraft 会按当前组件里有没有实体、以及新料和已有材料怎么接触,自动在 join 与 cut 之间做选择,你手动指定过的操作则会一直保持。想留一个独立的新零件,请显式选new_body。
把凸台立起来:Revolve 旋转
一句话人话版:旋转是让草图绕一根轴转个角度,专攻杯、盘、法兰、轴、轮毂这类回转体。
参数有四个:angle(转多少,360就是一整圈)、angle2(双侧旋转时的第二个角度)、symmetric(把角度围绕草图对称分配)、axis(旋转轴)。轴可以来自草图中心线,也可以直接点选模型上的圆边或圆柱面。
画这类草图有个纪律:截面要画在轴的一侧,别跨轴。跨了轴会得到意料之外的形状或直接报错。对称旋转会围绕草图剖面均分角度,方向由草图法线决定,所以轴指向写反也不会把零件转反。
磨掉毛刺:Fillet 与 Chamfer 怎么选边
一句话人话版:圆角把锐边磨成圆弧,倒角把锐边削成斜面,都是给零件"收尾"的。
Fillet 看radius就够了;Chamfer 可以只用distance(或distance2做不等距),也可以distance加angle组合。选边有个小技巧:不用精确框住整条边,在每条目标边上点一个点就能锁定它。
覆盖范围上,SolidCraft 支持平面之间的直线边、整条光滑环、带斜接或球形圆角的相邻边链,以及闭合的曲线边链。
💡 这两类特征是典型的"后置工序",一般放在拉伸、旋转之后。更关键的是底层机制:特征对面、边的引用是按名字存储的。上游改动让几何挪了位置,下游特征照样挂在正确的那张面上;实在找不到时它会警告你,而不是默默挑一张别的面继续做。
把实心掏成薄壁:Shell 抽壳
一句话人话版:抽壳是把实体掏空成指定厚度的薄壁,还能指定哪几张面留开口。
它只有两个决策点:
thickness:壁厚,掏完之后材料剩多厚;faces:选中的"开放面",这些位置会被掏掉形成开口。
direction控制向内还是向外掏空。想做一个顶面开口的盒子,选中顶面再设一个thickness就完事。SolidCraft 的内表面会向内偏置并延伸到相交处,转角处不会留下悬空的边。
一圈法兰孔别手画:Pattern 阵列的三种形态
一句话人话版:阵列是把某个特征(孔、凸台、槽)按规则复制成一份,而不是让你手动重复建模。
| 类型 | 命令 | 适合 |
|---|---|---|
| 矩形阵列 | solid.pattern.rectangular | 网格状排布的孔或凸台 |
| 圆形阵列 | solid.pattern.circular | 沿圆周均布,比如法兰孔 |
| 路径阵列 | solid.pattern.path | 沿一条草图曲线分布 |
共同参数是pattern(类型、数量、间距)、features(被复制的特征)和bodies(作用实体)。圆形阵列的axis可以直接填X/Y/Z,也可以给显式原点加方向,或者点选一条圆边、一个圆柱面作为轴。
💡 阵列的本质是"变换后重放":复制出来的孔会跟随原孔一起更新。你后面把孔径从 5 改成 6,12 个孔会一起变。
改一个数字,整张图纸自动重画
上面每个输入框里的值,都是一个模型参数(d1、d2……)。你可以再加用户参数——带单位、表达式和注释——然后在Change Parameters里改它,时间轴会从第一个用到它的特征开始往下重算。
表达式是单位感知的:2 * width + 5 mm、angle / 2、1 in + 3 mm都能直接用;长度和角度混用会报错,而不是悄悄换算。
这就是参数化的爽点:把底板厚度从 24 改成 32,凸台高度、圆角、抽壳壁厚只要引用了对应参数,会全部跟着重建,你不用碰任何草图。
新手最常问的三个问题
Q1:加了个凸台,结果材料被挖掉了?九成是operation自动选成了cut。在拉伸或旋转的弹窗里显式指定 join 或 new_body,之后这个选择会一直保持。
Q2:我删掉的特征还能找回来吗?能。时间轴上的特征可编辑(双击)、抑制、回滚、删除,整个操作是一个可撤销的步骤;删除前如果有下游依赖,它会先列出来提示你。
Q3:这些操作能用脚本驱动吗?可以。界面点选的命令和脚本走同一套命令引擎,CLI 里用solidcraft-cli exec <command> [json-params]就能执行一条命令,比如把半径改成 3 的圆角。
给你的上手路线
- 画一张约束完整的草图(尺寸全部驱动,不留自由几何);
- 依次叠加:Extrude 打底 → Revolve 做回转部分 → Fillet/Chamfer 收边 → Shell 掏薄壁 → Pattern 批量复制;
- 把关键尺寸抽成用户参数,在 Change Parameters 里改一个值,验证整条时间链重算。
想再深入一层:完整特征文档见 docs/book/src/guide/features.md,参数与表达式机制见 docs/book/src/guide/parameters.md;命令注册与重放逻辑的源码在 crates/engine/src/cmd/,几何内核在 crates/kernel/。
【免费下载链接】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),仅供参考