我正在检查表面下方的元素是否有标签和&以下代码中的节点坐标
mySurf = mdb.models['Model-1'].rootAssembly.surfaces['Surf-1']
surfEls = mySurf.elements[:]
surfNodes = []
for eNode in mySurf.nodes:
surfNodes.append(eNode.coordinates)
这样做但是当我检查每个列表的大小时,我得到的元素标签比我设置的节点坐标更多!
我还尝试了以下方法来获取节点坐标,
surfNodes = mySurf.nodes[:]
surfNodesCoords = surfNodes.coordinates[:]
但这只会引发错误,
AttributeError:' MeshSequence'对象没有属性'坐标'
我承认让我目瞪口呆。有没有人对上面使用的方法有更深入的了解,谁可以向我解释这种行为?
答案 0 :(得分:1)
问题是 MeshSequenceObject 没有方法'coordinates'。但是,如果序列包含节点,则 MeshSequenceObject 的成员可能具有此方法。只需将其应用于序列的每个成员:
surfNodesCoords = [Node.coordinates for Node in SurfNodes]
后者将使列表包含所有节点的坐标。
P.S。问题的第一部分工作正常。节点数大于元素数。