我知道如何使用python脚本读取元素或元素节点应力值(非平均值)。
field = stressField.getSubset(region=topCenter,position=INTEGRATION_POINT, elementType = 'CAX4')但我想要节点的平均应力值。仅供参考,我的odb不包含应力的节点位置数据(即position=NODAL)。
发布于 2016-09-23 04:05:52
这是其中一件比它应该做的更麻烦的事情。您需要创建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'),)), )https://stackoverflow.com/questions/39631065
复制相似问题