利用脚本删除Abaqus中的多个网格单元

1.删除单元

删除单元:普通的画网格方式画出的网格,不能删除。自下而上划分的网格才可以删除。如下图。


   普通的画网格方式画出的网格,不可删除单元element
 


   自下而上划分的网格,可删除单元element
 

2.单元label

网格单元的label可用查询功能查询出来。整数int类型12633即为高亮显示单元的label,如下图。Label是单元特有标签(类似于名称),各单元的label均不同。后续可以按照label删除相应的单元。


   单元标签:element label
 

3.根据单元label寻找单元的函数:getFromLabel(...)函数

mdb.models['Model-1'].parts['TplateB'].elements.getFromLabel(label=label)

需要的变量:单元的label(int整数型数据)

返回的数据类型:MeshElement object


   getFromLabel函数使用方法介绍
 

4.删除多个单元的代码

删除单元的函数:deleteElement()。

p.deleteElement(elements=elements_array,deleteUnreferencedNodes=ON)

需要的变量:A sequence of MeshElement objects (即MeshElementArray object)



   deleteElement()函数使用方法介绍
   

MeshElementArray object类型:A sequence of MeshElement objects( MeshElement objects的序列)。


   MeshElementArray object数据类型介绍
   

将MeshElement objects转为MeshElementArray object的函数:MeshElementArray(...)

需要的变量:MeshElement的列表类型。


   MeshElementArray(...)函数介绍
   

5.附:完整代码


int_list=[11,22,33] #int_list为列表,存放int整数||即单元label
p = mdb.models['Model-1'].parts['part-1']  #针对某part进行删除网格操作
e = p.elements
elements_num=[]
for i in range(len(int_list)):
   label=int_list[i]
   elements=mdb.models['Model-1'].parts['part-1'].elements.getFromLabel(label=label)   #按照label选取element,并存入列表elements_num
   elements_num.append(elements)
elements_array=mesh.MeshElementArray(elements_num)    #将列表elements_num转为elements_array类型
p.deleteElement(elements=elements_array, deleteUnreferencedNodes=ON)   #删除相应单元



免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

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

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

* 公司名称:

姓名不为空

手机不正确

公司不为空