首页/文章/ 详情

Hypermesh二次开发之去除logo

7月前浏览7701


本文摘要:(由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二开系列文章

a   hypermesh二次开发之“无用”小工具  

b   Hypermesh二次开发之批量选择相同面  

c   Hypermesh二次开发之批量点创建  



回到正题,其实原理很简单,就是使用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"


来源:CAE中学生
LS-DYNAHyperMeshSimLabAbaqus静力学碰撞非线性二次开发汽车Creo声学材料控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-04-21
最近编辑:7月前
CAE无剑
硕士 | 仿真工程师 CAE中学生
获赞 688粉丝 1507文章 250课程 0
点赞
收藏
作者推荐

ANSYS workbench橡胶护套的非线性静力学分析

本文摘要(由AI生成):该案例展示了一个橡胶套密封件的非线性静态结构分析,包括几何非线性、非线性材料行为和状态非线性。该案例的目的是展示surface-projection-based接触方法的优点,并确定橡胶护套密封件的位移和应力结果。文章详细介绍了如何设置模型、定义单位系统、添加圆柱坐标系、定义Remote Point、定义Named Selections、设置接触关系、分析设置、边界条件设置、添加Remote Displacement、解决方案和查看结果。非线性计算的精髓主要在接触的设置,需要不断修改接触算法等参数。 该案例来自Mechanical Tutorials Chapter 2: Nonlinear Static Structural Analysis of a Rubber Boot Seal。该橡胶套密封件示例显示几何非线性,非线性材料行为(橡胶)和状态非线性(接触)。该示例的目的是显示surface-projection-based接触方法的优点并且确定橡胶护套密封件的位移和应力结果。 1.打开静力学模块,导入模型 2. 编辑材料 点击Click here to add new material,输入Rubber Material,在左侧Hyperelastic栏下双击Neo-Hookean,在Initial Shear Modulus栏下输入1.5,在Incompressibility Parameter D1 Value栏下输入0.026. 3.定义单位系统 选择如图的单位系统 4.设置模型 设置Surface Body的厚度为0.01mm,并定义为刚体,Solid设置材料为Rubber Material。 5. 添加圆柱坐标系 Type 选择为Cylindrical,Coordinate System选择为Manual,在Origin中Define By 选择为Global Coordinates,XYZ的值都为0。Principal Axis 中Axis选择Z,Define By选择为Global Y Axis,Orientation About Principal Axis中Axis选择为X ,选择Global Z Axis,并重新命名为Cylindrical Coordinate System。 6. 定义Remote Point 右键model,插入Remote Point。Geometry中选择圆柱表面,X Coordinate, Y Coordinate和Z Coordinate都设置为0,Behavior设置为 Rigid。 7. 定义Named Selections (1)选择圆柱面,右键Named Selections,并重新命名为Cylinder_Outer_Surface。 (2)选择橡胶圈的所有内面,右键Named Selections,并重新命名为Boot_Seal_Inner_Surfaces(此处一共24个面)。 (3)选择橡胶圈的所有外面,右键Named Selections,并重新命名为Boot_Seal_Outer_Surfaces(此处一共27个面)。 8. 设置接触关系 (1)选择Frictional接触方式,Scoping Method设置为Named Selections,Contact设置为Boot_Seal_Inner_Surfaces,Target设置为Cylinder_Outer_Surface,Target Shell Face设置为Top,Frictional Coefficient Value输入0.2,Set Behavior设置为Asymmetric,Detection Method设置为On Gauss Point,Interface Treatment设置为 Add Offset, Ramped Effects。 (2)还有两个是自接触,具体的参数这里就不赘述了,直接上图 9. Analysis Settings Number of Steps设置为3,Auto Time Stepping设置为On,Define By设置为 Substeps,Initial Substeps和Minimum Substeps 设置为5,Maximum Substeps设置为1000,Large Deflection设置为On。 分别设置第2步和第3步,如图: 10. 边界条件设置 在Supports中选择Displacement,Geometry中选择橡胶套密封的两个侧面,Coordinate System设置为Cylindrical Coordinate System,Y Component设置为0。 还有两个Displacement如下图设置: 添加Remote Displacement,Remote Point设置为Scoping Method,Remote Point中选择Remote Point,设置X Component, Y Component, Z Component, Rotation X, Rotation Y和 and Rotation Z为Tabular,在右侧的Tabular Data中Y的第2步和第3步设置为-10,RZ中第3步设置为0.55 rad。 11. Solution 添加Total Deformation,Equivalent (von-Mises),Equivalent (von-Mises),在Geometry中橡胶套,并提交计算。 12. 查看结果 非线性的计算时间一般都比较长,需要耐心等待。如果出现不收敛,可修改网格尺寸。在计算中,我使用了默认的网格划分,计算出现不收敛,后来把网格尺寸改成1mm后计算收敛了。 小结:非线性计算的精髓主要在接触的设置,对于复杂模型,需要不断的修改接触算法等参数,这就需要对接触的深刻理解以及非线性分析的经验。关于接触,目前个人觉得讲的非常好的是周炬老师的书(前面小鲸鱼已经介绍过很多次),再者就是可以去参考帮助文档(最近笔者也一直在看帮助,收获很大)。PS:非线性的计算常常需要消耗很长时间,而且还会经常失败,这就很考验分析人员的意志力,大家可以搞搞自己的兴趣爱好的啥的,我比较喜欢在群里聊天,周炬老师的书上有一个交流群,大家可以进群聊聊技术,吹吹牛啥的,哈哈。

有附件
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈