☰
SolidCraft 零基础参数化教程:4 个参数如何驱动整个模型
2026/11/4 11:14:40 网站建设 项目流程

SolidCraft 零基础参数化教程:4 个参数如何驱动整个模型

【免费下载链接】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

把板宽从 60 改成 80,板上那只居中圆孔完全不用手动挪——它会自动保持居中。这正是 SolidCraft(纯 Rust 开源参数化 3D CAD)参数与表达式系统带来的能力:改一个数,整条时间线增量重建,几何跟着公式走。

实操先行:三步搭出参数化底板 🛠️

拿最经典的例子:一块由width、depth、height、hole_d四个参数驱动的底板,板上一只居中圆孔。

  1. 建参数:width = 60 mm、depth = 40 mm、height = 15 mm、hole_d = 10 mm。
  2. 把公式绑到尺寸标注:草图矩形两条边分别填width和depth,孔直径填hole_d,拉伸距离填height;关键一步是孔心坐标写成width / 2、depth / 2。
  3. 改参数看重建:把width改成 80,矩形变宽,圆孔自动保持居中,时间线从第一个受影响特征开始增量重建。

新手最容易漏掉的就是第 2 步——位置关系也要用公式锁死。只给尺寸起名字、不给位置写公式,板子一缩放孔就"飘"了。

官方参考用例放在 tests/oracle/24-user-parameters/recipe.json,参数表和每处尺寸标注都是明文 JSON,可以逐步对照。

参数体系全景:模型参数 vs 用户参数

在 SolidCraft 里,每个尺寸与特征输入本身就是一个参数:草图标注的40、拉伸距离的10,都会被自动编号为d1、d2……这套"模型参数"默认就在,只是用编号引用不太方便。用户参数就是为此而加的第二类:自己起名,任何表达式都能按名字引用它。它由三部分组成:

组成示例作用
名称wall模型内唯一,供其他表达式按名引用
表达式2 mm或width / 2 + 1支持公式,不只是裸数字
注释外壳壁厚,随 ABS 规则调整可选,方便自己和团队理解

官方逐字说明见书中的 parameters.md。

表达式引擎:单位感知与类型安全

SolidCraft 的表达式是单位感知的,这是新手最容易被低估的能力:

  • 1 in + 3 mm:不同单位混合运算,自动换算
  • angle / 2:角度直接参与计算
  • sqrt(area)、sin(x):三角、开方等数学函数齐备

可用运算符为+ - * / ^与括号,函数包括sin cos tan asin acos atan atan2 sqrt abs min max floor ceil round mod trunc及单位换算。

⚠️ 类型安全是它的另一条底线:把长度填进期望角度的输入框(或反过来)会直接报错,绝不"悄悄帮你换算"。输入时大声报错,比几何悄悄算错安全得多。命令的底层实现在 crates/engine/src/cmd/parameters.rs。

参数编辑器:录入、补全与依赖管理

SOLID 工具栏 CONFIGURE 面板里点Parameters打开参数编辑器,用户参数和d1式模型参数在这里集中管理,细节做得相当足:

  • Enter 连续录入:在名称/表达式/注释栏提交后,焦点自动回到名称栏,批量录入很快
  • ↑/↓ 表达式补全:输入时弹出参数名、函数名、单位、常数的建议,Enter/Tab 接受,Escape 关闭
  • 重命名级联更新:改参数名,所有引用它的表达式、尺寸标注、特征输入自动跟随
  • 循环依赖可视化:a → b → a这类循环会连完整路径一起报出来,而不是莫名错误
  • 受保护删除:正在被使用的参数删不掉,错误信息会列出每一处使用它的地方

补全逻辑见 crates/ui-egui/src/expression_complete.rs。

脚本化建模:一条命令驱动重建 🚀

SolidCraft 的一切操作都是带 JSON 参数的命令,所以"改参数→重建模型"完全可脚本化,parameters.change桌面端、CLI、MCP 通用:

{"command": "parameters.change", "params": {"name": "wall", "expression": "2 mm"}}

配合solidcraft-cli,一段脚本就能完成建模、改参、导出。官方测试语料 modern-plastic.json 先用它设定壁厚wall,solid.shell的厚度直接引用——日后换材料规则只需改一个值。

重建结果还可被断言:UI 场景测试 s10_parameters_drive_model.json 把d1从 40 改为 55,断言模型体积从 12000 精确变为 16500——公式驱动,结果可验证。

进阶技巧

  • 裸数字遵循设计单位:mm 设计里直接填2就是 2 mm,英寸设计里就是 2 in;想显式换算就写"1 in"
  • 参数导出/导入:parameters.export/parameters.import支持 CSV 和 JSON,参数表可以交给采购或工艺同事,改完再导回来
  • Configurations 多变体:配置表每行存一组参数值、被抑制的特征、材料与外观,config.activate一键切换,适合"同一设计、不同厚度版本"
  • 改参前查依赖:parameters.users看某个参数驱动了哪些特征,parameters.graph返回完整依赖图——大模型里先看图再动手

常见问题速答

Q:公式报"长度不能当角度"?检查输入框的单位要求,在表达式里显式带上单位(如30 deg),不要用裸数字跨类型。

Q:改参数后某个特征重建失败?重建会列出失败特征的名称和原因;失败特征不会静默跳过,也不会产出残缺的导出文件。

Q:参数越来越多怎么整理?善用注释字段加收藏(parameters.favorite);再导出 CSV 做台账,团队共享后导入回来。

参数化建模的上手路径其实很短:先给关键尺寸起名字,再让位置关系也用公式表达,剩下的交给自动重建。特征侧的完整玩法可看书中的 features.md。

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询