我想在每个节点上提取我的模型的上表面的应力,但它不能正常完成。当我使用这个脚本:
odb = visualization.openOdb('My.odb')
frame=odb.steps['AStep'].frames[-1]
dispNode = odb.rootAssembly.nodeSets['UPPER']
STRESS= frame.fieldOutputs['S'].getSubset(region=dispNode).values
COORD= frame.fieldOutputs['COORD'].getSubset(region=dispNode).values
print(STRESS)
print(COORD[1].data)
STRESS返回一个空数组。
我怎么能编辑我的脚本有应力及其相应的坐标??
如果您只计算集成点上的压力值,那么您的代码将无法工作。在节点上根本没有值,所以如果你在节点上请求值,你将得到一个空数组。
它应该是这样工作的:
- 将集成点结果外推到节点
- 取elementnode值的平均值。这就是它的工作原理:https://stackoverflow.com/a/43175485/4045774
- 提取节点坐标(变形或未变形)
- 从您的点集获取节点标签
- 使用点集中的节点标签找到相应的唯一节点值https://docs.scipy.org/doc/numpy/reference/generated/numpy.in1d.html
如果您需要一个小的示例代码,请随时询问。