最近被学员的一个需求戳中了痛点。要做500个工况的参数化仿真批处理,每次计算完都得手动保存应力、变形的后处理结果,不仅费时间,还容易出现文件重名、数据混乱的问题。

其实这个需求根本不用手动硬刚,利用ANSYS Mechanical的Python Code对象,就能实现批处理计算+结果自动导出+规则命名一条龙,全程无需人工干预,500个工况也能轻松拿捏!今天小郭老师就从基础到实操,手把手教你实现这个仿真自动化技巧,干货满满,建议收藏~
一、先搞懂:Mechanical中Python Code到底是什么?
Python Code是ANSYS Mechanical实现仿真自动化的核心工具,简单说就是能让你用Python代码响应软件内的各种操作事件,还能对接MAPDL求解器,把重复的仿真操作全交给代码,效率直接拉满。
它的核心功能就两类,覆盖仿真全流程:
✅ 用Python API查询模型信息,在求解器输入文件里精准注入MAPDL命令;
✅ 触发式执行代码,根据Mechanical的操作事件(如求解完成、后处理结束)自动跑脚本。
✨ 关键特性1:可插入多个父对象,精准控制执行位置
Python Code对象能插在Mechanical大纲的这些位置,插入后自动弹出编辑面板,默认提示会随父对象变化,贴合不同场景需求:
- Body(体)
- Contact Region(接触区域)
- Environment(环境)
- Solution(求解)✅(本次案例核心使用位置)

✨ 关键特性2:Target Callback触发,想啥时候执行就啥时候
每个Python Code对象都有目标回调属性,能指定代码的执行时机,可选值由父对象决定,完美实现“事件触发代码”。 比如插在Solution下,就能选After Post(后处理完成后) 执行,刚好契合我们导出后处理结果的需求! 不同父对象的回调可选值给大家整理好了,直接抄作业:
| Model | After Mesh GeneratedAfter Geometry ChangedAfter Object Changed |
| Body | Get Body CommandsAfter Object Changed |
| Contact Region | Get Contact CommandsAfter Object Changed |
| Environment | Get Solve CommandsBefore SolveAfter Object Changed |
| Solution | Get Post CommandsAfter SolveAfter PostAfter Object Changed |

✨ 关键特性3:必做操作!代码修改后要手动连接
编辑后Connected属性会变成False,不重新连接就不会执行。共两种方式快速重连:
1、点击功能区的Connect按钮;
2、右键Python Code对象,直接选Connect。

而在ANSYS批处理模式下,默认不会自动连接Python Code对象,这也是很多人代码在批处理中失效的原因!
只需在Workbench做3步全局设置,就能让批处理自动连接、执行代码:
1、进入Workbench项目页,点击Tools > Options打开选项框;
2、左侧选中Mechanical选项;
3、勾选Connect/Run Python Code Objects when Mechanical is Launched,点确定即可。

二、实操案例:架支座仿真批处理,结果自动导出+规则命名
光说不练假把式,以架支座参数化优化仿真为例,教你一步步实现:不同支座尺寸、肋板尺寸、作用力下,位移/应力结果自动导出,按设计点命名不重名!
📌 需求背景
架支座为结构钢材质,受变力作用,需批量仿真不同尺寸、不同载荷的工况,自动导出每个工况的总变形和等效应力结果,文件按“设计点_结果类型”命名,避免冲突。

📌 步骤1:ANSYS基础参数设置
先完成参数化配置,定义输入参数和响应变量,为批处理做准备:
- 输入参数(P1-P3) :支座尺寸(TB_Z)、肋板尺寸(TB_j)、Y向作用力;
- 响应变量(P4-P5) :最大总变形、最大等效应力;
- 工况配置:按优化需求设置多组输入参数组合(本次演示3组,500组同理。可手动输入,也可利用Workbench Python API,批处理完成)。



📌 步骤2:Mechanical中Python Code核心设置
这是实现自动导出的关键,全程在Solution模块下操作:
1、插入Python Code:在大纲Solution下插入Python Code对象
2、设置回调时机:将Target Callback改为After Post(后处理完成后) ;

3、编写导出代码:替换默认代码,实现获取设计点+自动命名+导出文本文件,直接复制可用!

📌 核心代码:直接抄!后处理结果自动导出

📌 代码核心讲解
🔹 导入wbjn和os库:wbjn用于调用 ANSYS 的 API 获取设计点、文件目录等信息,os用于文件路径的拼接与处理;
🔹 获取设计点编号:通过Parameters.GetActiveDesignPoint().Name获取当前批处理的设计点名称,拼接 “DP” 前缀,实现不同工况的文件区分;
🔹 获取统一保存目录:通过GetUserFilesDirectory()获取 ANSYS 的用户文件目录,确保所有工况的结果文件保存在同一位置,方便后续整理;
🔹 遍历结果对象:通过DataModel.GetObjectsByType获取所有后处理结果对象,无需单独指定位移、应力,适配不同的结果导出需求;
🔹 规则命名与导出:按设计点_结果类型.txt的格式命名文件,避免多工况文件重名,通过ExportToTextFile将结果导出为文本文件,支持后续数据解析。
📌 步骤3:批处理求解,查看自动导出结果
所有设置完成后,关闭Mechanical,回到Workbench,作如下操作:
1、双击Parameter Set(参数集) ,确认所有工况的输入参数;
2、点击运行,软件自动执行所有设计点的批处理计算;
3、计算完成后,直接查看两类结果,全程无需手动操作!


✅ 结果1:参数表直观查看核心数据
在Workbench设计点表格中,直接看到每个工况的最大位移、最大应力,一键对比不同参数的力学性能,优化方向一目了然。

✅ 结果2:user_files目录获取完整数据
在ANSYS的 【-files/user_files】 文件夹下,能找到所有按规则命名的结果文件,每个文件都是对应工况的位移/应力完整数据,可直接用Excel/记事本打开解析,满足深度分析需求。

三、总结:核心要点记牢,仿真自动化事半功倍
本次案例用Python Code解决了批处理仿真后处理结果自动导出的痛点,500个工况也能轻松应对,核心要点就这4点,记牢直接套用:
其实Python Code的能力远不止于此,在此基础上还能扩展:仿真报告自动生成、瞬态时域数据导出、不可参数化对象的参数化……把仿真中所有重复的手动操作都交给代码,真正实现仿真自动化!
如果大家还有其他ANSYS仿真自动化的痛点,比如多模型批量求解、结果自动分析,评论区留言,后续持续出干货教程~
写在最后
其实ANSYS二次开发不用追求“高大上”,从实际工程需求出发,用几行代码解决一个具体痛点,就是最实用的开发。比如这个工具,看似简单,却能让工程师从重复的手动操作中解放出来,把时间花在更核心的仿真分析上——这正是二次开发的核心意义。
为了更好的分享各种二次开发学习知识,我还创建了二次开发交流群,并于群里分享各种二次开发文章及相关源程序,欢迎大家评论区留言加入!

点击阅读原文,立即学习《ANSYS Workbench & Mechanical企业级二次开发程序与Python应用入门进阶》,掌握ANSYS Workbench & Mechanical的脚本自动化开发能力。
本课程从基础脚本开发到多工况批量计算的自动化实现,手把手教你用 Python 打通 “仿真流程自动化 – 多工况批量计算” 全链路,让 “重复仿真工作自动化、复杂工况高效计算” 从想法变成日常。
我还为付费用户提供VIP群进行交流、答疑服务、持续加餐内容、提供定制化培训和咨询服务、仿真人才库高薪内推就业、仿真秀还提供奖学金、学完此课程,推荐学习者报名参加工程仿真技术(CAE分析职业能力等级评价证书)。





