首页/文章/ 详情

从 ACT 基本语法到 ResultExporter 插件,拆解一个ANSYS ACT案例

2月前浏览912

大家好,我是小郭老师,毕业于中科院,在仿真软件二次开发方面有着一定的经验,今天给大家分享 ANSYS 二次开发方面的干货。

image.png

1. 引言:你是不是也被 Mechanical 后处理截图折磨过?

你好,我是 HB Guo,长期专注 ANSYS 二次开发、Python 工程自动化、AI + CAE 和仿真流程自动化。

做 Mechanical 后处理时,很多工程师都会遇到一个非常熟悉的场景:

模型算完了,结果也出来了,真正消耗时间的却是最后一步:导出云图。

你需要选中一个结果对象,调整视角,Fit 一下窗口,隐藏标尺和 Logo,保存图片;然后再选下一个结果对象,再调视角,再保存图片。

如果只有两三张图,还能忍。

但如果一个项目里有几十个结果对象,或者多个工况都要重新导图,这件事就会变成非常低效的重复劳动。

更麻烦的是,手动导出很容易出现问题:

  • • 有些结果忘记导出;

  • • 有些图片视角不一致;

  • • 有些文件名不规范;

  • • 有些旧图被新图覆盖;

  • • 报告更新一次,整个导图流程又要重来。

这类事情本质上不应该长期靠手动完成。它非常适合用 ACT 做成一个插件。

本文就结合一个 ResultExporter 案例,介绍如何用 ANSYS ACT 在 Mechanical 中开发一个“云图批量导出向导”。用户只需要选择导出文件夹、图片格式和视角方向,插件就可以自动遍历所有结果对象并批量导出云图。

2. 先搞懂 ACT:XML 管界面,Python 管逻辑

ACT 全称是 ANSYS Customization Toolkit,可以理解为 ANSYS 官方提供的一套二次开发框架。

通过 ACT,我们可以在 Workbench、Mechanical、Fluent、SpaceClaim 等产品里增加自定义按钮、自定义属性、自定义向导,甚至封装完整的仿真流程。

ACT 插件常见有两种形式:

  • • 脚本格式:由 XML、Python 和资源文件夹组成;

  • • 二进制格式:通常是 .wbex 文件,适合对外发布。

学习和开发时,一般先用脚本格式。等插件稳定后,再打包成 .wbex

脚本格式 ACT 插件最重要的是两类文件:

XML:定义插件界面、控件、按钮、向导和回调函数。
Python:实现真正的功能逻辑。

你可以把它理解得更简单一点:

XML 负责“长什么样”和“点哪里调用谁”。
Python 负责“被调用后具体做什么”。

一个最小 ACT 插件大概长这样:

image.png

这里有几个核心标签:

  • extension:插件根标签;

  • guid:插件唯一 ID;

  • script:指定 Python 文件;

  • interface:指定插件作用在哪个产品界面;

  • toolbar:顶部工具条;

  • entry:按钮或菜单入口;

  • callbacks:回调函数;

  • onclick:按钮点击时执行的函数。

如果 XML 里写了:

image.png

那么 Python 里就必须有:

image.png

这就是 ACT 开发最关键的对应关系:XML 绑定函数名,Python 实现函数内容。

3. 什么是 ACT 向导?为什么这个案例要用 Wizard?

ACT 插件不只是能做按钮,还可以做 Wizard,也就是向导。

向导适合处理这类流程:

  • • 用户需要先输入参数;

  • • 插件需要按步骤执行;

  • • 最后生成结果或完成某个批处理任务。

普通按钮更像是“点一下马上执行”,而向导更像是“先配置参数,再执行流程”。

ResultExporter 为什么适合做成向导?

因为批量导出云图之前,插件至少需要知道三件事:

  1. 1. 图片导出到哪个文件夹;

  2. 2. 图片导出成 JPG、PNG 还是 BMP;

  3. 3. 采用等轴测、前视、俯视还是其他视角。

如果只是做一个按钮,用户就没有地方配置这些参数。所以这里采用 ACT Wizard 是非常自然的选择。

在 XML 中,向导一般由 wizardsteppropertycallbacks 组成:

image.png

这段结构表达的是:

  • • 创建一个 Mechanical 中的向导;

  • • 向导里有一个“导出设置”步骤;

  • • 用户可以选择文件夹和导出格式;

  • • 进入向导时调用 OnInitStep

  • • 点击完成时调用 ExecuteExport

这就是 ACT 向导的价值:它把一个工程流程变成了可交互、可复用、可交付的工具。

4. ResultExporter 的实现思路

ResultExporter 插件的文件结构很简单:

ResultExporter.xml
ResultExporter/
    main.py

XML 负责定义向导界面,Python 负责执行批量导出。

它的用户操作流程如下:

1.png

它解决的问题并不复杂,但非常实际:把“人工一张张导图”变成“插件批量导图”。

插件提供三个参数:

  • TargetFolder:导出目录;

  • ExportFormat:导出格式,支持 JPG、PNG、BMP;

  • ViewOrientation:导出视角,支持 Iso、Front、Top、Left、Right 等方向。

这三个参数正好对应工程师手动导图时最容易反复设置的内容。

5. 核心代码与逻辑拆解

5.1 XML:定义 Mechanical 向导界面

XML 中,ResultExporter 通过 wizard 定义一个 Mechanical 向导:

image.png

5.2 Python:执行初始化与批量导出逻辑

Python 中,OnInitStep 用于初始化默认路径:

image.png

这一步的作用是:用户打开向导时,默认把导出路径设置到 Workbench 用户文件目录附近,减少用户手动选择路径的麻烦。

真正的导出逻辑在 ExecuteExport 中:

image.png

这段代码有几个非常值得学习的点。

第一,读取向导参数。

image.png

这体现了 ACT Wizard 的典型开发方式:XML 定义属性,Python 读取属性。

第二,做格式映射。

用户在界面上选择的是字符串 JPGPNGBMP,但 Mechanical 图像导出接口需要的是枚举类型,所以这里用字典完成映射。

第三,读取所有结果对象。

image.png

这一步把 Mechanical 结果树中的结果对象全部取出来,为后续批量导出做准备。

第四,逐个激活结果并统一视角。

image.png

这几行代码对应的就是手动操作里的“点结果、调视角、适配窗口”。

第五,清洗文件名。

image.png

很多工程师写自动化脚本时容易忽略这个细节。结果对象名称里一旦出现 Windows 文件名非法字符,导出就可能失败。这里做一次文件名清洗,可以明显提高插件的稳定性。

第六,统一导出图片风格。

image.png

报告图片不是“导出来就行”,还要干净、统一、适合交付。隐藏标尺、隐藏 Logo、使用白色背景,都是非常实用的工程细节。

5.3 运行结果

image.png
image.png
image.png

6. 实际工程价值:让后处理交付更标准

这个插件适合用在很多 Mechanical 项目中,例如:

  • • 结构强度分析;

  • • 接触分析;

  • • 热分析;

  • • 多工况结果对比;

  • • 标准件系列校核;

  • • 批量参数化仿真;

  • • 项目报告图片整理。

手动导图最大的问题,不是慢,而是不稳定。

今天一个工程师导出来的是等轴测图,明天另一个工程师可能导出来的是前视图。一个项目第一次交付时命名是 Stress_1.jpg,第二次更新时可能变成 等效应力最终版.png

当项目变大、结果变多、交付周期变紧,这种不一致就会变成管理成本。

ACT 插件能带来的改变是:

  • • 统一导出格式;

  • • 统一导出视角;

  • • 统一命名规则;

  • • 避免人工漏导;

  • • 减少重复点击;

  • • 为自动报告生成打基础。

后续还可以继续扩展,比如:

  • • 只导出指定分析下的结果;

  • • 按分析名称创建子文件夹;

  • • 导出后自动生成 Word 报告;

  • • 结合表格数据一起输出;

  • • 记录导出日志,方便追踪。

这就是二次开发的真正价值:不是写一个脚本炫技,而是把工程师的经验固化为工具,把重复流程变成团队资产。

7. 总结:ACT 适合从真实痛点开始学

如果你刚开始学习 ACT,我非常建议从这类案例入手。

因为它足够真实,也足够完整:

  • • 有 XML;

  • • 有 Python;

  • • 有 Wizard;

  • • 有属性控件;

  • • 有 Mechanical API;

  • • 有真实工程痛点;

  • • 有可扩展空间。

相比一上来就做复杂平台或大型插件,这类“小而完整”的工具更容易让你理解 ACT 的开发闭环。

工程自动化不是为了替代工程师,而是为了让工程师少做重复、低价值、容易出错的工作,把精力放在模型判断、边界条件、结果解释和工程决策上。

在 AI + CAE 的时代,AI 会让代码生成更快,但真正能把工具落地的人,仍然需要懂仿真、懂流程、懂软件接口、懂工程交付。

如果你在 ANSYS 使用过程中也遇到过类似的重复流程,比如批量建模、批量加载、批量求解、批量后处理、自动报告生成,欢迎在评论区留言交流。


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

ANSYS Workbench & Mechanical企业级二次开发程序与Python应用入门进阶

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

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

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