导读: 大家好,我是小郭老师,硕士毕业于中科院,专注于运用 Python 深度集成 ANSYS 进行工程数值计算与仿真自动化开发,精通基于 Python实现ANSYS Workbench众多模块的全流程脚本驱动(建模、求解、后处理),并具备将复杂仿真流程封装为高效、可复用软件工具的专业能力,今天给大家分享一些ANSYS二次开发方面的干货。
做过工程仿真的朋友都懂一个痛点:当模型包含几十个零件,后处理需要导出所有云图时,手动逐个点击导出,不仅耗时费力,还容易漏导、错导,尤其赶项目进度时,简直是“无效内耗”。
今天就给大家带来一个即拿即用的实战方案——ANSYS二次开发Python脚本,一键批量导出所有后处理云图,不用手动操作,省去80%的重复工作,全程贴合实际工程场景,新手也能直接上手。
先给大家上完整脚本,后面再慢慢看拆解,着急用的朋友,直接copy到ANSYS二次开发环境(Mechanical模块的Scripting窗口),点击运行即可。
脚本适用场景:多零件、多云图(应力、应变、位移等)批量导出,支持自定义保存路径,自动命名,导出格式为JPG(适配工程报告需求)。
依赖模块:Ansys.UI.Toolkit(ANSYS UI交互工具)、wbjn(ANSYS工作流交互模块)、os(操作系统模块),这些模块在ANSYS默认环境中已集成,无需额外安装。


脚本使用提示:无需修改任何核心代码,直接在ANSYS Mechanical的Scripting窗口运行,运行后会弹出文件夹选择对话框,选择保存路径,点击确认,脚本会自动遍历所有后处理云图,批量导出为JPG格式,导出完成后会弹出提示框,告知导出成功或失败。
很多朋友可能会担心“看不懂脚本,出问题没法排查”,所以我把脚本拆成5个核心模块,用通俗的语言讲解,不用懂复杂的编程,只要知道每个模块的作用,就能灵活调整,适配自己的工程场景。
模块1:导入必要模块
这部分代码的作用,就像是“给脚本配备工具”,每个模块都有明确的用途,无需深入研究底层原理,知道“为什么导入”即可:
1、from Ansys.UI.Toolkit import *:导入ANSYS的UI交互工具,用于弹出文件夹选择对话框、显示消息提示框,是实现“交互操作”的核心;
2、import wbjn:导入ANSYS工作流交互模块,用于获取ANSYS默认的用户文件路径,避免手动输入路径导致报错;
3、import os:导入操作系统模块,用于拼接保存路径、处理文件命名,确保云图能正确保存到指定文件夹。
模块2:云图美化设置(核心实用点)
做工程报告的朋友都知道,云图的美观度很重要——默认的云图可能有标尺、LOGO,线条杂乱,直接导出会影响报告整洁度。这部分代码就是“自动美化云图”,无需手动调整,导出后直接可用:
模块3:导出文件夹选择(核心交互点)
这部分是脚本的“交互核心”,解决了“手动输入路径易报错”的问题,操作很简单:
根据FolderBrowserDialog,会先获取ANSYS默认的用户文件路径,然后弹出文件夹选择对话框,你可以自主选择云图的保存路径(比如桌面、项目文件夹),选择完成后点击“确认”,路径就设置成功了;如果取消选择,脚本会弹出“路径给定失败”的提示,避免因路径错误导致导出失败。
模块4:批量导出逻辑(核心功能点)
这是整个脚本的“核心功能”,也是解决“手动批量导出”痛点的关键,逻辑很简单,通俗来讲就是“自动找所有云图,逐个导出”:
1、 result_objs = DataModel.GetObjectsByType(...):自动遍历ANSYS后处理中的所有云图(不管是应力、应变还是位移,只要是后处理结果,都会被找到);
2、for result_obj in result_objs:逐个激活每个云图(相当于手动点击云图切换);
3、file_path = os.path.join(...):自动给每个云图命名(用云图本身的名称,比如“应力-等效应力”),并拼接保存路径,避免重名;
4、Graphics.ExportImage(...):将云图导出为JPG格式,背景设为白色(适配报告打印需求)。
模块5:消息提示反馈
这部分是“人性化设计”,避免你不知道脚本是否运行完成、导出是否成功。若导出完成后,会弹出消息框,显示“路径给定成功!”,说明所有云图已导出;如果取消选择路径,会显示“路径给定失败,无法导出”,方便你及时排查问题(比如重新运行脚本,选择正确路径)。
不用记复杂的代码,记住这3个核心点,就能轻松用好这个脚本,甚至灵活调整:
代码写好后,不用每次都copy粘贴到Scripting窗口——利用ANSYS Mechanical的「User Buttons」功能,可直接封装成自定义按钮,下次用的时候点击一下就行。
「User Buttons」是ANSYS Mechanical Automation选项卡下的原生功能,专门用于存放用户自定义的二次开发工具,支持Python代码直接封装,无需复杂配置。

(1) 打开ANSYS Mechanical,切换到「Automation」选项卡,找到「User Buttons」组,点击「Manage」;
(2) 在弹出的“Button Editor”窗口中,输入按钮名称(比如“GetPlane”),选择图标(可选,方便识别)
(3) 在「Script」文本框中,删除默认内容,粘贴上面的完整代码;
(4) 点击左上角保存图标进行保存

(1) 完成ANSYS Mechanical求解
(2) 选择好后处理云图的布置位置
(3) 点击「Automation -> User Buttons -> ExportResults(自己给定的按钮名称)」
(4) 在弹出的文件夹选择对话框中,选择云图的存放位置。默认位置为当前workbench项目的user_files文件夹
(5) 点击[OK],即可将结果云图保存到指定文件夹

这个脚本是我在实际项目中反复测试优化的,适配绝大多数工程场景。不管你是做单个零件仿真,还是几十个、上百个零件的装配体仿真,只要有批量导出云图的需求,这个脚本都能直接用。
当然,脚本还能灵活延伸:比如你想给云图添加统一前缀(比如“项目XX-应力-”),可以修改文件命名的代码;如果需要批量导出时过滤某些云图,也可以添加简单的筛选逻辑。
最后,跟大家互动一下。你在ANSYS后处理中,还遇到过哪些重复劳动的痛点?比如批量修改云图颜色、批量导出数据表格等,欢迎在留言区留言,后续我会分享对应的实战脚本。
后续我会持续分享ANSYS二次开发实战案例,不搞理论,只讲实用技巧,帮大家解放双手,提升工程效率,记得持续关注哦!
点击阅读原文,立即学习《ANSYS Workbench & Mechanical企业级二次开发程序与Python应用入门进阶》,掌握ANSYS Workbench & Mechanical的脚本自动化开发能力。
本课程从基础脚本开发到多工况批量计算的自动化实现,手把手教你用 Python 打通 “仿真流程自动化 - 多工况批量计算” 全链路,让 “重复仿真工作自动化、复杂工况高效计算” 从想法变成日常。
我还为付费用户提供VIP群进行交流、答疑服务、持续加餐内容、提供定制化培训和咨询服务、仿真人才库高薪内推就业、仿真秀还提供奖学金、学完此课程,推荐学习者报名参加工程仿真技术(CAE分析职业能力等级评价证书)。
以下是课程大纲及主要内容:
