大家好,我是小郭老师,毕业于中科院,在仿真软件二次开发方面有着一定的经验,今天继续给大家分享ANSYS二次开发方面的干货。
在最近几篇文章中,我发起了关于大家最感兴趣的ANSYS二次开发主题调研,发现大家对参数化控制非常感兴趣。
于是,今天就接着上一篇文章的内容,聚焦Mechanical参数化脚本应用场景,以轴流式三叶片电风扇模态分析为案例,详细讲解如何通过 Python 脚本一步步实现Mechanical模态分析。之后的文章,后续还将推出更多参数化控制命令(如网格参数化、载荷参数化等),希望大家多多支持。
当然,如果大家有不一样的ANSYS二次开发需求,非常欢迎填写以下问卷,我会优先针对大家的实际问题制作教程。


某轴流式三叶片电风扇动平衡性良好、出风量大,不易共振,可避免扇叶或轴心振动引发的疲劳断裂。
材料:聚乙烯
载荷条件:轴孔为固定约束
试:对三片扇叶开展前八阶模态分析

二次开发中,脚本常需重复运行(如修改参数后重新分析),若不清理历史数据,会导致「新约束叠加旧约束」「网格重复生成」等问题。
此段代码通过遍历关键对象类型,确保每次运行都从「干净环境」开始。

Q1: 为什么加「材料存在性校验」?
A1: 工程中常遇到「脚本运行到一半因材料缺失报错」的情况,此逻辑提前拦截问题,并给出解决方案(补充 Engineering Data),避免无效计算。
Q2: 为什么用「模糊匹配(geo_name in body.Name)」?
A2: 实际建模时,几何体名称可能带后缀(如 “Fan_1”“Fan_copy”),模糊匹配确保只要名称含 “Fan” 就能正确分配材料,提高脚本兼容性。

风扇模态分析的约束位置是轴孔(固定端),传统手动选择易选错边。
脚本通过「Z 坐标最小」自动定位轴孔边缘(建模时轴孔通常在 Z 最小处),确保约束位置 100% 准确,解决 “因约束错误导致模态结果失真” 的工程问题。

CreateResultsAtAllSets()的作用时自动生成所有阶次的振型云图,避免手动点击 “Evaluate All Results”,节省后处理时间。




1、适配多规格风扇:若需分析不同叶片数量(如 4 叶、5 叶)的风扇,只需修改mat2geo_dict中的键(如{"Fan_4": "Polyethylene"}),并调整命名选择的定位逻辑(如轴孔在 Z 最大处,改Operator为Largest)。
2、结果自动导出:补充代码deformation.ExportToTextFile(...),将前 8 阶固有频率自动写入文本,避免手动记录数据的误差。
3、Workbench & Mechanical脚本联合应用:结合之前文章所讲,实现从Workbench界面直接后台调用Mechanical、执行Mechanical脚本。
...
看完这篇,是不是觉得 ANSYS 二次开发没那么难。如果你也在为ANSYS Mechanical模态分析命令而头疼,不妨试试这个脚本。
此外,在使用过程中遇到代码报错、需求调整等问题,欢迎在评论区留言,我会一一解答。后续还会分享更多 ANSYS 二次开发的实战技巧,敬请关注。
点击阅读原文,立即学习《ANSYS Workbench & Mechanical企业级二次开发程序与Python应用入门进阶》,掌握ANSYS Workbench & Mechanical的脚本自动化开发能力。