首页/文章/ 详情

500组工况批处理仿真?ANSYS Python Code让后处理结果自动导出!

8月前浏览612

py导读: 大家好,我是小郭老师,硕士毕业于中科院,专注于运用 Python 深度集成 ANSYS 进行工程数值计算与仿真自动化开发,精通基于 Python实现ANSYS Workbench众多模块的全流程脚本驱动(建模、求解、后处理),并具备将复杂仿真流程封装为高效、可复用软件工具的专业能力,今天给大家分享一些ANSYS二次开发方面的干货。



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

image.png

其实,关于这个需求,利用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(求解)✅(本次案例核心使用位置)

image.png

✨ 关键特性2:Target Callback触发,想啥时候执行就啥时候

每个Python Code对象都有目标回调属性,能指定代码的执行时机,可选值由父对象决定,完美实现“事件触发代码”。
比如插在Solution下,就能选After Post(后处理完成后) 执行,刚好契合我们导出后处理结果的需求!
不同父对象的回调可选值给大家整理好了,直接抄作业:

父对象目标回调可选值
ModelAfter Mesh Generated
After Geometry Changed
After Object Changed
BodyGet Body Commands
After Object Changed
Contact RegionGet Contact Commands
After Object Changed
EnvironmentGet Solve Commands
Before Solve
After Object Changed
SolutionGet Post Commands
After Solve
After Post
After Object Changed

image.png

✨ 关键特性3:必做操作!代码修改后要手动连接

编辑后Connected属性会变成False,不重新连接就不会执行。共两种方式快速重连:

1、点击功能区的Connect按钮;

2、右键Python Code对象,直接选Connect。

image.png

而在ANSYS批处理模式下,默认不会自动连接Python Code对象,这也是很多人代码在批处理中失效的原因!

只需在Workbench做3步全局设置,就能让批处理自动连接、执行代码:

1、进入Workbench项目页,点击Tools > Options打开选项框;

2、左侧选中Mechanical选项;

3、勾选Connect/Run Python Code Objects when Mechanical is Launched,点确定即可。

image.png

二、实操案例:架支座仿真批处理,结果自动导出+规则命名

光说不练假把式,以架支座参数化优化仿真为例,教你一步步实现:不同支座尺寸、肋板尺寸、作用力下,位移/应力结果自动导出,按设计点命名不重名!

📌 需求背景

架支座为结构钢材质,受变力作用,需批量仿真不同尺寸、不同载荷的工况,自动导出每个工况的总变形和等效应力结果,文件按“设计点_结果类型”命名,避免冲突。

image.png

📌 步骤1:ANSYS基础参数设置

先完成参数化配置,定义输入参数和响应变量,为批处理做准备:

  • 输入参数(P1-P3):支座尺寸(TB_Z)、肋板尺寸(TB_j)、Y向作用力;

  • 响应变量(P4-P5):最大总变形、最大等效应力;

  • 工况配置:按优化需求设置多组输入参数组合(本次演示3组,500组同理。可手动输入,也可利用Workbench Python API,批处理完成)。

image.pngimage

image.pngimage

image.png

📌 步骤2:Mechanical中Python Code核心设置

这是实现自动导出的关键,全程在Solution模块下操作:

1、插入Python Code:在大纲Solution下插入Python Code对象

2、设置回调时机:将Target Callback改为After Post(后处理完成后);

image.png

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

image.png

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

image.png

📌 代码核心讲解

🔹 导入wbjn和os库:wbjn用于调用 ANSYS 的 API 获取设计点、文件目录等信息,os用于文件路径的拼接与处理;

🔹 获取设计点编号:通过Parameters.GetActiveDesignPoint().Name获取当前批处理的设计点名称,拼接 “DP” 前缀,实现不同工况的文件区分;

🔹 获取统一保存目录:通过GetUserFilesDirectory()获取 ANSYS 的用户文件目录,确保所有工况的结果文件保存在同一位置,方便后续整理;

🔹 遍历结果对象:通过DataModel.GetObjectsByType获取所有后处理结果对象,无需单独指定位移、应力,适配不同的结果导出需求;

🔹 规则命名与导出:按设计点_结果类型.txt的格式命名文件,避免多工况文件重名,通过ExportToTextFile将结果导出为文本文件,支持后续数据解析。

📌 步骤3:批处理求解,查看自动导出结果

所有设置完成后,关闭Mechanical,回到Workbench,作如下操作:

1、双击Parameter Set(参数集),确认所有工况的输入参数;

2、点击运行,软件自动执行所有设计点的批处理计算;

3、计算完成后,直接查看两类结果,全程无需手动操作!

imageimage.png

image.png

✅ 结果1:参数表直观查看核心数据

在Workbench设计点表格中,直接看到每个工况的最大位移、最大应力,一键对比不同参数的力学性能,优化方向一目了然。imageimage.png

✅ 结果2:user_files目录获取完整数据

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

image.png

三、总结:核心要点记牢,仿真自动化事半功倍

本次案例用Python Code解决了批处理仿真后处理结果自动导出的痛点,500个工况也能轻松应对,核心要点就这4点,记牢直接套用:

  1. Python Code是ANSYS自动化核心,After Post回调是后处理导出的最优选择;

  2. 批处理必做全局设置,否则Python Code会失效,自动连接是关键;

  3. 代码编写巧用ANSYS API,动态获取设计点和结果对象,无需硬编码;

  4. 结果文件按设计点_结果类型命名,从根源避免重名问题。

其实Python Code的能力远不止于此,在此基础上还能扩展:仿真报告自动生成、瞬态时域数据导出、不可参数化对象的参数化……把仿真中所有重复的手动操作都交给代码,真正实现仿真自动化!

如果大家还有其他ANSYS仿真自动化的痛点,比如多模型批量求解、结果自动分析,评论区留言,后续持续出干货教程~

写在最后

其实ANSYS二次开发不用追求“高大上”,从实际工程需求出发,用几行代码解决一个具体痛点,就是最实用的开发。比如这个工具,看似简单,却能让工程师从重复的手动操作中解放出来,把时间花在更核心的仿真分析上——这正是二次开发的核心意义。

如果大家还有其他ANSYS使用中的痛点,欢迎在评论区留言,后续会持续分享针对性的二次开发实战案例!此外,欢迎扫描以下二维码问卷,填写你的二次开发需求。

image.png

为了更好的分享各种二次开发学习知识,我还创建了二次开发交流群,并于群里分享各种二次开发文章及相关源程序,欢迎大家加入!

image.png


点击阅读原文,立即学习《ANSYS Workbench & Mechanical企业级二次开发程序与Python应用入门进阶》,掌握ANSYS Workbench & Mechanical的脚本自动化开发能力。

本课程从基础脚本开发到多工况批量计算的自动化实现,手把手教你用 Python 打通 “仿真流程自动化 - 多工况批量计算” 全链路,让 “重复仿真工作自动化、复杂工况高效计算” 从想法变成日常。

我还为付费用户提供VIP群进行交流、答疑服务、持续加餐内容、提供定制化培训和咨询服务、仿真人才库高薪内推就业、仿真秀还提供奖学金、学完此课程,推荐学习者报名参加工程仿真技术(CAE分析职业能力等级评价证书)。

以下是课程大纲及主要内容:

imageimage-20251228220641-tf1ejl6.png


ACTMechanicalWorkbench二次开发python控制ANSYS
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2026-02-09
最近编辑:8月前
小郭老师
硕士 小郭老师,精通ANSYS开发
获赞 162粉丝 46文章 35课程 2
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈