[Abaqus wrapMesh教学] 三句Python脚本实现网格卷曲

在做前处理的时候,你是否会遇到没有三维几何模型、只有草图的情况。如果只是对草图进行拉伸、旋转、扫略常规操作的话,还能快速地从草图创建实体网格,但是对于卷曲的情况怎么办呢,如何从草图(平面展开图)快捷地得到卷曲的实体网格?

[Abaqus wrapMesh教学] 三句Python脚本实现网格卷曲的图1

从草图到实体卷曲网格

Abaqus提供了一个鲜为人知的功能-wrapMesh,可以从平面网格直接生成卷曲网格,它的实现是将平面直角坐标系下点的坐标映射到三维柱坐标系下,即(x,y)→(r,θ,z)的过程,如下图中的(0,0)点,映射到柱坐标系下即(r,0,0),其中r为我们要指定的卷曲半径,θ=x/r,z=y。

[Abaqus wrapMesh教学] 三句Python脚本实现网格卷曲的图2

坐标映射

接下来我们通过案例详细地演示一遍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。

[Abaqus wrapMesh教学] 三句Python脚本实现网格卷曲的图3

创建Planar类型三维shell部件

第2步-为Part划分网格

通过绘制草图或导入外部Sketch文件的方式创建草图,得到Part-1部件,并为其划分网格。

[Abaqus wrapMesh教学] 三句Python脚本实现网格卷曲的图4

由草图生成Part-1并划分网格

第3步-生成孤立网格

为划分好网格的Part-1创建一个孤立网格部件,本例中名称为默认的Part-1-mesh-1。

[Abaqus wrapMesh教学] 三句Python脚本实现网格卷曲的图5

为Part-1生成孤立网格

[Abaqus wrapMesh教学] 三句Python脚本实现网格卷曲的图6

孤立网格部件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)

[Abaqus wrapMesh教学] 三句Python脚本实现网格卷曲的图7

执行wrapMesh生成卷曲网格

如果需要,可以在这一步指定合适的半径,使生成的卷曲网格首尾相接,然后通过合并节点(建议划分Part-1网格时,首尾两条边的种子分布使用by number限制为一致)的方式形成环向闭合网格。

第5步-堆叠出实体网格

使用Edit Mesh工具编辑卷曲后的网格,通过堆叠生成实体网格,选择保留或删除原来的shell element。

[Abaqus wrapMesh教学] 三句Python脚本实现网格卷曲的图8

堆叠出实体网格

[Abaqus wrapMesh教学] 三句Python脚本实现网格卷曲的图9

最终实体网格

经常会做一些医疗方面的Stent分析,这个操作在没有Geometry的情况下还是比较实用的。

[Abaqus wrapMesh教学] 三句Python脚本实现网格卷曲的图10

wrapMesh应用于血管支架


近期培训-流固耦合

(6条)
默认 最新
不错
评论 点赞 1
您好,请教一个问题,wrapmesh语句中可以设置卷曲的轴吗?
评论 2 点赞 1
回复
大哥,你有wrap mesh插件吗?
评论 点赞
回复
设轴和半径不是差不多的效果嘛
评论 点赞

查看更多评论 >

点赞 35 评论 10 收藏 12
关注