gpt4 book ai didi

python - 在 ABAQUS/Viewer 中枚举元素集的节点

转载 作者:太空宇宙 更新时间:2023-11-04 09:58:40 25 4
gpt4 key购买 nike

有什么方法可以访问 ABAQUS 查看器中元素集的节点。我知道如何通过

从连接中提取节点
session.openOdb(name='cube.odb').rootAssembly.instances['PART-1-1'].elementSets['CUBE-1_CUBE'].elements[el_numerator].connectivity[nod_numerator]

这里的问题是在这种情况下我们会得到重复的节点号,我们必须用另一个命令删除重复的节点。我想知道我们是否可以直接枚举元素集中的节点。

问候

最佳答案

至少有两种方法可以从元素集中获取所有节点。

第一种方法就是您所描述的。遍历元素集中的所有元素,查看每个元素的连通性并过滤掉重复的节点。如果您有程序集级别集,在这里您还需要注意使用节点的实例名称。

odb = session.openOdb(name='cube.odb')
elset = odb.rootAssembly.instances['PART-1-1'].elementSets['CUBE-1_CUBE']

elset_nodes = set()

for element in elset.elements:
elset_nodes.update(element.connectivity)

# At this point elset_nodes contains all element set nodes

第二种方法是从所需的元素集中创建一个显示组并绘制它。这将生成一个 DisplayGroupInstace 对象,该对象具有方法 nodes。此方法返回一个字典,其中包含属于显示组的所有节点。键是实例名称,值是节点标签。

from abaqus import session
import displayGroupOdbToolset as dgo

leaf = dgo.LeafFromElementSets(elementSets='PART-1-1.CUBE-1_CUBE')

vp = session.viewports[session.currentViewportName]
vp.odbDisplay.displayGroup.replace(leaf=leaf)

dg = vp.odbDisplay.displayGroup
dg = session.DisplayGroup(name='CUBE-1_CUBE', objectToCopy=dg)
vp.odbDisplay.setValues(visibleDisplayGroups=(dg, ))

cube_dg = vp.odbDisplay.displayGroupInstances['CUBE-1_CUBE']

elset_nodes = cube_dg.nodes()

关于python - 在 ABAQUS/Viewer 中枚举元素集的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44789160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com