本文摘要:(由ai生成)
本文介绍了利用HyperMesh (HM) API和Tkinter库创建GUI,去除模型Logo的方法。作者概述了去除Logo的步骤,并分享了HM API的搜索技巧,特别是关于*delete_logo的API使用。文章还提供了HM去除Logo的代码,并讨论了学习Dyna的体验和软件使用的熟练度。最后,作者分享了二次开发代码,通过GUI实现去除Logo的完整流程,包括选择Logo线、计算高度、选择组件、创建标记、删除Logo并清除标记。此代码为模型处理提供了便利的自动化解决方案。
大家好,我是小鲸鱼,好久都没更新文章了,上次说要借图惜大佬的文章
04 几何修复与简化也有捷径——Hypermesh速通4
04 几何修复与简化也有捷径——HyperMesh速通4
来简单聊一下hm中去除logo的方法,一直没抽出空来搞,今天忙里偷闲的来写篇水文
插一句,下面是之前写的hm二开系列文章
回到正题,其实原理很简单,就是使用hm的api来写,然后用tk做个界面,一般去除logo的方法有两种,这是我基于2022版本来写的,不知道高版本是不是已经有了去除logo的选项,之前见到抖音上有人自己写了tcl代码来打开simlab中的去除logo功能,思路很不错,但我个人觉得有点麻烦,就是代码得耗时间打开simlab软件,效率一般,然后我就突发异想,去找了下hm的api,没想到竟然有现成的,那就直接拿来用了
之前,我一直都是用hm中的defeature来remove surf,选surf->adjacent->remove,效率太低了可能有人会问我为什么不用autocleanup,我个人觉得这个还要自己设置参数,比较麻烦,下面就简单的展示一下去除logo步骤吧
01
打开百年不用的古董CREO建个模
02
将建立好的模型导入hm
03
使用source命令运行去除logo功能
04
点击图标选择logo的高度方向任意一条line
05
选择要去除logo的comp
06
Logo去除完成
07
去除后效果
接下来就聊一下这个api,如果你是比较喜欢琢磨这些二次开发的,我个人的建议就是先过一遍帮助文档中的所有api,因为有时候需要做的东西可能就有现成的,但是你不知道,就跟我一样,当时为了找方向矢量,貌似写了一大堆,甚至用上了卷积叉乘,吭哧吭哧好不容易写完了,发现hm自带的api就有,写了一百多行,不如一个api函数来的方便,可能还有读者会遇到只知道个关键字,那就可以在hm中使用模糊搜索,在hm界面最下面command输入框(就是我刚才source的地方)输入info command *关键字*,就会搜索出与这个关键字有关的所有api,这就适用于关键字搜索来找寻api了
回到帮助文档,在index里面就会有*delete_logo的api,这个就是用来去除logo的,可以根据它的用法来写相关的tcl代码
hm的去除logo代码也比较简单,我附在了文末,大家可以公 众号 回复关键字去除logo获取tbc文件,用法和tcl一样的,都可以用source来运行或者在file那边run script
然后就想聊聊其他,就比如我最近在学dyna,发现关键字的体系太庞大了,看了一下午的关键字手册都得搞懵了,就比如hm联合dyna来搞,就单独mat的种类几百个,如果常用的基本上还能记得,不常用的还得靠keyword users manual系列来查阅,就比如section中的实体单元,还有elform的id要去记,简单的记个笔记吧,这段从坐倚北风的博客中摘抄
在LS-Dyna中关键字*SECTION_SOLID用于定义体单元的算法公式。其基本的数据选项卡片如下所示
各选项含义如下:
SECID - SECTION_SOLID的ID号;
ELFORM - 体单元的算法计算公式,对于体单元,LS-Dyna共提供了50余种算法公式,下面介绍几种常用的算法:
0:专门用于蜂窝材料*MAT_MODIFIED_HONEYCOMB 的体单元。开发用于汽车碰撞的可变形壁障,在不失去稳定性的情况下可发生非常大的极度变形,像非线性弹簧一样,单元可以翻转而保持稳定。
1:缺省的常应力单元公式。最有效和最稳定的 8 节点体单元,中心单点积分,需要沙漏控制,对于弯曲载荷,厚度方向至少划分 2 个单元(因为是常应力单元,为表示拉压应力状态,至少 2 个单元)。
2:全积分 S/R 体单元,2*2*2 积分方式,没有沙漏模式,没有体积锁死,因为采用了选择性缩减积分,是常压力单元,对于大变形不是很稳定。
3:全积分带有节点转动的二次方体单元,8 节点,14 个积分点单元,来源于 20 节点体单元,每个节点有 6 个自由度(对于弯曲载荷,可用一个单元,象壳单元特性),对于线弹性问题结果非常精确,开销很大,不建议使用。
4:缩减积分带有节点转动的四面体单元,5 个积分点,每个节点有 6 个自由度,无沙漏,四面体通常比六面体更刚硬,通常需要更密的网格来弱化,是四面体公式的首选。
5:1 个积分点的 ALE 公式(网格平滑)。
6:1 点 Eulerian 公式(节点不移动)。
7:1 点 Eulerian 环境单元公式。用于进口和出口 Eulerian 条件,是常压力单元。
8:声学单元,单自由度(仅是压力),使用*MAT_ACOUSTIC 在流体中传递低压波(声波)。
9:与公式 0 一样,唯一的区别是单元局部坐标系的更新不同,公式 0局部坐标系与单元一起转动,公式 9局部坐标系基于通过单元面质心的轴线,在剪切状态下行为可能较差,从而如果壁障是固定的,那么使用 0 号公式,如果壁障是移动的,使用 9号公式。
10:单点积分的四面体公式,比公式 4 快,但结果不准确,使用于公式 1 的退化单元。
11:Euler/ALE 多物质单元(一个单元最多包含 10 种材料)。
12:Euler/ALE 具有空物质的单物质材料。
13:专门用于体积成型的节点压力四面体公式(无体积锁定)。
14:8 积分点声学单元。
15:2 个积分点的五面体单元。
18:8 个积分点的增强应变体单元,仅用于线性静力计算。
31:单个积分点的 Eulerian N-S CFD 流体单元。
32:8 个积分点的 Eulerian N-S CFD 流体单元 。
相比于ANSYS、ABAQUS,我个人感觉dyna的很多东西都需要自己判断,算法和类型太多了,各种选项巨多,在hm中常用大写字母缩写,都不知道是控制什么的,之前一直想学dyna,奈何它的知识体系巨大,关键字太多,犹如一座山峰一样,让人难以攀登,因为工作需要,现在算是必学项了,学习的道路还很长,仍需努力
接下来我的文章更新方向可能会转到dyna方面,偶尔可能会写点hm的二次开发,学二次开发时间也不久,但是在学的时候,甚至晚上睡觉时脑子还在想代码思路,想到一个就想立即打开电脑去验证,ANSYS和ABAQUS这边,对于ANSYS接触的最早,2017年接触,用的时间也最长,尤其是静力学模块的非线性收敛让人乐在其中
现在回想一下,上次打开ANSYS软件已经是上次了,ABAQUS这边日常在用,但是都是hm和ABAQUS的联合,对ABAQUS的一些界面上设置的东西还是存在太多的生疏,在ANSYS中经常搞的一些骚操作,就比如调非线性用的重启动,网格重画分,弱弹簧,目标生成器等一些东西,好像在hm-abaqus中也没找到,软件用的多了就比较容易混淆, 建模软件creo已经很久不用了,今天打开建模都费劲,哈哈,hm几天没用,操作起来也没那么顺滑了,软件这种东西,尤其是操作型的,常用才是硬道理,在学习dyna的道路上继续加油吧
hm二次开发去除logo代码如下
*createmarkpanel lines 1 "please select logo line!"
set r_logo_line_id [hm_getmark lines 1]
set logo_hight [hm_linelength $r_logo_line_id]
*createmarkpanel comps 1 "please select geoms to remove logo!"
set r_logo_comp_id [hm_getmark comps 1]
*createmark surfs 1 "by comp id" $r_logo_comp_id
set logo_hight_useful [expr $logo_hight + 0.005]
*delete_logo 1 $logo_hight_useful 500 0
hm_markclearall 1
tk_messageBox -title "Info" -message "Logo removed"