使用Python在Abaqus中删除元素

一般基于几何的网格是无法删除单元等对单元节点操作的,所以若想操作,需要先复制一个orphan mesh出来。

在Mesh模块 -> Mesh菜单栏 -> Create mesh part命令,复制一个出来,下图右边的所示,一般orphan mesh都是绿色显示的。



记录一下,rpy文件里,关于复制的命令


# copy
partBase = model.parts["Part-2"]
orphanMesh = partBase.PartFromMesh(name='Part-base-mesh-1', copySets=True)

现在就可以对它进行操作了,cae里的操作命令在这里:

图片



选单元就可以实现对单元的删除,同样的,记录一下rpy里的python语句:


# delete element
e = p.elements
elements = e.getSequenceFromMask(mask=('[#1 ]', ), )
part.deleteElement(elements=elements)

乍一看比较乱,但是看多了就习惯了,练习多了,你就知道里面哪些语句是你需要的。这里主要用的函数是deleteElement(),注意一下这里传入的参数是单元的单元的sequence,有些函数是传入的是element对象,这点很容易搞混淆。


上次我们建立set的时候,传入的也是element序列sequence,所以,用这个sequenceFromLabels函数就好


partBase.Set(elements=elements.sequenceFromLabels(labels=labels), name="Set-Test")

主要的工具已经准备就绪了,再结合上次的内容,就可以实现删除多余单元的操作了,结果如下:

图片



# encoding=utf-8

from abaqus import *
from abaqusConstants import *
import numpy as np

model = mdb.models["Model-1"]

partGear = model.parts["Part-1"]
partBase = model.parts["Part-2"]

# copy
orphanMesh = partBase.PartFromMesh(name='Part-base-mesh-copy', copySets=True)

elements = partBase.elements
nodes = partBase.nodes
labels, delLabels = [], []
cells = partGear.cells

for element in elements:
    nodeIndex = element.connectivity
    center = np.array([0.0, 0.0, 0.0])
    for index in nodeIndex:
        center += nodes[index].coordinates
    center /= 8
    findCell = cells.findAt((center,),printWarning=False)
    if len(findCell):
        labels.append(element.label)
    else:
        delLabels.append(element.label)
partBase.Set(elements=elements.sequenceFromLabels(labels=labels), name="Set-Test")
orphanMesh.deleteElement(elements=orphanMesh.elements.sequenceFromLabels(labels=delLabels)


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

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

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

* 公司名称:

姓名不为空

手机不正确

公司不为空