技术干货|Altair HyperWorks 二次开发与 Python 重构仿真新体验

HyperWorks 2024 新版本目前已经支持 Python 了,今天重点介绍一下我们怎么从 TCL 过渡到 Python 的以及 Python 现代知识的情况。主要分为 5 个部分:
1、 对 Python API 的概述
2、 前处理开发介绍
3、 后处理开发介绍
4、 Extensions(官方新发布的代码管理流程插件)
Python API 架构
我们知道,HyperWorks 一直采用 TCL 语言作为二次开发编程接口,因其语法简介,内嵌在很多工业仿真软件中不失为一种优秀的编程语言。但相对于 Python 而言,偏为小众,网络上的学习资源非常少,不利于初学者学习。虽然 TCL 也有官方发布的标准库,但很多人都不知道。再者,作为纯解释性语言,TCL 的执行效率偏低。
从 HyperWorks 2024 版本开始,全面支持 Python 作为二次开发接口。新版本中,对 Python 的支持已经在架构中都引入了相应的模块,基本上是百分百覆盖。借助 Python 本身的优势,如很多优秀的库,我们可以在 HyperWorks 里面做很多基于有限元模型的算法工作。比如模型的特征识别、匹配、定位等,零件全视角的图像识别匹配等,模型和结果之间的算法预测等。
如图所示,是软件的整体架构:


在 HyperWorks 2024.1 版本中,API 的覆盖率基本上达到了 100%。写过代码的人都比较清楚,二次开发主要关注两类 API:一类是 Modify Functions,就是在 HyperWorks 中操作记录的命令,覆盖度达到了 99%;另外一类是 Query Functions,用于获取模型信息,这类 API 覆盖度达到了 98%。

Python 开发环境
在 HyperWorks 中内嵌的是 Python 3.8.10 版本,这也是目前 Python3 里面最稳定而且应用最广泛的一个版本。HyperWorks 会预装常用的包,比如 Pandas、NumPy、SciPy、TensorFlow、openpyxl、Matplotlib 等 ,也支持手动安装包,但是不建议安装在软件安装目录里面,除非你知道自己在干什么。
启用 Python 是从菜单栏 view 里面,菜单项 Python Window,在打开的解释器窗口中,就可以调用 API 编写、测试代码了。

另外我们可以看到 TCL command window 是 TCL 的解释器环境,和 Python 解释器以后会并存,所以大家不需要担心以后写的 TCL 脚本在新版本里面不能用。
在 Python 中开发的时候,如果有些 API 存在问题,那么可以调用 TCL 的 API 来保证程序运行的稳定性。如下图所示,在 Python 中可以直接调用 TCL 的 API 语句,也可以直接调用 HWC 的语句,或者直接调用 TCL 脚本文件。由此,就保证了在 Python 中做二次开发的稳健性。

前处理开发
在 HyperWorks TCL 二次开发中,必须要熟知的概念有 Entity,Entity Type,Data Names,Mark 等。在支持的 Python API 架构中,我们也遵循类型的逻辑,如下图所示的映射关系。

需要注意的是 TCL 中的 Entity Mark 和对应 Python 中的 Entity Collections。在 TCL 开发中,我们只能最多创建两个 Mark,如 mark 1 和 mark 2,用于批量操作同一类的 Entity;但是在 Python 中,我们用 Collection 代替了 Mark,创建的 Collection 数量没有限制,这从一定程度上增加了代码中操作 Entity 的灵活度。
另外,Python API 的接口函数名字和 TCL API 命令的名字是一样的,而且传入的参数用法也是一样的,不同的只是 TCL 和 Python 的语法差别。所以对于有 Python 编程基础的来说,从 TCL 开发转到 Python 开发,学习曲线没有大家想的那么陡。

此外,关于界面开发,在 TCL 中大家熟知 HWTK 组件库,其界面风格和 HyperWorks 界面一致。那么在 Python 中,我们提供了 hwx.gui 模块用于编写界面,同样是和 HyperWorks 的新界面风格保持一致。而且该模块,同样适用于 Altair Compose,Altair Inspire 和 Altair SimLab 的二次开发。
最后,基于 Python 开发的帮助文档目前在逐步的完善,让大家能更好地学习参考;语法提示插件 HyperWorksPyAPI 目前已经可以在 VSCode 中下载使用,相信能让我们写代码的效率提升一筹。
后处理开发
传统 TCL 中基于 Handle 的后处理开发,向来是初学者的一道门槛。如今,后处理包括 HyperView 和 HyperGraph 都已经支持 Python 开发,后续版本会逐步覆盖所有功能,如下图所示:

HyperView 中对于常见的截取图片视频的功能,我们提供了 CaptureVideoTool( )类来方便的截取图片、视频;HyperGraph 中对于常见的绘制曲线功能,我们提供了 CreateCurvesByFile( )类来方便的绘制曲线。
插件管理器 Extension Manager
在新版本中,我们提供插件管理器来规范化管理代码。强烈建议采用插件管理器管理平时开发的功能脚本。通过 XML 文件配置工作流和功能执行脚本,支持混合调用 TCL 脚本和 Python 脚本,比如功能一调用 TCL 脚本,功能二调用 Python 脚本。

以上就是关于 HyperWorks 二次开发新内容的全部分享。
Altair 是计算智能领域的全球领导者之一,在仿真、高性能计算 (HPC) 和人工智能等领域提供软件和云解决方案。Altair 能使跨越广泛行业的企业们在连接的世界中更高效地竞争,并创造更可持续的未来。Altair 服务于 16000 多家全球企业,应用行业包括汽车、消费电子、航空航天、能源、机车车辆、造船、国防军工、金融、零售等。
欲了解更多信息,欢迎访问公众号:Altair 澳汰尔
如您对 HyperWorks 感兴趣,欢迎关注公众号免费申请部分软件试用。
评论