abaqus单元类型有多种,本例简单演示单元控制卡片里不同设置最终得到的单元结果。
下面画一个平面圆,直径200mm,单元属性就不设置了。
当选择四边形单元类型时,可以看到圆面都是四边形单元,但是网格排列混乱,对于显式分析和碰撞等不适合。
将运算法则改为中心轴时,网格单元全部为四边形,且整个圆面网格排列规则近似对称分布。
当设置四边形为主中心轴算法时,网格结果和上一个相同。
选择全三角形网格类型,网格划分结果如下。
选择哪种网格类型,根据具体结构和计算工况决定。
在进行有限元仿真过程中经常遇到需要镜像一个新组件,并把新组件放在新的component里面,只要少数几个组件时可以手动单个去镜像,虽然费事,单总的工作量不大,但是遇到几百上千个组件时就不太现实了,此时需要通过程序化操作进行批量镜像。我们可以在 HyperMesh 中进行二次开发,用 TCL 脚本来实现镜像多个组件(components),并在原组件名称后加上“-1”生成新组件名称,同时将镜像的元素放入对应的新组件中。下面是一个简单的 TCL 脚本示例,说明如何实现这个功能:```tcl# 获取所有组件的列表set components [hm_getentitylist components]# 遍历每个组件foreach component $components { # 获取组件的名称 set compName [hm_getentityname $component] # 创建新组件名称 set newCompName "${compName}-1" # 创建新的组件 set newComponent [hm_createentity component $newCompName] # 获取原组件的所有元素 set elements [hm_getentitylist elements $component] # 遍历每个元素并镜像到新组件 foreach element $elements { # 获取元素的节点 set nodes [hm_getelemnodes $element] # 镜像节点(假设在X轴上镜像,调整根据需求) foreach node $nodes { set coord [hm_getnode $node] set newX [expr {-1 * [lindex $coord 0]}] set newNode [hm_createnode $newX [lindex $coord 1] [lindex $coord 2]] # 将新节点与新元素关联 lappend newNodes $newNode } # 创建新元素并将新节点关联到新元素 set newElement [hm_createelement $newComponent "type" $newNodes] }}# 更新显示hm_redraw```程序编写说明:1. 获取组件和元素:脚本首先获取所有组件的名称,并遍历它们。2. 创建新组件:在原组件名称后加“-1”来生成新组件名称,并创建新组件。3. 镜像操作:遍历原组件中的所有元素,将节点沿 X 轴镜像,生成新节点,并将其放入新组件中。4. 创建新元素:使用新节点创建新的元素,并将其关联到新组件。5. 更新显示:调用 `hm_redraw` 以更新界面显示。编写注意事项:- 脚本中的 `"type"` 在创建新元素时需要根据具体情况修改,例如使用的元素类型(如 1D、2D、3D 元素)。- 镜像操作假设在 X 轴上,若需要其他方向,请相应修改坐标计算。- 请根据实际需求调整脚本中的逻辑和参数。每个人的编写思路不同,程序会有差异,欢迎大家提出宝贵意见,希望大家多交流。来源:仿真老兵