znlgis 博客

GIS开发与技术分享

第07章:参数化、表达式与 Spreadsheet

1. 参数化设计的价值

参数化设计让模型从“静态形状”变成“可计算的设计规则”。修改一个关键尺寸后,相关草图、特征、阵列、工程图和导出结果可以自动更新。FreeCAD 的参数化能力来自:

  • 文档对象属性。
  • 草图约束。
  • 表达式引擎。
  • Spreadsheet 表格。
  • 对象依赖图与重计算机制。

2. 表达式基础

大多数数值属性右侧可输入表达式。表达式可以引用对象属性、草图约束、Spreadsheet 单元格和数学函数。表达式使用对象名和属性路径,例如长度、角度、Placement 分量等。

使用建议:

  • 对关键尺寸建立集中参数表。
  • 给草图约束命名,而不是引用匿名序号。
  • 对表达式使用单位,避免 mm、deg、rad 混淆。
  • 避免循环引用。
  • 修改参数后观察报告视图是否有表达式错误。

3. Spreadsheet 工作流

Spreadsheet 是 FreeCAD 中组织参数的常用方式。典型步骤:

  1. 新建 Spreadsheet。
  2. 在 A 列写参数名称,在 B 列写数值,在 C 列写说明。
  3. 给重要单元格设置 Alias。
  4. 在草图或特征属性中引用 Alias。
  5. 修改表格后重计算文档。

命名建议:

  • body_length:主体长度。
  • body_width:主体宽度。
  • plate_thickness:板厚。
  • hole_diameter:孔径。
  • bolt_count:螺栓数量。

使用英文 Alias 有利于脚本和跨语言协作;说明列可以写中文。

4. 参数层级

复杂模型不应把所有参数扁平堆放。可分为:

  • 总体参数:长宽高、材料厚度、间隙。
  • 接口参数:孔距、安装面、连接尺寸。
  • 制造参数:刀具半径、最小倒角、板材规格。
  • 派生参数:由公式计算的中间尺寸。
  • 显示参数:颜色、透明度、线宽等。

派生参数应在 Spreadsheet 中明确写出,便于检查设计意图。

5. 重计算机制

当对象属性变化时,FreeCAD 会标记依赖对象需要重计算。用户可以手动重计算文档。复杂模型中,重计算时间和失败概率会上升。建议:

  • 分阶段保存版本。
  • 大改参数前备份文件。
  • 发现失败后从最早失败特征开始排查。
  • 不要忽略模型树中的红色感叹号。
  • 对导入几何和网格操作减少不必要的参数依赖。

6. 拓扑命名问题

拓扑命名问题是参数化 CAD 常见难点:模型上游变化后,面、边、顶点的内部编号可能改变,下游引用失效或指向错误对象。规避策略:

  • 草图尽量建在基准平面而不是临时生成面。
  • 使用 Datum Plane、Datum Line、ShapeBinder 组织引用。
  • 将重要基准显式建模。
  • 减少对圆角后边的引用。
  • 大幅修改主体结构后检查所有下游草图和特征。

7. 配置化模型

一个模型可以通过 Spreadsheet 实现多规格配置,例如不同孔距、长度、厚度。实践建议:

  • 用一列保存当前配置参数。
  • 另建区域保存多个规格表。
  • 通过复制数值或脚本切换配置。
  • 每个配置都重计算并导出验证。
  • 对极端值测试草图和特征是否失败。

8. 参数化检查清单

发布或交付模型前检查:

  • 关键尺寸是否集中管理。
  • 草图是否完全约束。
  • 表达式是否无错误。
  • 修改核心参数后模型是否能重计算。
  • 工程图尺寸是否更新。
  • 导出 STEP/STL 是否是最新状态。
  • 文件中是否残留无用对象或实验对象。