机械零件、流道和装配体一放进COMSOL,常常就会碰到些小缝隙、重叠面、短边或者特别窄的面,模型虽然能在界面上显示出来,可这并不表示它就能直接拿去画网格。怎样在COMSOL里把CAD模型导进来,导入之后又该怎样去处理几何上的缺陷,通常比较稳当的做法是先检查好格式、单位和实体状态,然后再根据碰到的具体问题,去选用Repair、Detect Interferences,或者虚拟几何操作这些工具来处理。COMSOL自带的CAD Import Module模块,本身就能完成CAD模型的导入、修复和简化,像STEP、IGES、Parasolid、ACIS这类常见的交换格式,它都支持。
一、COMSOL怎么导入CAD模型
在动身导入之前,最好先确认好CAD文件的版本和单位,要是碰到了复杂的装配体,还可以先在原来的设计软件里面,把那些跟仿真没什么关系的螺纹、铭牌,或者特别小的倒角给隐藏起来,这样能省去不少后面修补的功夫。
1、先建好三维几何节点
新建一个模型之后,先在它里面加上一个3D组件,然后在Model Builder这个树形列表里,用鼠标选中【Geometry 1】。要是后面打算用到CAD Import Module里的修复功能,那在Geometry相关的设置中,就需要把“Geometry representation”这个选项切换成【CAD kernel】,因为这个内核模式是我们导入多种三维CAD格式,并且使用修复工具的一个基础,少了它后面很多操作都动不了。
2、添加导入节点
接下来,去点一下几何工具栏上的【Import】按钮,或者也可以直接在【Geometry 1】上面右键,从菜单里选【Import】。等设置窗口弹出来以后,挑好要用的那个文件,再瞧一眼它显示出来的文件格式和单位有没有问题,都没错的话,点击【Build Selected】就行了。
3、检查一下导入对象的类型
模型一进来,先不要急着去画网格,而是得先看看它到底是被认成了Solid实体、Surface曲面,还是一个Assembly装配体。如果一个原本应该是密闭的零件,现在只显示成一张曲面,那多半说明它的边界还没有完整地缝合起来,这种时候就要先去处理那些缺口和无效的面,不要带着这些问题就直接去划网格。
4、合理设定导入时的修复选项
在导入操作的那一堆设置里,有一个选项叫做“Repair imported objects”,把它勾上以后,软件就会自己试着去修复一些简单的缺陷,并且把那些比绝对修复容差值还要小的小细节给删掉。不过要留心的是,这个容差不要一上来就给调得太大,否则那些本来有用的小孔、薄壁或者倒角,也很有可能被当成没用的细节一块儿去掉了,后面再想往回捞,就比较麻烦了。
二、COMSOL导入CAD模型后几何修复怎么处理
做几何修复的时候,不要上来就到处去点修复命令,一般还是得先把出问题的位置给定位出来,然后再去挑对应的工具来处理。模型导进来报错、Form Union失败,或者网格划分到一半停下来,背后的原因往往并不完全一样。
1、先用Check查一遍几何
在几何工具栏上找到【Defeaturing and Repair】,在里面点一下【Check】,它就能帮我们检查出有没有无效的实体、容差是不是不对劲,还有哪些地方存着局部的几何缺陷。另外,CAD Import Module还带了一个叫“Detect Interferences”的功能,这个就专门用来帮我们找出来装配体里面那些交叠了、留了缝、相互碰到或者谁包着谁的关系。
2、用Repair去处理缺陷
一旦用检查工具找出了像短边、小面、狭长面,或者局部有错误的地方,就可以进到【Defeaturing and Repair】下面,去选【Repair】了。在操作的时候,把要修理的对象给选中,再定一个合适的容差值,Repair这个动作是会直接改动几何体本身的,但改好之后的模型,后面照样还能再导出去给别的软件用。
3、调整一下Form Union的容差
要是好几个零件之间,存着一些很细的缝隙,或者是局部有交叉的地方,那么做Form Union这个操作时,就很可能跑不过去。碰到这种状况,可以进到【Form Union】的设置窗口里,把“Repair tolerance”改成Absolute或者Relative模式,再在旁边填上一个跟缝隙宽度差不多的数值。一般容差是一点一点加上去的,每次改完后都重新去Build一回看看效果,别一下就加得非常大,免得把那些本来不该合在一起的面也给硬拽到一块儿去了。
4、用虚拟几何来给网格减减负
另外还有一种情况,就是几何本身看下来并没有什么明显的错误,可是因为上面布满了大量的短边和窄面,结果导致画出来的网格特别密,计算量也跟着上去了。针对这种情况,我们就可以用上虚拟几何里的那些操作,比如Remove Details来去掉细节、Ignore Edges把一些边给忽略掉、Ignore Vertices忽略掉顶点,或者用Form Composite Faces把几个面拼成一个复合面。这类虚拟几何的操作,主要是为后面画网格提供一个便利,它们并不会去直接改动原始的CAD对象。
三、COMSOL几何修复后怎么复核
等上面的那些修复操作都做完以后,只看到那个Build成功的提示,其实还是不够的,还得再去核实一下实体的数量、边界的对应关系,还有网格跑出来的结果怎么样。
1、把修复前后的对象数量对一对
可以拿修复前后的实体数量来做个对比,看一看像Solid、Domain、Boundary、Edge这些对象的数目,是不是猛地一下子掉了很多。要是数量忽然就少了一大截,那就得回到前面去确认一下,是不是把修复容差给设得太大了,结果不小心把一些重要的结构也给当缺陷删掉了。
2、重新去生成一下网格
接下来可以再去重新剖一下网格,先用比较粗的网格设定去跑一遍,看看还会不会冒出那种特别狭长的单元、局部网格失败,或者网格在某个小地方扎堆特别密集的情况。等到较粗的网格跑下来没发现问题,再按照后面物理场分析的实际需要,去把网格适当地加密就可以了。
3、仔细核对一下边界的选择
几何体一旦被修复过,上面的各个边界编号很可能会跟着发生变化。所以,如果我们之前在模型上已经设好了入口、出口、接触面,或者施加载荷的面,又或者指定了某些特殊的材料区域,那么这些选择集就都得重新去检查一遍,免得物理条件糊到了错误的位置上,让算出来的结果完全不对。
4、把原始文件和修复过的版本都保留下来
养成一个保留记录的习惯,像最原始的那份导入文件、在修复过程中用到的容差值、删掉的那些几何细节,还有最后画出来的网格结果,这些信息都值得保存下来。往后如果上游的CAD设计又更新了版本,我们拿着这些记录就可以很快地判断出来,问题到底是出在模型本身的变动上,还是因为修复的时候参数没有调对,这样能少走很多弯路。
总结
总的来看,在COMSOL里面导入CAD模型的流程,就是先把几何表示模式设成CAD kernel,再添好一个Import节点,把文件弄进来,同时盯好格式、单位,还有对象的类型。模型进来以后,要是需要进行几何修复,思路一般就是先用Check和Detect Interferences把问题位置给标出来,再根据不同的情况,去用Repair直接修补、去调整Form Union的容差,或者借虚拟几何的操作来给网格铺一铺路。等修复做完以后,记着还要重新去跑一遍网格,并且把边界条件核对一遍,这样做下来,后续仿真得到的结果才会更加靠得住。