导读: 大家好,我是小郭老师,硕士毕业于中科院,专注于运用 Python 深度集成 ANSYS 进行工程数值计算与仿真自动化开发,精通基于 Python实现ANSYS Workbench众多模块的全流程脚本驱动(建模、求解、后处理),并具备将复杂仿真流程封装为高效、可复用软件工具的专业能力,今天给大家分享一些ANSYS二次开发方面的干货。
在进行 ANSYS Mechanical 二次开发或批量计算 时,很多人都会遇到一个非常现实的问题: 👉 计算前需要提前配置 Mechanical 的一些选项,但又不希望人工打开界面逐一设置。
一个非常典型的例子是—— Mechanical 默认导出文本结果时,并不会包含网格节点坐标(Include Node Location = No) 。
这在ANSYS二次开发、运行开发好的软件等场景中,几乎是“不可接受”的。
这一默认设置在常规 GUI 操作中影响不大,但在二次开发、自动化仿真平台运行等场景下,几乎是 “不可接受” 的:缺少节点坐标的结果文件,无法直接用于后续的数据分析(如节点结果后处理、与其他软件的数据联动),会直接导致自动化流程断裂,完全违背了仿真自动化的初衷。
在 Mechanical 图形界面中,我们可以很容易找到这个选项:
Tools → Options → Mechanical → Export → Include Node Location
但在自动化开发视角下,纯 GUI 操作存在三大致命缺陷:
👉 那有没有办法 在完全不打开 Mechanical 界面的情况下,修改这些设置?
小郭老师在上篇文章中已经分享过一种思路——利用 Mechanical 内置的 JScript 机制,绕开部分尚未开放的 Python API,实现底层控制。
在之前的分享中,我曾介绍过一种核心思路,即利用 Mechanical 内置的 JScript 引擎机制,绕开部分暂未开放的 Python API,直接对 Mechanical 的底层配置进行控制。今天要解决的 “Mechaical配置” 问题,恰好可以复用这一思路,通过 JScript 脚本直接修改 Mechanical 的系统偏好设置,实现真正意义上的 “零交互” 自动化配置。
想要实现无 GUI 修改配置,首先要理解 Mechanical 存储界面设置的底层逻辑:Mechanical 所有可视化界面的 Options 选项,本质上都持久化存储在特定的 XML 配置文件中。
该 XML 文件的典型存储路径(需根据 ANSYS 版本调整,以 v231 为例):


打开该文件后,你会发现一个重要事实:
XML 的层级结构,与 Mechanical 图形界面中的 Options 树状结构是一一对应的。
例如:Mechanical -> Export -> Include Node Location
在 XML 中,对应为:

这里有两个关键信息:
1、PreferenceID:,Mechanical 通过这个 ID 区分不同的配置项,是脚本控制的核心 “入口”;
2、value:即选项的取值,其中: → 对应 GUI 中的 “Yes”(导出节点坐标); → 对应 GUI 中的 “No”(默认,不导出节点坐标)。
👉 这意味着: 只要我们能在运行时修改这个 PreferenceID 的值,就等价于点了一次 GUI 选项。
ANSYS Mechanical 内部提供了一个 JScript 引擎,可以直接操作偏好管理器(PreferenceMgr)。
核心语句只有两行:
这两行代码完成了三件事:
1、定位到
2、将其设置为 Yes
3、将设置持久化保存(等价于点 OK)
下面给出一个 可直接复用的 Python 封装函数,用于在任何脚本流程中调用:

使用时只需一行:set_node_location_preference(1)
即可实现:
1、所有 Mechanical 文本导出全部 自动包含节点坐标
2、无需打开 GUI
3、用户完全无感
为了直观验证该方法的有效性,我们以导出温度结果()为例,对比 “禁用” 和 “启用” 节点坐标导出的结果差异,所有操作均基于 Python 脚本完成,无任何 GUI 交互。

导出结果如下,仅包含节点 ID 和温度值,无坐标信息



导出结果文件内容如下(新增 X、Y、Z 三列节点坐标信息):



通过本次实战案例,可以提炼出三个核心结论:
✔ Mechanical 的 Options 并非黑箱:所有 GUI 可见的配置项,都有对应的 XML 节点和 PreferenceID,具备脚本化控制的基础; ✔ GUI ≈ XML ≈ PreferenceID ✔ 非侵入、稳定、适合企业级自动化
更重要的是,这一思路绝不仅限于 “节点坐标导出” 这一个选项:Mechanical Options 菜单中的几乎所有配置(如结果导出精度、单位制、网格显示样式、求解器参数默认值等),都可以通过 “找到对应 PreferenceID → 编写 JScript 修改取值 → Python 封装调用” 的流程实现自动化配置。
其实ANSYS二次开发不用追求“高大上”,从实际工程需求出发,用几行代码解决一个具体痛点,就是最实用的开发。比如这个工具,看似简单,却能让工程师从重复的手动操作中解放出来,把时间花在更核心的仿真分析上——这正是二次开发的核心意义。
如果大家还有其他ANSYS使用中的痛点(比如批量设置载荷、自动生成报告、多工况对比等),欢迎在评论区留言,后续会持续分享针对性的二次开发实战案例!
点击阅读原文,立即学习《ANSYS Workbench & Mechanical企业级二次开发程序与Python应用入门进阶(https://www.fangzhenxiu.com/course/13411984/)》,掌握ANSYS Workbench & Mechanical的脚本自动化开发能力。
本课程从基础脚本开发到多工况批量计算的自动化实现,手把手教你用 Python 打通 “仿真流程自动化 - 多工况批量计算” 全链路,让 “重复仿真工作自动化、复杂工况高效计算” 从想法变成日常。
我还为付费用户提供VIP群进行交流、答疑服务、持续加餐内容、提供定制化培训和咨询服务、仿真人才库高薪内推就业、仿真秀还提供奖学金、学完此课程,推荐学习者报名参加工程仿真技术(CAE分析职业能力等级评价证书)。
以下是课程大纲及主要内容:


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删