首页/文章/ 详情

ANSYS Mechanical 结果交付:用 Python 导出动画和 AVZ 三维文件

24天前浏览262

ANSYS Mechanical 结果交付:用 Python 导出 Equivalent Stress 动画和 AVZ 三维文件

image.png

需求描述:结果交付与三维归档

大家好,我是小郭老师,中科院硕士,长期从事 ANSYS 二次开发与仿真流程自动化,曾帮助多个研究所、研究院、国企和大型企业完成 ANSYS 二次开发项目。

在 Mechanical 的有限元/数值计算结果交付场景中,动画和三维结果文件需要和目标结果对象稳定对应。

项目交付时,单张 PNG 截图并不总是够用。模态振型、瞬态温度场、变形过程这类结果,往往需要动画用于汇报,也需要三维结果文件方便组内或客户复核。

AVZ 可以理解为 Mechanical 结果视图的三维交付文件。PNG 解决的是“当前画面长什么样”,GIF 解决的是“结果变化过程怎么展示”,而 AVZ 更适合保存当前结果对象对应的三维可视化状态。对于 Equivalent Stress、Total Deformation、Temperature 这类云图结果,AVZ 的价值在于让接收方不只看到一张固定截图,而是拿到一个更接近 Mechanical 图形窗口的三维结果包,便于后续在支持 AVZ 的查看环境中旋转、查看和复核。

本文脚本针对指定结果对象导出结果动画和 AVZ 三维结果文件。脚本会激活结果对象,设置动画帧数和导出参数,并把文件保存到指定目录,便于在公司报告、客户交付和项目归档中保留可复核文件。

脚本实现思路

实现时,脚本先从当前模型的 Solution 中查找指定结果对象。找到目标对象后,脚本会刷新结果、激活对象,再分别走结果动画导出和 AVZ 三维结果导出流程。

脚本示例中目标结果名称是 Equivalent Stress,导出目录是 D:\Temp\Mechanical_Result_Export。如果目录不存在,脚本会先创建目录;如果指定结果对象找不到,则只输出提示,不继续执行导出。

脚本围绕一个指定名称的结果对象执行导出,适合先把关键结果的动画和 AVZ 文件稳定整理出来。运行后可以结合 Mechanical Shell 输出和导出目录,确认 GIF、AVZ 文件是否生成,并回到 Mechanical 中查看目标结果对象、当前视图和导出参数是否对应交付要求。

这里需要注意,动画导出和 AVZ 导出不是同一个接口。动画由结果对象自己的 ExportAnimation() 完成,适合生成汇报用 GIF;AVZ 则通过 Graphics.Export3D() 从当前激活的图形窗口导出,所以脚本在导出 AVZ 前必须先激活目标结果对象,确保图形窗口显示的就是要交付的 Equivalent Stress

整体执行过程可以理解为下面几步:

image.png

第一步,脚本进入当前模型的第一个分析和 Solution。

第二步,脚本准备导出目录,并按名称查找目标结果对象。

第三步,脚本刷新已有结果并激活结果对象,然后设置动画帧数和播放时长。

第四步,动画由目标结果对象执行导出;AVZ 由 Graphics.Export3D 指定 AVZ 格式后导出。

第五步,脚本在 Shell 中输出成功路径或失败提示,方便检查交付文件是否生成。

源码及其讲解

image.png

这段脚本围绕一个目标结果对象展开。入口仍然是当前模型的第一个 Analysis 和它的 Solution,但真正导出的对象由 result_name = "Equivalent Stress" 决定。脚本先准备 D:\Temp\Mechanical_Result_Export,目录不存在时自动创建,避免导出时因为路径缺失失败。

随后脚本用 DataModel.GetObjectsByName(result_name) 查找结果对象。找不到时只输出“Result object not found”,不会尝试导出空对象。找到后,脚本先执行 solution.EvaluateAllResults(),再 Activate() 该结果,使图形窗口切到目标结果,并设置 Graphics.ResultAnimationOptions 中的帧数和时长。

导出分成两步:动画先设置 AnimationExportSettings,再由目标结果对象调用 ExportAnimation(),并显式指定 GraphicsAnimationExportFormat.GIF;AVZ 先设置 Graphics3DExportSettings,再由 Graphics.Export3D() 指定 Graphics3DExportFormat.AVZ 输出三维文件。两处导出动作都会输出成功路径或异常信息,便于运行后核对动画文件、三维结果文件、当前视图和目标结果对象。这个结构适合先完成单个关键结果的交付文件导出,后续可以把结果名称扩展成列表并逐个处理。

脚本运行结果

在 Mechanical 中运行脚本后,先查看 Mechanical Shell 中的输出信息。如果动画导出成功,会输出 GIF 文件路径;如果 AVZ 导出成功,会输出 AVZ 文件路径。若导出失败,脚本会打印对应异常信息,便于继续判断结果对象、导出格式、路径权限或当前 Mechanical 环境是否满足要求。

成功导出后,到 D:\Temp\Mechanical_Result_Export 中检查 Equivalent Stress.gifEquivalent Stress.avz。GIF 用于汇报演示中的等效应力结果变化展示,AVZ 用于保留可交互查看的三维结果文件。复核 AVZ 时,重点确认打开后的结果对象、云图类型、颜色图例和视角状态是否和 Mechanical 中的目标结果一致。交付前还应回到 Mechanical 中确认当前激活对象就是 Equivalent Stress,视角、云图和动画设置与交付要求一致。

image.png
image.png
image.png

脚本扩展方向

  • • 将结果对象名称改为列表或关键字匹配,批量导出多个结果的动画和三维结果文件。
  • • 把动画帧数、持续时间、分辨率和导出格式参数化,适配汇报、归档和客户查看三种场景。
  • • 增加结果对象存在性和导出失败记录,便于批量导出后定位哪些结果需要人工处理。
  • • 与云图图片导出流程共用命名规则和目录结构,让静态图片、动画和三维文件统一归档。

总结

结果交付不只是“把图截出来”。动画适合展示变化过程,AVZ 适合保留可交互查看的三维结果,两者都能让仿真结果更容易汇报、复核和归档。

本文脚本围绕指定结果对象完成动画和 AVZ 导出,让结果文件不只停留在截图层面。它适合整理单个关键结果的交付材料,也为后续扩展多个结果批量导出留下入口。

真正用于项目时,应确认结果对象已正确求解、当前视图符合交付要求、导出路径可写,并把导出的动画和 AVZ 文件纳入交付前复核清单。

你平时做 Mechanical 项目时,最想交给 Python 处理的是哪一步?可以把模型类型、现在最费时间的操作、希望批量处理的对象写在评论区,我后面可以按场景继续拆脚本。

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