ANSYS 有限元基准算例:用 Python 搭建中心孔板拉伸静力流程

需求描述:基准算例流程复现
大家好,我是小郭老师,中科院硕士,长期从事 ANSYS 二次开发与仿真流程自动化,曾帮助多个研究所、研究院、国企和大型企业完成 ANSYS 二次开发项目。
在 Mechanical 的有限元/数值计算结构静力场景中,中心孔板拉伸是论文、教学和强度校核里常见的结构静力基准算例:一侧固定,另一侧施加拉力,再查看变形和等效应力。它不复杂,但很适合检查一个静力分析流程是否完整、规范。
本文脚本使用 Worksheet 创建固定端和受力端 Named Selection,再创建 Fixed Support、Force、Total Deformation 和 Equivalent Stress。它的价值在于按既定分析流程把前处理设置、载荷约束和结果对象串起来,便于复现实验或论文中的基础算例。
这类脚本思想放到企业项目里,会更有实际意义。很多求解任务并不是临时点几个对象,而是有明确的分析流程:先做模态分析,再做响应分析;或者在热力耦合分析里,先完成温度场求解,再把温度结果传递到结构场。流程一旦确定,就可以把多个分析系统、边界条件、结果对象和求解顺序写进脚本里,让 Mechanical 一次性搭好完整求解链路,再按顺序开展求解。
脚本实现思路
实现时,脚本从当前模型、第一个 Analysis 和对应 Solution 开始,先处理两端面的 Named Selection,再把约束、载荷和结果对象依次挂到分析树上。
它适合用于教学算例、论文基准模型或重复建模场景,把“选端面、加约束、加载荷、补结果对象”这些固定动作集中成一段可复用脚本。
需要注意的是,脚本会删除名称以 NS_Plate_ 开头的旧 Named Selection,再重新生成两端面选择。如果项目里已有同名前缀的人工选择,需要先确认不会误删。
整体执行过程可以理解为下面几步:

第一步,脚本进入当前 Mechanical 模型,取得第一个 Analysis 和它的 Solution。
第二步,脚本清理旧的 NS_Plate_ 前缀选择,避免重复对象干扰。
第三步,脚本用 Worksheet 规则按 X 坐标最小/最大自动识别两端面。
第四步,脚本把固定端选择赋给 Fixed Support,把受力端选择赋给 Force,并设置 1000 N 载荷。
第五步,脚本在 Solution 下插入总变形和等效应力结果对象,便于后续求解后查看。
源码及其讲解

这段脚本先把一个静力拉伸算例需要的 Mechanical 对象搭出来。入口是 DataModel.Project.Model,随后取得 model.Analyses[0] 和 analysis.Solution。初始项目中,model.NamedSelections 可能是 None,这时不能直接访问 model.NamedSelections.Children。脚本先判断 Named Selection 分组是否已经存在;如果存在,再删除名称以 NS_Plate_ 开头的旧选择。新的端面选择通过 model.AddNamedSelection() 创建。
新的 Named Selection 使用 Worksheet 规则生成:固定端通过 LocationX + Smallest 找到 X 坐标最小的面,受力端通过 LocationX + Largest 找到 X 坐标最大的面。这种写法依赖模型几何方向,如果模型坐标系或拉伸方向变化,规则也要同步调整。
载荷和约束部分比较直接:analysis.AddFixedSupport() 绑定固定端,analysis.AddForce() 绑定受力端,并把力的大小设置为 1000 N。最后,脚本在 Solution 下添加总变形和等效应力结果对象。运行后可以沿着对象树继续检查几何方向、网格、材料、载荷单位和求解结果,让这个中心孔板算例形成清楚的建模复核路径。
脚本运行结果
运行后,Static Structural 分析下会得到固定约束、力载荷、总变形和等效应力结果对象。求解后可查看中心孔附近的应力集中。
脚本执行前:
脚本执行后:
脚本扩展方向
- • 将几何尺寸、材料参数、载荷大小和网格尺寸参数化,批量生成不同孔径或板厚算例。
- • 增加位移约束、拉伸载荷和结果对象的同名检查,让流程可以重复运行和更新。
- • 自动导出最大等效应力、最大变形和关键云图,用于中心孔应力集中对比。
- • 与参数扫描或课程演示流程结合,把建模、求解、结果提取整理成一键化教学案例。
- • 扩展到企业标准流程,把模态分析、响应分析、热力耦合分析等固定求解链路写成模板脚本,一次性生成分析对象并依次求解。


总结
中心孔板拉伸的价值,在于它足够典型:有明确的几何位置、边界约束、拉伸载荷和应力集中结果,适合作为静力分析流程训练和论文基准算例复现的入口。
本文脚本把 Named Selection、固定约束、力载荷和结果对象按固定顺序搭起来,让基准算例更容易复现和检查。其中 Named Selection 的创建要注意一个细节:初始项目里 model.NamedSelections 可能为空,创建新选择应从 model.AddNamedSelection() 开始,不能默认对象树里已经有 NamedSelections.Children。
用于强度校核、论文对比或企业标准化分析时,可以继续沿着模型尺寸、材料参数、网格质量和结果收敛性逐项核对。更进一步,也可以把这种“先搭流程、再顺序求解”的思路扩展到多分析流程中,让脚本承担重复搭建分析树的工作,把工程师的精力留给边界条件确认和结果判断。
你平时做 Mechanical 项目时,最想交给 Python 处理的是哪一步?可以把模型类型、现在最费时间的操作、希望批量处理的对象写在评论区,我后面可以按场景继续拆脚本。