ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

SolidCraft 上手指南:5 个实体特征让一张草图变成可反复改的零件

SolidCraft 上手指南:5 个实体特征让一张草图变成可反复改的零件

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 的圆角。

给你的上手路线

  1. 画一张约束完整的草图(尺寸全部驱动,不留自由几何);
  2. 依次叠加:Extrude 打底 → Revolve 做回转部分 → Fillet/Chamfer 收边 → Shell 掏薄壁 → Pattern 批量复制;
  3. 把关键尺寸抽成用户参数,在 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),仅供参考

返回列表