技术干货|热门仿真工具HyperWorks 的二次开发与 Python 结合,重构仿真新体验

news2024/11/13 3:58:58

目前市面上有许多热门仿真软件,其中HyperWorks是各大企业最常用的。目前HyperWorks发布了 2024 新版本,已经全面支持Python作为二次开发接口,对Python的支持已经在架构中引入了相应的模块,基本是百分百覆盖。借助Python本身的优势,可以在HyperWorks里面做很多基于有限元模型的算法工作。

今天重点介绍一下怎么从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二次开发新内容的全部分享。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2228231.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2022NOIP比赛总结

种花 1.本题是一道前缀和优化加上枚举的问题。先考虑 C 因为 F 是 C 下边随便加一个点,所以只要求出 C 就求出了 F 。 注意到,并没有要求上下行一样,唯一的要求是 C 的两个横要隔一行,这就是问题的突破点,这题很明显…

《DIY项目之“一只眼狗链”》:视频方案

项目背景 《DIY项目之“一只眼狗链”》合集主要记录完成一个DIY项目的所有过程。该合集预计更新频率为2~3周一篇(同样属于一边做一边记录发布,时间上主要涉及PCB绘板、零部件采购、样品制作、编程等,存在一定的不可控性)。 当前项…

若依微服务15 - RuoYi-Vue3 实现前端独立运行

正文开始: RuoYi-Vue3 使用 Vue3 Element Plus Vite 技术栈。 GitHub 开源地址:https://github.com/yangzongzhuan/RuoYi-Vue3 本文介绍使用若依提供的在线后端接口,仅启动前端项目并进行界面开发,而无需启动后端服务。 一、克隆…

【ROS】详解ROS文件系统

参考:ROS入门笔记(七):详解ROS文件系统 - 少云清的文章 - 知乎 https://zhuanlan.zhihu.com/p/338042120 ROS文件目录 这里的软件包指的是src下的文件夹,因为在ROS下创建软件包的流程如下: 把软件包…

Unity游戏上传微信小游戏步骤

准备一个小程序账号,在首页设置服务类目为小游戏(需要新创建的小程序才能设置,之前设置过的不能更改为小游戏) AppID(小程序ID) 在网页左下角点击进入账号设置-基本设置 下拉找到小程序Id(后面用到) 点击进入下载微信开发者…

SAP 根据不同生产版本创建销售预测简介

SAP 根据不同生产版本创建销售预测简介 业务场景前台操作1、创建BOM2、创建工艺路线3、创建生产版本4、创建销售预测5、调整销售预测6、查看物料需求业务场景 很多工厂一个物料可能会存在多个BOM,当有多个BOM存在的情况下就会存在多个生产版本,当创建计划独立需求的时候,系…

【java batik_使用BATIK解析SVG生成PNG图片】

矢量图的介绍及应用场景 矢量图是什么意思? 矢量图,也称为向量图,英文名字是Vector graphics。 矢量图是一种基于矢量的图形,由一系列的线段和曲线组成。由数学公式和算法生成的。这意味着矢量图可以在任何分辨率下清晰地显示&…

浅谈钓鱼攻防之道-制作免杀excel文件钓鱼

如果我告诉你我很厉害,也许你会说我在吹牛。但是如果我告诉你我并不厉害,你肯定知道我在撒谎。 1、CSV注入之RCE CSV公式注入(CSV Injection)是一种会造成巨大影响的攻击向量,攻击这可以向Excel文件中注入可以输出或以CSV文件读取的恶意攻击…

Linux Shell 实现一键部署mariadb11.6

mariadb MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius主导开发…

在 Elasticsearch 中顺利管理季节性时间变化

作者:来自 Elastic Valeriy Khakhutskyy, James Gowdy 用于 Elasticsearch 异常检测的新夏令时日历。 每年春季和秋季两次,许多国家/地区都会调整时钟以更好地利用日光。这些时钟调整不仅会带来时差和 “困倦的星期一” 的感觉,还会带来来自…

开源一套基于若依的wms仓库管理系统,支持lodop和网页打印入库单、出库单的源码

大家好,我是一颗甜苞谷,今天分享一款基于若依的wms仓库管理系统,支持lodop和网页打印入库单、出库单的源码。 前言 在当今快速发展的商业环境中,库存管理对于企业来说至关重要。然而,许多企业仍然依赖于传统的、手动…

C++ | Leetcode C++题解之第509题斐波那契数

题目&#xff1a; 题解&#xff1a; class Solution { public:int fib(int n) {if (n < 2) {return n;}vector<vector<int>> q{{1, 1}, {1, 0}};vector<vector<int>> res matrix_pow(q, n - 1);return res[0][0];}vector<vector<int>>…

「Mac畅玩鸿蒙与硬件12」鸿蒙UI组件篇2 - Image组件的使用

在鸿蒙应用开发中,Image 组件用于加载和显示图片资源,并提供多种属性来控制图片的显示效果和适配方式。本篇将带你学习如何在鸿蒙应用中加载本地和远程图片、设置图片样式以及实现简单的图片轮播功能。 关键词 Image 组件图片加载本地资源远程图片图片轮播一、Image 组件基础…

【CSS3】css开篇基础(5)

1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; Hello, Hello~ 亲爱的朋友们&#x1f44b;&#x1f44b;&#xff0c;这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章&#xff0c;请别吝啬你的点赞❤️❤️和收藏&#x1f4d6;&#x1f4d6;。如果你对我的…

怎么将文件批量重命名001到100?6个超好用的方法汇总

怎么将文件批量重命名001到100&#xff1f;在日常工作和学习中&#xff0c;我们经常需要处理大量的文件。这些文件可能包括文档、图片、音频、视频等各种类型&#xff0c;而它们的命名往往各不相同&#xff0c;这给我们的查找工作带来了很大的困扰。为了提高查找效率&#xff0…

【运动的&足球】足球运动员球守门员裁判检测系统源码&数据集全套:改进yolo11-DBBNCSPELAN

改进yolo11-FocalModulation等200全套创新点大全&#xff1a;足球运动员球守门员裁判检测系统源码&#xff06;数据集全套 1.图片效果展示 项目来源 人工智能促进会 2024.10.28 注意&#xff1a;由于项目一直在更新迭代&#xff0c;上面“1.图片效果展示”和“2.视频效果展示…

Linux_02 Linux常用软件——vi、vim

vi编辑器有三种主要模式&#xff0c;每种模式的功能和用途不同&#xff1a; 一、命令模式 (Command Mode)&#xff1a; - 启动 vi 时默认进入此模式。 - 你可以在此模式下移动光标&#xff0c;输入各种命令&#xff08;如删除、复制、粘贴等&#xff09;。 yy&#xff1a;…

python 爬虫抓取百度热搜

实现思路&#xff1a; 第1步、在百度热搜页获取热搜元素 元素类名为category-wrap_iQLoo 即我们只需要获取类名category-wrap_为前缀的元素 第2步、编写python脚本实现爬虫 import requests from bs4 import BeautifulSoupurl https://top.baidu.com/board?tabrealtime he…

51单片机STC8G串口Uart配置

测试环境 单片机型号&#xff1a;STC8G1K08-38I-TSSOP20&#xff0c;其他型号请自行测试&#xff1b; IDE&#xff1a;KEIL C51&#xff1b; 寄存器配置及主要代码 STC8G系列单片机具有4个全双工异步串行通信接口&#xff1b;本文以串口1为例&#xff0c;串口1有4种工作方式…

电脑使用技巧:怎么清理C盘碎片?

在日常使用电脑的过程中&#xff0c;C盘作为系统盘&#xff0c;常常会因为各种文件、缓存、临时文件等的堆积而变得拥挤不堪。这不仅会降低电脑的运行速度&#xff0c;还可能导致系统不稳定。而磁盘碎片问题则是另一个影响电脑性能的重要因素。本文将详细介绍如何清理C盘碎片&a…