[Abaqus wrapMesh教学] 三句Python脚本实现网格卷曲
在做前处理的时候,你是否会遇到没有三维几何模型、只有草图的情况。如果只是对草图进行拉伸、旋转、扫略常规操作的话,还能快速地从草图创建实体网格,但是对于卷曲的情况怎么办呢,如何从草图(平面展开图)快捷地得到卷曲的实体网格?
从草图到实体卷曲网格
Abaqus提供了一个鲜为人知的功能-wrapMesh,可以从平面网格直接生成卷曲网格,它的实现是将平面直角坐标系下点的坐标映射到三维柱坐标系下,即(x,y)→(r,θ,z)的过程,如下图中的(0,0)点,映射到柱坐标系下即(r,0,0),其中r为我们要指定的卷曲半径,θ=x/r,z=y。
坐标映射
接下来我们通过案例详细地演示一遍wrapMesh的执行过程,使用非常简单的Abaqus Scripting来完成。
wrapMesh代码如下:
model = mdb.models['Model-1'] part = model.parts['Part-1'] part.wrapMesh(radius=5.0)
--- 详细教学 ---
第1步-创建Part
创建一个三维Shell部件,类型选择Planar,本例中部件名称为默认的Part-1。
创建Planar类型三维shell部件
第2步-为Part划分网格
通过绘制草图或导入外部Sketch文件的方式创建草图,得到Part-1部件,并为其划分网格。
由草图生成Part-1并划分网格
第3步-生成孤立网格
为划分好网格的Part-1创建一个孤立网格部件,本例中名称为默认的Part-1-mesh-1。
为Part-1生成孤立网格
孤立网格部件Part-1-mesh-1
第4步-执行wrapMesh
在Command Line输入以下Python语句,注意前两行的Model和Part对象名要和你自己模型里面的一致,最后一行是指定卷曲半径。
model = mdb.models['wrapmesh']
part = model.parts['Part-1-mesh-1']
part.wrapMesh(radius=25.0)
执行wrapMesh生成卷曲网格
如果需要,可以在这一步指定合适的半径,使生成的卷曲网格首尾相接,然后通过合并节点(建议划分Part-1网格时,首尾两条边的种子分布使用by number限制为一致)的方式形成环向闭合网格。
第5步-堆叠出实体网格
使用Edit Mesh工具编辑卷曲后的网格,通过堆叠生成实体网格,选择保留或删除原来的shell element。
堆叠出实体网格
最终实体网格
经常会做一些医疗方面的Stent分析,这个操作在没有Geometry的情况下还是比较实用的。
wrapMesh应用于血管支架
查看更多评论 >