首页 / 资讯中心 / 文章详情

SolidCraft 参数化 CAD 上手全解:改一个 24 mm,看整机箱如何自动重建

SolidCraft 参数化 CAD 上手全解:改一个 24 mm,看整机箱如何自动重建 ★ FEATURED ARTICLE
SolidCraft 参数化 CAD 上手全解改一个 24 mm看整机箱如何自动重建【免费下载链接】solidcraftSolidCraft: an open-source parametric 3D CAD application built in pure Rust. Desktop, web, and automation through MCP.项目地址: https://gitcode.com/gh_mirrors/so/solidcraftSolidCraft 是一个用纯 Rust 写的开源参数化 3D CAD桌面端、浏览器版和 MCP 自动化跑的是同一套代码。这篇文章不铺功能清单而是跟着一次真实改动走把机箱高度从 24 mm 改成 32 mm看这个数字在源码里穿过参数表、约束求解器、特征时间线三站最后让整个模型自动重建。读完你能对着 SolidCraft 源码 说出每一站发生了什么。在参数面板把 24 改成 32改动先落到哪你在参数面板敲下的不是一个测量值而是一个带名字的数字。草图里标的长度、拉伸框里填的距离在底层都登记成模型参数按出现顺序起名d1、d2见 crates/doc/src/params.rs。那里的注释一句话点破每个参数都能被任意表达式按名字引用依赖图和环都从表达式的引用关系推出来。联动因此是自动的。把机箱高度建成参数height后面写height / 2的拉伸、圆角表达式会跟着变你只管改一个值。表达式是单位感知的2 * width 5 mm、1 in 3 mm都能算但长度填进角度位置会直接报错而不是悄悄换算。规则细节在 docs/book/src/guide/parameters.md参数循环依赖会带路径报出来a → b → a重命名会自动改到所有引用它的表达式、尺寸和特征输入正在被用的参数删不掉报错会列出它的使用方。求解器接棒约束怎么被解成坐标改动落到数字数字还得落到坐标。参数一变引用它的草图就要重新求解。约束被定义成一个完整枚举 ConstraintKind。几何关系占一列Coincident重合、PointOnCurve点在线上、Horizontal/Vertical、Parallel、Perpendicular、Collinear、Tangent、Equal、Concentric、Midpoint、Symmetric、Fix另一列是驱动尺寸Distance、Length、Radius、Diameter、Angle等。前者管形状关系后者管数值大小。求解器是自研的策略写在 crates/sketch/src/solver.rs 的模块注释里。未知量是每个未固定点的坐标加上每个圆的半径每条约束贡献一份以毫米计的残差满足时残差为零。系统按连通分量拆开每个分量用阻尼 Gauss–Newton也就是 Levenberg–Marquardt 迭代在稠密 Jacobian 上推进。能被精确求出的点——比如两条已知几何的交点——会先消掉、不进矩阵只有剩下部分才交给迭代。求解完最关键的一步是自由度分析。Jacobian 的秩直接给出还剩多少自由度degrees of freedom简称 dof以及哪些点已被定死。SolveReport 里dof为 0 就是完全约束failing列出没解平的约束point_determined/curve_determined标记每个点、每条曲线是否被完全确定。对应到界面就是三态欠约束dof 0几何呈蓝色元素还能拖完全约束dof 0几何变深位置被约束固定过约束再加一条已经满足的约束会被拒绝而不是硬套上去。用户指南 里的原话是欠约束的几何是蓝色完全约束的变深状态栏显示剩余自由度会导致过约束的约束或尺寸会被拒绝而不是应用。正因为 SolidCraft 存的是约束和取值、而非最终网格设计意图被保存了下来任何一次改动都可预测、可追溯。时间线找重建起点只从第一个变了的特征算草图解完实体还要跟着重算。所有特征挂在一条时间线上extrude、revolve、sweep、loft、fillet、chamfer、shell、draft、holes、patterns、mirror、split、combine……增量评估是这套机制的核心。crates/doc/src/lib.rs 的模块注释写得很直白只有某个特征自身、它用到的参数、或它之前的特征发生变化时它才被重算。crates/doc/src/eval.rs 的核心函数注释是 reuse results up to the first changed feature。落到效果上一条 50 步的历史你改第 3 步的尺寸前 2 步的结果原样复用从第 3 步往后重建而不是 47 步全部推倒。重建能精准到这一步靠的是持久化命名persistent naming。特征对面边的引用按名字存上游编辑把几何挪了位置下游特征仍按名字找回同一个面找不到时给警告而不是静默选错。文档在 docs/book/src/dev/naming.md。这条时间线还对外开了脚本口。docs/book/src/guide/features.md 里有现成命令{command: timeline.inspect, params: {feature: Slab}} → inputs: [{label: Distance, param: d1, expression: 10, unit: mm}] {command: timeline.edit, params: {feature: Slab, set: {extent: {distance: 12}}}}inputs把特征输入和参数一一对应d1→ 距离 10 mmtimeline.edit换一个表达式就驱动一次重建。参数化模型因此能被脚本和 AI 直接改。照着演示复现24 → 32 mm 每一步对应什么上面三站串起来就是 README 里那张动图做的事从空设计建一个树莓派 4 机箱最后把高度从 24 mm 改成 32 mm全模型自动重建见 README.md。逐步对上号尺寸主板上 58 × 49 mm 的安装孔矩形成参数立柱间距、槽宽槽深都落进参数面板对应第一站的dN约束底座、立柱、通风槽的轮廓用相切、对称、重合把形状关系定住对应第二站的ConstraintKind与自由度历史树extrude 底座 → fillet 圆角 → shell 抽壳 → 按孔位 pattern 出 M2.5 立柱 → 挖端口与通风槽每一步都是时间线上一个特征对应第三站的增量重建参数驱动参数面板里把高度从 24 改到 32所有依赖它的拉伸、立柱、槽位整体重建中间没有手动操作这就是只从第一个变了的特征算。下一步让 AI 动手或钻进求解器想少看几行 Rust可以直接用内置的 MCP 服务器让 AI 代理建模、测量、查零件入口在 docs/book/src/guide/mcp.md。想看清参数化建模的原理最该读的是 crates/sketch/src/solver.rs 的模块注释和 SolveReport 的字段再回头看 crates/doc/src/eval.rs 的增量评估。两条路一条到交互一条到原理。【免费下载链接】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),仅供参考
阅读完成 · 觉得有帮助?
咨询建站