大家好,我是小郭老师,硕士毕业于中科院,专注于运用 Python 深度集成 ANSYS 进行工程数值计算与仿真自动化开发,精通基于 Python 实现 ANSYS Workbench 众多模块的全流程脚本驱动,并具备将复杂仿真流程封装为高效、可复用软件工具的专业能力。
你是不是也遇到过这样的情况?
好不容易跑完了一个复杂的ANSYS仿真,本想用ANSYS自带的Report功能快速生成分析报告,结果——图片显示不了、格式乱七八糟、还混夹着一大堆无用的参数表。最气人的是,每次修改模型后又得重新折腾一遍Report的各种设置,效率低到让人想直接手动拼图片和文字。
其实,你不必受这个罪。 与其被ANSYS Report的bug和冗余信息折磨,不如直接用Python调用Word COM接口,用几十行代码自动生成专业、定制化的仿真分析报告——包含几何模型、网格划分、结果云图,甚至数据表格,全部自动排版进Word文档,几分钟搞定,还能百分百按你的想法来。
今天小郭老师就教大家这套硬核二次开发技巧:Python + Word COM自动化导出ANSYS仿真报告,代码可直接复用,遇到类似需求改改参数就能用。
一、为什么ANSYS内置Report不好用?
在讲解决方案之前,先诊断一下问题所在——为什么这么多工程师都在吐槽ANSYS Report。
问题1:Bug频出,体验极差
ANSYS Report虽然功能全,但稳定性堪忧。常见的问题包括:
- • 有时候Report生成到一半就卡住,需要强制关闭重启
这些bug不仅浪费时间,还容易在交付报告给客户前出现尴尬的情况。
问题2:信息冗余,查阅困难
ANSYS Report会自动导出所有参数、属性表、求解器日志等,导致报告动辄30~50页,其中真正有价值的可能只有5页。工程师和客户都得翻一大堆无用信息才能找到关键的结果数据,体验极差。
问题3:定制化能力弱
想改一下报告的排版风格?想加个自己的公司logo?想按不同工况生成多个定制化报告?用ANSYS Report的GUI操作方式,效率低得离谱。
实际上,与其被ANSYS Report限制,不如绕过它——直接用Python调用微软Word的COM接口,手动控制报告的每一个细节:想要什么内容就加什么,不要的坚决删除,格式随意调整。
整个思路非常简单:
ANSYS模型 → Python提取数据/截图 → Word自动排版 → 输出专业报告
核心优势:
- • ✅ 可复用:一份代码模板,改改参数就能适配不同项目
- • ✅ 可扩展:不仅能加图片,还能加表格、数据、甚至动态计算结果
三、Word COM接口核心操作详解(代码参考手册)
在看完整的ANSYS脚本之前,我们先把Word COM接口的常用操作拆解开,这样你后续也能灵活应对其他Word导出场景。
3.1 Word应用初始化与文档创建
需求: 启动Word应用,新建空白文档
关键概念:
- •
ApplicationClass():启动Word应用,类似手动点开Word图标 - •
Documents.Add():新建文档,相当于Ctrl+N - •
Selection:当前光标位置,是操作Word的核心对象


3.2 插入文本与格式控制
需求: 插入标题、正文,并控制字体大小、加粗、对齐等
关键操作解析:
- •
sel.EndKey(WD_STORY):光标立即跳到文档末尾(确保新内容追加在最后) - •
sel.TypeParagraph():相当于按一次回车键,新起一段 - •
sel.Font.Bold = 1/0:1表示加粗,0表示取消加粗 - •
sel.Font.Size = 14:字号改为14磅 - •
sel.ParagraphFormat.Alignment:控制当前段落的对齐方式

3.3 插入图片与图例
需求: 插入一张ANSYS结果云图,添加图例说明,并设置居中显示
关键操作解析:
- •
doc.InlineShapes.AddPicture(pic_path):在光标位置插入图片,返回图片对象 - •
pic.ScaleWidth / pic.ScaleHeight:用百分比缩放图片(100=原大小,70=70%) - •
pic.Range.ParagraphFormat.Alignment:通过其Range对象访问所在段落,再对段落设置对齐 - •
sel.Font.Italic = 1/0:1表示斜体,0表示取消斜体
3.4 插入表格
需求: 创建一个3行4列的表格,填入数据,设置边框
关键操作解析:
- •
doc.Tables.Add(loc_range, row_num, col_num):在指定位置创建表格 - •
table.Cell(i+1, j+1):访问表格的单元格(注意索引从1开始) - •
table.Borders.Enable = 1:显示表格边框(0表示不显示) - •
cell.Range.Text:向单元格插入文字
四、ANSYS脚本核心逻辑实战讲解
现在我们用上面学到的Word COM操作,结合ANSYS API,完成一个完整的"自动报告生成"脚本。整个流程分为5大环节:初始化、配置导出对象、遍历循环、图片导出、文件保存。
4.1 Word应用初始化 + 报告头设计
逻辑说明:
- • 显式定义常量是为了防止在某些ANSYS版本中常量值异常导致的错误
- •
try-except 块保证即使Word启动失败,脚本也不会直接崩溃
4.2 定义插入函数(复用性强)
既然Word COM操作这么繁琐,我们不妨把常用操作封装成函数,后续调用时直接用函数名,代码更清晰:
函数设计的好处:
4.3 路径配置 + 资源目录创建
关键点:
- •
GetUserFilesDirectory():自动获取当前ANSYS项目的工作目录(无需手动指定路径) - •
os.makedirs():如果目录不存在则自动创建
4.4 配置导出对象 + 遍历逻辑
逻辑流程详解:
- 1. 清理旧Figure:每次脚本运行前,清理掉上一次运行残留的Figure对象,避免累积导致问题
- 2. 遍历对象类型:按照export_config定义的顺序,逐个处理Geometry、Mesh、Result
- 3. 激活对象:
obj.Activate()使该对象成为当前显示焦点 - 4. 设置视角:ISO视图是标准的等轴测图,便于查看三维模型全貌
- 5. 导出截图:
Graphics.ExportImage()将当前视口内容导出为图片文件 - 6. 插入Word:调用之前定义的
insert_image_with_caption()函数,自动把图片和图例插入Word
4.5 文件保存 + 异常处理
关键细节:
- •
SaveAs()确保文件以指定的路径和格式保存
五、完整代码 + 运行效果演示
完整代码
这是可以直接复用的完整脚本——复制到ANSYS Mechanical的Scripting窗口即可运行:
运行效果
运行成功的标志:
1、ANSYS的Messages窗口中显示 "Successfully added: [对象名]" 的提示,最后显示 "SUCCESS: Report saved to D:...\Simulation_Report.docx"
2、打开生成的Word文件,能看到完整的报告,包含按章节组织的图片和图例,整体排版专业美观


六、结语
这个基础脚本虽然功能完整,但还有很多可以扩展的方向,根据实际工程需求灵活调整:
目前我们只导出了图片,其实还可以自动提取仿真结果数据(如最大应力、最大位移等)并插入表格,让报告既有视觉效果,又有数据支撑。只需在导出逻辑中添加一个表格插入模块,遍历Result对象并读取其关键数据即可——之前讲过的Word表格操作语法完全可以套用。
如果你有多个分析工况(如不同的载荷组合、温度场景等),可以对每个工况逐个激活、导出、保存,最终得到多份独立的Word报告。这样做的好处是每份报告都是独立的、可分享的,客户或团队成员可以各自查阅对应工况的分析结果,无需在一个巨大的文件里来回翻找。
想象这样一个场景:你在Workbench中设置好参数化分析,求解完成后自动生成报告,无需人工干预。这可以通过Workbench的脚本钩子(如求解完成事件)来实现——当求解器finish后,触发Mechanical脚本自动执行报告导出。这样整个流程就变成了"参数化迭代 → 自动求解 → 自动报告生成",效率爆表。
其实ANSYS二次开发不用追求"高大上",从实际工程需求出发,用几行代码解决一个具体痛点,就是最实用的开发。
这套Python + Word COM的报告生成方案,看似简单,却直接解决了工程师的三大痛点:
- 1. 摆脱ANSYS Report的bug困扰 —— 用可靠的Word COM接口代替不稳定的Report功能
- 2. 零冗余定制化报告 —— 完全控制报告内容,想要什么就加什么,废话一句不留
- 3. 批量自动化生成 —— 一份代码模板,多个项目通用,改改参数就能用
与其每次手动点击导出、调整格式、复制粘贴,不如让代码替你做这些重复劳动——一条命令执行,几分钟搞定,精准高效。
而且这套思路不仅适用于仿真报告,还能迁移到其他需要自动生成Office文档的场景(如Excel数据表、PPT演示稿),一旦掌握了Word COM接口,你就打开了自动化办公的大门。
点击阅读原文,立即学习《ANSYS Workbench & Mechanical 企业级二次开发程序与 Python 应用入门进阶》,掌握 ANSYS Workbench & Mechanical 的脚本自动化开发能力。
本课程从基础脚本开发到多工况批量计算的自动化实现,手把手教你用 Python 打通"仿真流程自动化 - 多工况批量计算"全链路,让"重复仿真工作自动化、复杂工况高效计算"从想法变成日常。
我还为付费用户提供 VIP 群进行交流、答疑服务、持续加餐内容、提供定制化培训和咨询服务、仿真人才库高薪内推就业,仿真秀还提供奖学金、学完此课程,推荐学习者报名参加工程仿真技术(CAE 分析职业能力等级评价证书)。
