☰
如何在 SolidCraft 中 5 步让整条模型跟着参数自动重建
2026/11/4 1:14:35 网站建设 项目流程

如何在 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 里,建模的第一步就是给尺寸"起名字":宽度不写 60,而写width = 60 mm,改数字时特征时间线会从第一个受影响的特征开始重建,孔位、倒角全部自动跟随。下面以一块参数驱动的样板为例,讲清楚怎么建这样的模型、怎么用脚本改参,以及报错都出在哪。

先看地图:参数体系里有什么

SolidCraft 的参数分两类:模型参数是草图标注、特征输入自动生成的(d1、d2……),用户参数是你手动添加的"名称 + 表达式 + 可选注释"。入口和用途如下:

能力入口说明
用户参数MANAGE 选项卡 → PARAMETERS → Parameters名称、表达式、注释,Enter 连续录入
命名值任意尺寸/特征输入框直接输入width = 40立即创建参数并绑定该输入
表达式补全表达式框内 Ctrl+Space,↑/↓ 选择参数名、函数、单位、常数
导出/导入parameters.export/parameters.importCSV 或 JSON,方便交团队
多方案配置CONFIGURATIONS → Config Tableconfig.activate按行切换一组参数值
依赖排查parameters.users/parameters.graph查某参数驱动了哪些特征、有无循环

走通一次重建:parameters.change 的输入与输出

核心机制是一条命令闭环:输入→ 求值与校验 →输出重建结果。

{"command": "parameters.change", "params": {"name": "width", "expression": "80 mm"}}

这条命令把width的值改成 80 mm。引擎会先做单位感知的表达式求值(1 in + 3 mm这类混合运算合法,长度填到角度框会直接报错),再沿时间线重建用到它的所有特征。如何验证结果:返回 JSON 里value是换算后的毫米值,recomputed列出重建过的特征,errors列出失败特征及原因;如果值改回了旧值,restored会标出"结果直接复用、未重算几何"的特征。

批量改参走同一个命令的changes分支,一次提交、只重建一次:

{"command": "parameters.change", "params": {"changes": {"width": "80 mm", "height": "20 mm"}}}

跟着 5 步建一个参数驱动样板

官方参考用例 recipe.json 完整演示了这套结构,可以照着做:

  1. 建草图:SOLID 工具栏 → New Sketch,选 XY 平面。预期:进入草图环境,原点出现在视图中心。
  2. 画矩形加圆,标注填表达式:矩形两条边分别标width、depth,圆直径标hole_d,孔心到原点标width / 2和depth / 2。预期:孔心始终居中,标注上显示的是参数名而不是死数字。
  3. 拉伸成实体:solid.extrude,距离填height。预期:得到带通孔的样板,60×40×15 mm,体积 36000 mm³。
  4. 改参看重建:打开 Parameters 对话框,把width从 60 改成 80。预期:时间线从草图起重建,矩形从起点角向外生长(不会两端同时缩),孔保持居中。
  5. 验证数值:体积应精确变为 48000 mm³。官方的 UI 场景测试 s10_parameters_drive_model.json 就是这么断言的——把d1从 40 改到 55,体积必须从 12000 变成 16500 且errors为 0。

用脚本把改参变成流水线

SolidCraft 的一切操作都是带 JSON 参数的命令,脚本就是一个命令列表,用solidcraft-cli run script.json --out part.step执行(格式见 docs/scripts.md)。官方测试语料里的塑料件脚本 modern-plastic.json 只有两行就确立了"壁厚参数化":

{"command": "parameters.change", "params": {"name": "wall", "expression": "2 mm"}} {"command": "solid.shell", "params": {"faces": [[40, 25, 30]], "thickness": "wall"}}

它先定义壁厚参数,再让solid.shell的厚度直接引用wall——后续换材料规则只改一个值。验证方式:--out导出的 STEP 用任意 CAD 软件量壁厚,应为 2 mm。

两个进阶用法:

  • 范围预检:{"command": "inspect.parameter_sweep", "params": {"parameter": "width", "from": 30, "to": 80, "steps": 9}}会在每个取值上重建一份副本(不动原设计),报告哪些值出现特征失败、草图解算失败。适合"一个模板出多个尺寸"前摸底。
  • 一键切换方案:Config Table 每行存一组参数值、被抑制的特征、材料与外观,config.activate按行名切换,见 docs/configurations.md。

避坑清单:参数报错的四种高频形态

现象原因正确做法
报错说长度不能当角度(反之亦然)表达式类型与输入框不匹配,SolidCraft 不做静默换算显式带单位,如30 deg;裸数字遵循设计单位(mm 设计里2即 2 mm,英寸设计里0.25是 0.25 in)
删除参数被拒绝,错误列出一串名字参数正被表达式、标注或特征引用用parameters.users看引用方;要换名用parameters.rename,引用会级联更新
改参时报循环a → b → a两个参数的表达式互相引用断环:把其中一个改回裸数字或引用第三个参数
改参后某个下游特征失败几何在新取值下不成立(如圆角半径大于壁厚)看errors里的特征名和原因;用inspect.parameter_sweep先扫出合法范围再定值

键盘细节:参数编辑器里按 Enter 提交后焦点回到名称栏,可连续录入;表达式框中 ↑/↓ 选建议、Enter/Tab 接受、Escape 关闭。Preferences › Design 里开着"Step values with the arrow keys and the wheel"(默认关)时,↑/↓ 可以按 1 步进裸数字,Shift 步进 10,Alt 步进 0.1。

命令与语法速查

项内容
parameters.change单个改参 /changes批量 /new_name重命名 /delete删除
parameters.list列出参数,filter可取 all / user / sketch / feature
parameters.users/parameters.graph单参引用方 / 完整依赖图(含循环)
parameters.export/parameters.importCSV 或 JSON,导入是"全成功或全失败"
parameters.favorite/parameters.comment/parameters.move收藏、注释、排序
expr.evaluate不改动设计,试算一个表达式
config.activate激活配置表某一行
运算符+ - * / ^ %与括号
函数sin cos tan asin acos atan atan2 sqrt abs min max floor ceil round exp ln log log10 hypot pow trunc mod等,见 expr.rs
常数pi;单位支持 mm cm m in ft deg rad

延伸资源

  • 参数与表达式官方指南:docs/book/src/guide/parameters.md
  • 特征命令一览:docs/book/src/guide/features.md
  • 脚本格式与 CLI 运行方式:docs/scripts.md
  • 配置表(Configurations):docs/configurations.md
  • MCP 自动化:docs/mcp.md
  • 命令实现:crates/engine/src/cmd/parameters.rs
  • 表达式求值器:crates/doc/src/expr.rs
  • 获取源码:git clone https://gitcode.com/gh_mirrors/so/solidcraft,然后用cargo run --release -p solidcraft-cli -- run examples/bracket.json --out bracket.step跑通第一条脚本。

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

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

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

立即咨询