我知道如何使用python脚本读取元素或元素节点压力值(unaveraged)。
field = stressField.getSubset(region=topCenter,position=INTEGRATION_POINT, elementType = 'CAX4')
但我希望节点处的平均应力值。仅供参考,我的odb不包含压力的节点位置数据(即position = NODAL)。
答案 0 :(得分:0)
这是比它应该更麻烦的事情之一。 你需要创建xydata:
session.xyDataListFromField(odb=odb,
outputPosition=ELEMENT_NODAL,
variable=(( 'S', INTEGRATION_POINT), ),
elementSets=('PART-1-1.SETNAME', ))
这会为每个元素和每个压力成分(即巨大的)的每个节点创建一个包含对象的字典。不幸的是,字典由繁琐的描述符字符串键入,例如:
session.xyDataObjects['S:S11 PI:PART-1-1 E: 15 N:2'].data
给出了与元素15相关联的节点2的11个压力组件。要在脚本中使用数据,您需要构造字符串,或者循环遍历字典并为每个对象解析positionDescription
。
编辑:如果你想要的节点平均值几乎相同。你这样做:
session.xyDataListFromField(odb=odb,
outputPosition=NODAL,
variable=(( 'S', INTEGRATION_POINT), ),
nodeSets=('PART-1-1.SETNAME', ))
和字典对象的键控如下:
session.xyDataObjects['S:S11 (Avg: 75%) PI:PART-1-1 N:2'].data
请注意,您可以发出多个session.xyDataListFromField
来电并且所有数据都会进入xyDataObjects
(例如,如果您想要压力和压力,您可以同时处理这两个。)
为完整起见,如果您只需要特定组件,可以请求:
variable=(( 'S', INTEGRATION_POINT,((COMPONENT, 'S11'),)), )