许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  GUI能设但自动化不行?Python+JScript无交互修改ANSYS的开发方法

GUI能设但自动化不行?Python+JScript无交互修改ANSYS的开发方法

阅读数 2
点赞 0
article_banner


导读: 大家好,我是小郭老师,硕士毕业于中科院,专注于运用 Python 深度集成 ANSYS 进行工程数值计算与仿真自动化开发,精通基于 Python实现ANSYS Workbench众多模块的全流程脚本驱动(建模、求解、后处理),并具备将复杂仿真流程封装为高效、可复用软件工具的专业能力,今天给大家分享一些ANSYS二次开发方面的干货。

在进行 ANSYS Mechanical 二次开发或批量计算 时,很多人都会遇到一个非常现实的问题: 👉 计算前需要提前配置 Mechanical 的一些选项,但又不希望人工打开界面逐一设置。

一个非常典型的例子是—— Mechanical 默认导出文本结果时,并不会包含网格节点坐标(Include Node Location  =  No)

这在ANSYS二次开发、运行开发好的软件等场景中,几乎是“不可接受”的。

这一默认设置在常规 GUI 操作中影响不大,但在二次开发、自动化仿真平台运行等场景下,几乎是 “不可接受” 的:缺少节点坐标的结果文件,无法直接用于后续的数据分析(如节点结果后处理、与其他软件的数据联动),会直接导致自动化流程断裂,完全违背了仿真自动化的初衷。

1️⃣ 问题背景:GUI 能设,但自动化不友好

在 Mechanical 图形界面中,我们可以很容易找到这个选项:

Tools → Options → Mechanical → Export → Include Node Location

但在自动化开发视角下,纯 GUI 操作存在三大致命缺陷:

  • GUI 设置 无法直接写进脚本流程
  • 批量工况、无人值守计算时 无法人工干预
  • 不同机器、不同用户环境下 配置不一致

👉 那有没有办法 在完全不打开 Mechanical 界面的情况下,修改这些设置?

小郭老师在上篇文章中已经分享过一种思路——利用 Mechanical 内置的 JScript 机制,绕开部分尚未开放的 Python API,实现底层控制。

在之前的分享中,我曾介绍过一种核心思路,即利用 Mechanical 内置的 JScript 引擎机制,绕开部分暂未开放的 Python API,直接对 Mechanical 的底层配置进行控制。今天要解决的 “Mechaical配置” 问题,恰好可以复用这一思路,通过 JScript 脚本直接修改 Mechanical 的系统偏好设置,实现真正意义上的 “零交互” 自动化配置。

2️⃣ 核心思路:Mechanical 的偏好设置 ≈ XML + PreferenceID

想要实现无 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 选项。

3️⃣ 关键技术:通过 JScript 操作 PreferenceMgr

ANSYS Mechanical 内部提供了一个 JScript 引擎,可以直接操作偏好管理器(PreferenceMgr)。

核心语句只有两行:

这两行代码完成了三件事:

1、定位到

2、将其设置为 Yes

3、将设置持久化保存(等价于点 OK)

4️⃣ Python + JScript 完整代码(完全自动化)

下面给出一个 可直接复用的 Python 封装函数,用于在任何脚本流程中调用:


使用时只需一行:set_node_location_preference(1)

即可实现:

1、所有 Mechanical 文本导出全部 自动包含节点坐标

2、无需打开 GUI

3、用户完全无感

5️⃣ 实例演示

为了直观验证该方法的有效性,我们以导出温度结果()为例,对比 “禁用” 和 “启用” 节点坐标导出的结果差异,所有操作均基于 Python 脚本完成,无任何 GUI 交互。

场景1:调用set_node_location_preference(0)


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



场景2:调用set_node_location_preference(1)


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




6️⃣ 总结

通过本次实战案例,可以提炼出三个核心结论:

✔ 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分析职业能力等级评价证书)。

以下是课程大纲及主要内容




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

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空