首页/文章/ 详情

【HyperMesh宝典】之复杂中面抽取实例

9月前浏览4654

本文摘要(由AI生成):

本文主要介绍了在复杂注塑件中面抽取的流程和基本思路,并展示了如何在实际工程案例中快速有效地得到高质量中面。首先,对模型进行一轮简化,主要是去掉小的圆角,然后进入geometry>defeature>surface fillets设置相关参数,删除所有solid,仅保留曲面,在手工抽取中面的过程中使用曲面就够了。接下来,通过offset得到base面,并按照上一讲中的三步曲来走。第一步是通过offset创建base面,选择完整、简单的面来偏置,不要选择同一个加强筋的两侧,局部加厚部位可以先不抽取,通过偏置后的几何清理来完成。偏置后的面要先复 制一份再偏置,偏置的距离永远是负数,整个零件的偏置操作最好一次完成,以免base之间彼此错位。最后,对base面进行修复,主要使用的工具包括edge edit面板下的toggle、replace,surfaces面板,surface edit等。

 


从理论上说,理论和实践没有区别,但实际上是有的。

——Lawrence “yogi” Berra

纽约扬基队棒球选手


上一讲我们介绍了复杂注塑件中面抽取的流程和基本思路,本讲我们将在下面这个例子中展示如何在实际工程案例中快速有效地得到高质量中面。

 

该件两面有很多加强筋,我们处理的思路还是一样的三步曲,只不过我们为了提高效率还可以做一些额外的改进使抽取中面变得更容易。

在正式开始造面之前我们可以先对模型进行一轮简化,主要是去掉小的圆角,在本例中我们删除所有半径小于3.5的圆角。

   

step 1:

删除所有solid,仅保留曲面,在手工抽取中面的过程中使用曲面就够了。

   

step 2:

进入geometry>defeature>surface fillets

设置如下:

 

   

step 3:

选择所有曲面后点击find,然后在下一页点击remove进行删除。此时相邻曲面会进行自动延伸相交。去除几何圆角是一个技术难题,部分区域的圆角会无法去除,但是我们可以不去管它们,放心往前走,不会出事的。

 

这样就得到了简化之后的模型。

 

然后,还是通过offset得到base面。这步要得到一个连接关系正确的面组,后面要用它对其它加强筋面进行裁剪。如果零件base面的各个部位厚度差别较大,则可能需要offset多次并进行连接。为此方老师专门写了一个脚本帮大家显示厚度信息,脚本的具体使用说明如下。


     

使用脚本在模型上显示各个板的厚度


1

第一步:表面网格划分

HyperMesh可以使用2D单元进行厚度测量,所以我们需要先生成一些2D网格。选择所有外表面划分即可

             

得到的网格如下图,不必在乎单元质量

             


2

第二步:在需要标注厚度的板的中间位置各选一个单元移入^th组

1.创建^th component

2.在需要标注厚度的板的中间位置各选一个单元移入^th组(F11),避开T形连接位置及圆角区域,确保所选单元所在位置两侧都是平整的面

3.删除除^th组之外的所有单元


3

第三步:生成厚度信息

1.打开下拉菜单Mesh>Edit>Elements>Midmesh Thickness

             

2.按照下图进行操作设置,然后点击Calculate Thickness即可从几何读取厚度信息。

             

3.生成的property如下:

             


4

第四步:运行tcl脚本生成带厚度信息的标签(tags)

             


tcl脚本的内容如下:

*tagdisplay 1

*tagtextdisplaymode 1

*createmark elems 1 "all"

set elem_lst [hm_getmark elems 1]

set prop_lst [list]

set node_lst [list]

foreach elem $elem_lst {

       set propid [hm_getvalue elems id=$elem dataname=property]

       if {$propid != 0} {

              lappend prop_lst $propid

              set thickness [hm_getvalue props id=$propid dataname=95]

              set x [hm_getvalue elems id=$elem dataname=centerx]

              set y [hm_getvalue elems id=$elem dataname=centery]

              set z [hm_getvalue elems id=$elem dataname=centerz]

              *createnode $x $y $z 0 0 0

              set newnode [hm_latestentityid nodes]

              *tagcreate nodes $newnode "th$newnode" $thickness 4

              lappend node_lst $newnode

       }

}


 


 


生成的标签会在屏幕上显示各个单元处的厚度,结果如下:


 


从查询结果可以看出除了局部加厚部位外,大部分base面厚度都是1.8,所以为了简化base面offset的难度我们决定采取-0.9作为偏置的距离。

提醒:记得删除所有单元,以免给后续操作带来不必要的麻烦。


   

说明:


  • 使用该功能主要是为了避免反复测量板厚浪费时间,而且脚本比手工测量的精度更高。另外,在模型上显示厚度有助于缓解建模工程师因害怕弄错厚度而带来的焦虑(就当是开玩笑吧)。

  • 厚度值特别大的标签可能是错误的,原因是单元可能选在了不适合测量板厚的位置,比如T形连接位置,倒角位置等。请忽略这些标签(或直接删除)

  • 所以在选择保留到^th组的单元的时候需要选择能体现板厚的部位

  • 脚本没有清理模型,生成的属性,单元,临时节点等需要手工清理


 


前面部分只是简化模型和标注厚度。虽然这部分工作也很重要,但是要真正解决问题还是需要按照上一讲中的三步曲来走。

  第一步  

通过offset创建base面。


第一步的几个要点如下:

  • 选择完整、简单的面来偏置

  • 不要选择同一个加强筋的两侧

  • 局部加厚部位可以先不抽取,因为我们希望这些局部的中面和其它中面共面,只是厚度不同,到时进行imprint或者曲面切割一下就可以了。

  • 特别细小的面可以不用选择,可以通过偏置后的几何清理来完成

  • 偏置后的面要先复 制一份再偏置,偏置后的面要单独放在base组里面以备后续使用。

  • 偏置的距离永远是负数,因为实体外表面的法向总是朝外的。

  • 整个零件的偏置操作最好一次完成(至少要用尽可能少的次数以便进行base面的连接),以免base之间彼此错位。


   

step1:

创建base component


   

step2:

进入surfaces edit>offset选择要偏置的面,并复 制一份放在当前组。offset设置如下

 
 

初步offset得到的base面如下

 

接下来我们需要对base面进行修复

主要使用的工具包括edge edit面板下的toggle、replace,surfaces面板,surface edit等,具体操作请参考《庖丁解牛》那期。快来点击下方链接一起复习一下吧。

HyperMesh宝典第十二期

       

【HyperMesh宝典】中面抽取看我庖丁解牛

     


考虑到曲面操作需要在各个面板之间反复切换,建议定义一些快捷键,关于快捷键的更详细说明请参考《快捷键任我行》那期。

HyperMesh宝典第十一期

       

【HyperMesh宝典】快捷键任我行

     

这里我们直接给出方老师使用的快捷键定义语句。

bind . <space> quitpanel

proc quitpanel {} {hm_exitpanel}

 

bind . <Double-u> untrim

proc untrim {} {hm_pushpanelitem {surface edit} {untrim}};

 

bind . <s><e> surfaceedit

proc surfaceedit {} {hm_pushpanel {surface edit}};

 

bind . <Double-s> surfaces

proc surfaces {} {hm_pushpanel {surfaces}};

 

bind . <Double-l> lines

proc lines {} {hm_pushpanel {lines}};

 

bind . <l><e> lineedit

proc lineedit {} {hm_pushpanel {line edit}};

 

bind . <Double-t> surfacetrim

proc surfacetrim {} {hm_pushpanelitem {surface edit} {trim with surfs/plane}}


最终得到质量很高而且拓扑关系完全正确的base面如下图所示。必须要强调一点:在曲面处理上偷懒一分钟造成曲面缺失或连接错误,往往需要在网格处理阶段用十倍的时间去弥补。


所以,在处理base面拓扑关系和曲面质量时不可以求快,质量才是最要紧的。为方便操作,可以只显示当前操作的部分曲面并随时在model browser中右键创建一个view一遍需要时恢复视图。

 

实际上,base面的抽取会占去总时间的相当大一部分,所以,现在可以说已经进度过半了。


  第二步  

创建加强筋


世界上没有百战百胜的战术,也没有解决问题的万能方法,所以我们需要根据问题的实际情况找到最佳方法。


对于注塑件来说,通常的情况是:

  • 加强筋大部分是直线型的,

  • 通常都是一群一群地出现

  • 大部分零件只有一到两个拔模方向。


我们先拿一群简单的加强筋来试试牛刀。

 

使用的操作包括midsurf>final edit tool>surface pair和surface edit>extend



当然,真正的麻烦来源于中间那一大群格子状的加强筋,操作过程会遇到各种麻烦,以下是部分操作视频(整个操作需要30分钟左右),其实还有更好的办法处理这类加强筋(本文后续会讲到)。


完成后的中面如下图(隐藏共享边后的效果):

 

局部放大并显示共享边的效果:

 


到这里我们的工作就完成了。如果你看过《二次开发中的tcl流程控制结构》那一期你就会了解使用line的方法比用曲面的方法简单很多。点击下方链接快来复习一下吧

HyperMesh宝典第九期

       

【HyperMesh宝典】二次开发中的tcl流程控制结构



     


如果要划分2D网格我们还需要进行几何清理才能高效进行。之后我们会再介绍2D网格划分的,那时你就会发现,和抽取中面相比划分网格难度更低。

该模型无法提供给大家做练习,请大家自己找一个类似的零件练习一下,能亲手搞定才是真的会。其实本文的开头的名人名言就是想要告诉大家这个道理。

来源:Altair澳汰尔
HyperMesh网格处理二次开发理论控制曲面Altair
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-03-26
最近编辑:9月前
Altair澳汰尔
澳汰尔工程软件(上海)有限公司
获赞 146粉丝 499文章 758课程 4
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈