首页/文章/ 详情

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

23天前浏览758

HyperWorks 2024 新版本全面支持Python作为二次开发接口,对Python的支持已经在架构中引入了相应的模块,基本是百分百覆盖。借助Python本身的优势,可以在HyperWorks里面做很多基于有限元模型的算法工作。


—— Altair 技术经理 宋志平

在2024年Altair技术大会的精彩演讲

 



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 HyperWorks 二次开发与 Python 重构仿真新体验

Altair 技术经理 宋志平


   

点击查看活动回放视频

 

* 2024年Altair技术大会现场回放视频




关于 Altair 澳汰尔


Altair(纳斯达克股票代码:ALTR)是计算科学和智能领域的全球领导者之一,在仿真、高性能计算 (HPC) 和人工智能等领域提供软件和云解决方案。Altair 能使跨越广泛行业的企业们在连接的世界中更高效地竞争,并创造更可持续的未来。


公司总部位于美国密歇根州,服务于13000多家全球企业,应用行业包括汽车、消费电子、航空航天、能源、机车车辆、造船、国防军工、金融、零售等。


 

来源:Altair澳汰尔
HPCHyperViewInspireSimLab二次开发航空航天汽车电子python消费电子UM人工智能
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-10-26
最近编辑:23天前
Altair澳汰尔
澳汰尔工程软件(上海)有限公司
获赞 142粉丝 474文章 743课程 4
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈