许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Python&ANSYS后台交互实战:Mechanical无界面操作命令详解

Python&ANSYS后台交互实战:Mechanical无界面操作命令详解

阅读数 5
点赞 0
article_banner


导读: 上一篇文章效率飙升!Ansys Workbench脚本二次开发构建电路板多工况热力耦合仿真聚焦 ANSYS Workbench 脚本开发,以 “电路板多工况热仿真” 为实战案例,从脚本核心逻辑拆解到完整代码详解,手把手教你通过 Python 自动化批量构建仿真系统。本文小郭老师继续给大家带来后台交互命令实战案例。

你是否也遇到过这种情况?从事ANSYS二次开发,给客户/领导/导师交付定制化分析软件时,软件一演示运行就暴露底层是调用 ANSYS 开发,而不是自己手写求解器,被疯狂追问 “能不能藏掉这些专业软件界面?”

今天小郭老师依旧干货满满,直接教授大家ANSYS二次开发任务中关于后台交互这一关键命令!

一、后台交互 vs 前台交互

(一)差别在哪?

“后台交互” 是 ANSYS 二次开发里 “藏起技术细节、提升效率” 的核心功能,很多工程师第一次接触时都会疑惑 “它到底是怎么工作的”。

简单说,后台交互就是 ANSYS 程序在电脑后台自动运行,不弹出任何可视化界面(比如 Mechanical 的程序界面),用户看不到操作过程,只能通过日志或最终结果确认执行状态。它和我们平时 “手动点开 Mechanical 界面、一步步操作” 的 “前台交互” 是完全相反的模式。

(二)为什么要用到后台交互?

不是为了 “炫技”,而是解决实际工作中的核心痛点:交付时 “隐藏底层技术”,提升客户信任

我去年做过的一个项目,当时客户的核心诉求很明确:“不用懂仿真,能快速出温度报告就行”。所以交付的工具最终是这样的:客户只需三步 —— 上传电机三维模型→输入环境温度及工况边界条件→点击 “生成报告”,几分钟后就能下载带温度云图、热点位置的分析报告。

当然,合作初期我们会明确告知 “工具底层基于 ANSYS 开发”,但工具实际使用时,客户完全不用接触这个细节 —— 不用管 ANSYS 是什么,也不用懂热分析原理。

如果用前台交互,打开工具时突然弹出 Mechanical 界面,客户可能会质疑 —— 后台交互能完全藏起 ANSYS 的痕迹,只给客户看你定制的简洁界面,专业度直接拉满。

二、实战操作:如何实现Mechanical后台交互

(一)需求描述

现需开展飞机多层窗导热分析的仿真自动化计算,几何模型如下:


要求:利用Python脚本命令在Engineering Data系统里自动创建相应的材料,并可根据用户选择,实现数据集成应用程序Mechanical的后台交互或前台交互。

(二)脚本拆解

1、中文字符适配与模块导入

这两行是所有 Python 脚本的 “标配”。第一行解决中文乱码问题。如果在脚本里写了中文注释,没这句可能会报错。

第二行导入 os 模块。后面处理文件路径全靠它,比如找几何文件存在哪里、脚本放在哪个文件夹,都是基于os模块。

2、用户参数定义

在这段代码块中,绝大多数命令在我发布的上一篇文章《Python+ANSYS,打造多工况仿真自动化系统》中均有所提及。与本文所讲内容相关的就是命令。

设为,就是后台运行(不弹 Mechanical 界面);设为,就是前台运行(弹出界面让你看过程)。

我平时开发时,调试阶段会设成—— 方便盯着界面看哪里出错了;给客户交付时就改成,藏起 ANSYS 界面,只给客户看结果。

3、核心函数定义:材料创建

这个函数是 “批量建材料” 的核心,解决了手动在 Engineering Data 里点来点去的麻烦。咱们拆解下它的逻辑:

  • • 参数设计:函数需要 4 个参数 ——system_mat(材料系统对象,相当于 ANSYS 里的 “工程数据” 模块)、mat_name(材料名)、density(密度)、therma_conductivity(热导率)。这样设计后,想建多少材料,调用多少次函数就行,不用重复写代码。
  • • 获取工程数据容器:engineeringData1 = system_mat.GetContainer(...)相当于手动点开 Workbench 里的 “Engineering Data” 模块,拿到操作权限。
  • • 创建材料:mat = engineeringData1.CreateMaterial(...)对应手动点击 “创建新材料” 按钮,Name=mat_name就是给材料起名(比如 “Mag2Al”)。
  • • 定义属性:重点看SetData里的Values参数,这里用了"%s [kg m^-3]" % density的格式。这是因为 ANSYS 对单位非常敏感,如果你只写 “2560”,它可能默认成 “g/cm³”,结果直接差 1000 倍!带单位字符串能确保 ANSYS 正确识别([kg m^-3]就是千克每立方米,[W m^-1 C^-1]是瓦每米每摄氏度)。

在飞机多层窗导热分析中,按要求需创建4种材料,则重复调用这个函数4次,即可完成材料参数的定义。

4、主程序执行

(1)创建材料系统并批量生成材料

前两行相当于在 Workbench 左侧拖一个 “Engineering Data” 模块到项目里。是拿 “工程数据” 的模板,是实际创建这个模块。有了它,后面才能在里面建材料。

之后就是调用前面定义的函数,一次性建四种材料。

如果后续需要加材料,直接再加一行就行。比如,加个 “铜” 就写:,非常方便。

(2)把材料共享给热分析系统

这部分解决了 “材料复用” 的问题。手动操作时,建完材料后要在热分析模块里手动关联,脚本里用参数,直接把前面建好的材料系统共享给新创建的热分析系统(是稳态热分析模板),避免重复定义材料。

是说在 Workbench 界面里,热分析系统显示在材料系统的右边,和手动拖模块的布局一致,方便调试时查看。

(3) 导入几何模型

这两行相当于在热分析系统里双击 “Geometry”,然后选择前面定义好的路径导入模型。是拿到几何模块的操作权限,是指定要导入的几何文件。

如果你的几何需要参数化(比如窗户厚度可变),可以在这一步后面加打开 SpaceClaim 脚本接口,批量修改尺寸参数 。关于这部分,这个我们后面案例再细讲。

(4)控制前台 / 后台交互模式

这是实现 “后台 / 前台切换” 的关键代码!是热分析的 “设置” 模块(就是 Mechanical 里划分网格、加边界条件的地方)。

里的参数:

  • • 当is_background=True时,Interactive=not True=False,表示 “非交互模式”(后台运行,不弹 Mechanical 界面);
  • • 当is_background=False时,Interactive=not False=True,表示 “交互模式”(前台运行,弹出 Mechanical 界面)。

这就是为什么前面说是 “总开关”—— 改一个参数,就能在调试和交付模式间切换。

(5)执行 Mechanical 里的详细操作

这部分是 “调用细节脚本”。前面的脚本解决了 “建材料、关联系统、导入几何”,但具体的网格划分(比如设置网格尺寸 2mm)、加边界条件(比如外表面温度 - 50℃)、求解设置(比如收敛精度 1e-6),这些更细致的操作通常写在里(就是前面定义的路径)。

相当于在 Mechanical 的命令行里输入指令,让它去运行里的内容。这样做的好处是 “分工明确”—— 主脚本管流程,细节脚本管具体操作,后续改网格或边界条件时,只动细节脚本就行。

(三)完整脚本及其演示

三、更进一步,隐藏ANSYS Workbench界面

篇幅有限,本文仅介绍如何实现Mechanical后台交互,同学们可参考本文所提供的命令,实现Mechanical/Fluent等数据集成应用程序 (data-integrated applications)的后台交互操作。

更近一步的,在我于仿真秀推出的《ANSYS Workbench & Mechanical企业级二次开发程序与Python应用入门进阶》中,我还进一步讲解了如何利用批处理命令,利用批处理命令,后台打开Ansys Workbench并执行一系列脚本命令。



那么,根据视频教程内容,并结合自行搭建的UI界面及其交互逻辑,即可开发属于你自己的ANSYS二次开发软件!!!

四、ANSYS二次开发需求调研

聊到这里,其实我后台经常收到朋友的私信。有人问 “能不能讲讲参数化建模的脚本?”,有人想知道 “批量导出仿真报告怎么实现”,还有人纠结 “APDL 和 Python 到底该学哪个”。

这些问题都很实在,但我怕自己想当然地选了主题,最后讲的不是大家最急需的。毕竟二次开发的方向太多,从基础的脚本调试,到进阶的定制化界面开发,再到工业级的批量仿真平台搭建,每个方向的实用技巧都不一样。

所以这次想麻烦大家花1-2分钟填个小问卷,问卷里只有几个选择题,主要想明确两件事:

  1. 1. 你目前在做哪类仿真(热分析、结构强度、流体等),遇到的二次开发痛点是什么?
  2. 2. 你最想深入学的方向(比如自动建材料、参数化几何、后处理报告自动化等)?

后续我会根据问卷结果调整内容。大家最关注的方向,我会拆成更细的实战案例,从 “需求背景→脚本拆解→避坑技巧” 一步步讲透;甚至如果某类需求集中,我还会整理对应的代码模板,让大家拿过去改改参数就能用。


看完这篇,是不是觉得 ANSYS 二次开发没那么难。如果你也在为ANSYS后台交互而头疼,不妨试试这个脚本。

此外,在使用过程中遇到代码报错、需求调整等问题,欢迎在评论区留言,我会一一解答。后续还会分享更多 ANSYS 二次开发的实战技巧,敬请关注。

*点击阅读原文,立即学习《ANSYS Workbench & Mechanical企业级二次开发程序与Python应用入门进阶* 》,掌握ANSYS Workbench & Mechanical的脚本自动化开发能力。



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

相关文章
技术文档
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
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空