定义 Abaqus 模型的外表面并计算距离积分点-最近表面
Define outer surface of an Abaqus model and calculate distance integration point-closest surface
我有一个问题已经尝试解决了数周但没有结果。在 Abaqus 中进行模拟后,一旦我用各自的坐标导出了每个积分点的应力,我需要为每个积分点计算距最近表面的距离。当然,几何形状可以任意复杂。
我的想法是首先确定属于模型表面的节点的坐标(想法是在不确定先验表面或集合的情况下这样做)。
我在另一个线程中找到了这段代码:
p = mdb.models[name].parts[name]
surf_nodes = []
for face in p.elementFaces():
if len(face.getElements()) == 1:
# Then the face has only one associated element, ie it's on the surface.
# Get the nodes on the face:
surf_nodes.extend([node for node in face.getNodes() if node not in surf_nodes])
问题是当我启动脚本时收到此消息:
类型错误:MeshFaceArray 对象不可调用。
你知道我该如何解决这个问题吗?当然,您知道如何实现我的最终目标吗?
真的非常感谢你:)
试试这个,如果它不起作用,请告诉我,然后我可以进一步帮助你。
p = mdb.models[name].parts[name]
surf_nodes = []
for face in p.elementFaces:
if len(face.getElements()) == 1:
surf_nodes.extend([node for node in face.getNodes() if node not in surf_nodes])
我有一个问题已经尝试解决了数周但没有结果。在 Abaqus 中进行模拟后,一旦我用各自的坐标导出了每个积分点的应力,我需要为每个积分点计算距最近表面的距离。当然,几何形状可以任意复杂。
我的想法是首先确定属于模型表面的节点的坐标(想法是在不确定先验表面或集合的情况下这样做)。
我在另一个线程中找到了这段代码:
p = mdb.models[name].parts[name]
surf_nodes = []
for face in p.elementFaces():
if len(face.getElements()) == 1:
# Then the face has only one associated element, ie it's on the surface.
# Get the nodes on the face:
surf_nodes.extend([node for node in face.getNodes() if node not in surf_nodes])
问题是当我启动脚本时收到此消息:
类型错误:MeshFaceArray 对象不可调用。
你知道我该如何解决这个问题吗?当然,您知道如何实现我的最终目标吗?
真的非常感谢你:)
试试这个,如果它不起作用,请告诉我,然后我可以进一步帮助你。
p = mdb.models[name].parts[name]
surf_nodes = []
for face in p.elementFaces:
if len(face.getElements()) == 1:
surf_nodes.extend([node for node in face.getNodes() if node not in surf_nodes])