首页/文章/ 详情

这套利用Python&JScript无交互修改ANSYS的二次开发方法请收下

精品
作者优秀平台推荐
详细信息
文章亮点
作者优秀
优秀教师/意见领袖/博士学历/特邀专家/独家讲师
平台推荐
内容稀缺
7月前浏览1630
图片  

上一篇文章你提的ANSYS二次开发需求,安排了!附高效出报告技巧,我讲解ANSYS 「Report Preview」功能,并演示了二次开发如何通过Python代码自动生成报告。本文关注ANSYS Mechanical二次开发又一个高频出现的问题,希望为学习者排忧解难,欢迎大家订阅我视频课程,详情见后文。
在进行 ANSYS Mechanical 二次开发或批量计算 时,很多人都会遇到一个非常现实的问题:👉 计算前需要提前配置 Mechanical 的一些选项,但又不希望人工打开界面逐一设置一个非常典型的例子是—— Mechanical 默认导出文本结果时,并不会包含网格节点坐标(Include Node Location = No)。
这在ANSYS二次开发、运行开发好的软件等场景中,几乎是“不可接受”的。
这一默认设置在常规 GUI 操作中影响不大,但在二次开发、自动化仿真平台运行等场景下,几乎是 “不可接受” 的:缺少节点坐标的结果文件,无法直接用于后续的数据分析(如节点结果后处理、与其他软件的数据联动),会直接导致自动化流程断裂,完全违背了仿真自动化的初衷。
01    

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

在 Mechanical 图形界面中,我们可以很容易找到这个选项:
Tools → Options → Mechanical → Export → Include Node Location
 
但在自动化开发视角下,纯 GUI 操作存在三大致命缺陷:
  • GUI 设置 无法直接写进脚本流程
  • 批量工况、无人值守计算时 无法人工干预
  • 不同机器、不同用户环境下 配置不一致
👉 那有没有办法 在完全不打开 Mechanical 界面的情况下,修改这些设置?
我在上篇文章中已经分享过一种思路——利用 Mechanical 内置的 JScript 机制,绕开部分尚未开放的 Python API,实现底层控制【你提的ANSYS二次开发需求,安排了!附高效出报告技巧
今天要解决的 “Mechaical配置” 问题,恰好可以复用这一思路,通过 JScript 脚本直接修改 Mechanical 的系统偏好设置,实现真正意义上的 “零交互” 自动化配置。
02    

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

想要实现无 GUI 修改配置,首先要理解 Mechanical 存储界面设置的底层逻辑:Mechanical 所有可视化界面的 Options 选项,本质上都持久化存储在特定的 XML 配置文件中
该 XML 文件的典型存储路径(需根据 ANSYS 版本调整,以 v231 为例):
 
 
 
 
打开该文件后,你会发现一个重要事实:XML 的层级结构,与 Mechanical 图形界面中的 Options 树状结构是一一对应的。
例如:



MechanicalInclude Node LocationExport
在 XML 中,对应为:
这里有两个关键信息:
  • PreferenceID: PIDShowNode_Location ,Mechanical 通过这个 ID 区分不同的配置项,是脚本控制的核心 “入口”;
  • value
value="1" → 对应 GUI 中的 “Yes”(导出节点坐标);
value="0" → 对应 GUI 中的 “No”(默认,不导出节点坐标)。
👉 这意味着:只要我们能在运行时修改这个 PreferenceID 的值,就等价于点了一次 GUI 选项
03    

关键技术:通过 JScript 操作 PreferenceMgr    

ANSYS Mechanical 内部提供了一个 JScript 引擎 ,可以直接操作偏好管理器(PreferenceMgr)。
核心语句只有两行:
这两行代码完成了三件事:
  • 定位到 Include Node Location
  • 将其设置为 Yes
  • 将设置持久化保存(等价于点 OK)
04    

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

下面给出一个 可直接复用的 Python 封装函数 ,用于在任何脚本流程中调用:
使用时只需一行:
即可实现:
  • 所有 Mechanical 文本导出全部 自动包含节点坐标
  • 无需打开 GUI
  • 用户完全无感
05    

实例演示    

为了直观验证该方法的有效性,我们以导出温度结果( result_Temperature )为例,对比 “禁用” 和 “启用” 节点坐标导出的结果差异,所有操作均基于 Python 脚本完成,无任何 GUI 交互。
 
场景1:调用setnodelocation_preference(0)  
 
导出结果如下,仅包含节点 ID 和温度值,无坐标信息  
 
 
 
场景2:调用setnodelocation_preference(1)  
导出结果文件内容如下(新增 X、Y、Z 三列节点坐标信息):
 
 
 
06    

我的ANSYS二次开发实用教程    

通过本次实战案例,可以提炼出三个核心结论:
  • ✔ Mechanical 的 Options 并非黑箱 :所有 GUI 可见的配置项,都有对应的 XML 节点和 PreferenceID,具备脚本化控制的基础;
  • ✔ GUI ≈ XML ≈ PreferenceID
  • ✔ 非侵入、稳定、适合企业级自动化
更重要的是,这一思路绝不仅限于 “节点坐标导出” 这一个选项:Mechanical Options 菜单中的几乎所有配置(如结果导出精度、单位制、网格显示样式、求解器参数默认值等),都可以通过 “找到对应 PreferenceID → 编写 JScript 修改取值 → Python 封装调用” 的流程实现自动化配置。
更多ANSYS Mechanical二次开发技术案例和代码 ,请关注我的视频课程《ANSYS Workbench & Mechanical企业级二次开发程序与Python应用入门进阶 》,让你掌握 ANSYS Workbench & Mechanical 的脚本自动化开发能力,并为读者提供答疑解惑服务。
可回放,开具发票,奖学金、直播加餐
提供vip群 答疑和模型下载
  ANSYS Workbench & Mechanical企业级二次开发程序与Python应用入门进阶
图片  
扫码查看视频教程
以下是课程大纲及主要内容:
图片  
我还为付费用户提供VIP群答疑服务持续加餐内容、提供定制化培训和咨询服务、仿真人才库高新内推就业、仿真秀还提供奖学金、学完此课程,推荐学习者报名参加工程仿真技术(CAE分析职业能力等级评价证书)。
此外,在使用过程中遇到代码报错、需求调整等问题,欢迎在评论区留言,我会一一解答。后续还会分享更多 ANSYS 二次开发的实战技巧,敬请关注。

来源:仿真秀App
MechanicalLS-DYNAFluentWorkbenchHyperMesh断裂UDF电路二次开发材料机器人控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2026-01-04
最近编辑:7月前
仿真圈
技术圈粉 知识付费 学习强国
获赞 12081粉丝 23458文章 4579课程 276
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈