欢迎光临
我们一直在努力

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

最近被学员的一个需求戳中了痛点。要做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自动化核心,After Post回调是后处理导出的最优选择;
  • 批处理必做全局设置,否则Python Code会失效,自动连接是关键;
  • 代码编写巧用ANSYS API,动态获取设计点和结果对象,无需硬编码;
  • 结果文件按设计点_结果类型命名,从根源避免重名问题。
  • 其实Python Code的能力远不止于此,在此基础上还能扩展:仿真报告自动生成、瞬态时域数据导出、不可参数化对象的参数化……把仿真中所有重复的手动操作都交给代码,真正实现仿真自动化!

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

    写在最后

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

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

    在这里插入图片描述


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

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

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

    赞(0)
    未经允许不得转载:171主机测评 » 500组工况批处理仿真?ANSYS Python Code让后处理结果自动导出!
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址