Abaqus圆柱体参数化模型的六面体网格划分脚本

以下是针对圆柱体参数化模型进行六面体网格自动划分的 Python 代码:

```
# 进入交互式命令行界面
session.journalOptions.setValues(replayGeometry=COORDINATE, recoverGeometry=COORDINATE)

# 定义圆柱体的几何参数
h = 10.0        # 圆柱体高度
r = 2.0         # 圆柱体半径
num_layers = 5  # 网格划分层数

# 创建模型和部件
import part

model = mdb.Model(name='Model')
part = model.Part(name='Part', dimensionality=THREE_D, type=DEFORMABLE_BODY)

# 创建圆柱体
import math

center = (0.0, 0.0, 0.0)
axis = (0.0, 0.0, 1.0)
part.DatumAxisByTwoPoint(point1=(0.0, 0.0, -h/2), point2=(0.0, 0.0, h/2))
sketch = part.ConstrainedSketch(name='__profile__', sheetSize=2*r)
sketch.CircleByCenterPerimeter(center=center, point1=(r, 0.0))
part.BaseSolidRevolve(sketch=sketch, angle=360.0, axis=part.datums[2])

# 划分六面体网格
part.setMeshControls(regions=part.cells, elemShape=HEX, algorithm=MEDIAL_AXIS, technique=SWEEP)
part.setMeshControls(regions=part.cells, elemShape=TET, algorithm=SIMPSONS)
part.setShellThickness(elemType=ElemType(elemCode=S8R5T, elemLibrary=STANDARD), regions=(part.faces,))
part.setElementType(elemTypes=(ElemType(elemCode=C3D8R, elemLibrary=STANDARD), ElemType(elemCode=C3D6, elemLibrary=STANDARD)), regions=(part.cells,))
part.setMeshControls(regions=part.cells, elemShape=TET, technique=SWEEP)

# 生成网格
part.seedPart(size=r/(2*num_layers), deviationFactor=0.1, minSizeFactor=0.1)
part.generateMesh()

# 修改参数
h = 15.0
r = 3.0
num_layers = 6

# 更新模型和部件
part.deleteMesh()
part = model.parts['Part']

# 重新进行网格划分
part.setMeshControls(regions=part.cells, elemShape=HEX, algorithm=MEDIAL_AXIS, technique=SWEEP)
part.setMeshControls(regions=part.cells, elemShape=TET, algorithm=SIMPSONS)
part.setShellThickness(elemType=ElemType(elemCode=S8R5T, elemLibrary=STANDARD), regions=(part.faces,))
part.setElementType(elemTypes=(ElemType(elemCode=C3D8R, elemLibrary=STANDARD), ElemType(elemCode=C3D6, elemLibrary=STANDARD)), regions=(part.cells,))
part.setMeshControls(regions=part.cells, elemShape=TET, technique=SWEEP)

part.seedPart(size=r/(2*num_layers), deviationFactor=0.1, minSizeFactor=0.1)
part.generateMesh()

```

在这段脚本中,我们首先创建一个名为`Part`的三维圆柱体模型,并进行六面体网格自动划分。使用`setMeshControls()`函数设定划分细节和算法,使用`seedPart()`和`generateMesh()`函数进行网格划分。修改参数后,我们使用`deleteMesh()`函数删除之前的网格,并借助更新后的参数重新生成网格。

链接:https://pan.baidu.com/s/1zst2QwmMq604fnIYX3PWJw 

提取码:hwc2 

--来自百度网盘超级会员V6的分享

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空