在解决实际工程问题时,我们常把薄板、壳类、片体结构简化为壳单元(SHELL),运用最为常见的就是汽车上的车身零件。一般来说,对于每一个零件我们都会定义一个属性(Property)去描述它的材料,厚度等。
然后这个零件中的每个shell单元都会引用这个属性。也就是说每一个Property下的壳单元都是统一厚度的。
那么要是遇到变厚度的零件又该怎么处理呢?就像这样
我们按照如下常规方法进行抽中面, Topo > Faces > Mid.Surface > skin :
抽完中面后的中面厚度是自动计算计算的一个平均值,进行简单的网格划分后,显示出网格的厚度,大概长这个样子:
怎么显示厚度?
由于厚度是统一定义的,所以每个shell的单元的厚度是一样的,这样和原来的几何的变厚度及就偏离了。
怎么办呢?
方法一:多分几个PID,每个PID中把厚度区分下。
这里只分了三个PID,还是比较粗糙的,理论上来讲,划分的越细致,就越会无限制的贴近原始几何。不过限于网格尺寸,很难做到“无限制”细分。就像此例,一共就10排网格,你还能细致到哪儿去?厚度始终是不连续的。(虽然如此,这个方法还是用的比较多,一来可能简单分分厚度就够用了,二来前后处理中能直接看到不同颜色心理比较有谱。)
那如何实现无级厚度呢?
方法二:自动赋值每个单元的节点厚度
我们使用 Topo > Faces > Mid.Surface > Casting 功能来进行抽中面。如下所示:
同样打开厚度显示,我们发现,厚度竟然直接就连续了,网格和几何贴合度也特别好。来看看图:
这是什么原理呢?通过检查单元的定义,我们发现单元的每个节点都被赋予了厚度。
这个是Casting算法自带的厚度算法,但我们总担心我们在自己手动更改网格后,某些地方的厚度就不对了。所以我们还需要知道怎么去手动修改网格的厚度。
方法三:手动赋值每个单元的节点厚度
我们要用到 MESH > Grids > Thickness 功能来对单元节点进行厚度定义。如下所示:
再来显示厚度,我们发现这些被选择的节点被设置成了我们想要的厚度。
题外话:
设置节点厚度的方法我认为并适合大规模运用,一是数据更大占内存,二是不能很好在模型中通过颜色来辨别。打开厚度显示,又会很占显卡。。。。但鉴于Casting功能很好用(能批量大规模抽中面并画网格还能计算节点厚度),又有些舍不得,好在有个功能可以把节点的厚度按照一定的方式转化为不同厚度的PID,相当于本文中方法二和方法一的结合。这个功能是:MESH > Grids > Thickness > Convert 。如下:
自动分完后是以下这个样子,节点厚度已经没有了。
这个功能重新建了几个PID,把以上不同厚度的单元分别放了进去。
以上是本文全部内容,总后来个实现变厚度的总结:
方法一:多分几个PID,每个PID中把厚度区分下。
方法二:自动赋值每个单元的节点厚度
方法三:手动赋值每个单元的节点厚度
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删