字段输出对象不可迭代

时间:2014-12-21 04:17:29

标签: python abaqus

我尝试了以下代码并试图从节点集中看到。我得到以下错误:“类型错误字段输出对象不可迭代”。

阿拉汶

from odbAccess import *
from textRepr import *
from abaqusConstants import *
import odbAccess
odb=openOdb(path='python2d.odb')

NodesofInterest = odb.rootAssembly.instances['PART-1-1'].nodeSets['NODESET'] 

eseden=odb.steps['Step-1'].frames[1].fieldOutputs['ESEDEN'].getSubset(region=NodesofInterest)

for v in eseden:
    print v
    print (v.elementLabel,v.data)

1 个答案:

答案 0 :(得分:0)

getSubset存储库上调用的方法fieldOutputs返回FieldOutput个对象。该对象包含一个成员values,可用于读取特定变量的值,' ESEDEN'在你的情况下。

成员values实际上是FieldValueArrayFieldValue个对象,每个对象都包含有关单个节点数据的所有必要信息。

您收到错误的原因是' FieldOutput'对象实际上是不可迭代的,因此要检索实际信息,您需要按照我刚刚描述的那样关注连接。

为了使这个描述更加清晰,以下是使用您的代码的简单示例:

from odbAccess import *
from textRepr import *
from abaqusConstants import *
import odbAccess

odb=openOdb(path='python2d.odb')

NodesofInterest = odb.rootAssembly.instances['PART-1-1'].nodeSets['NODESET'] 
eseden=odb.steps['Step-1'].frames[1].fieldOutputs['ESEDEN'].getSubset(region=NodesofInterest)

# This kind of iteration should work since FieldValueArray is not 
# a repository
for value in eseden.values:
    # Should print node's label and corresponding value
    print value.nodelabel, value.data

如果您在documentation中搜索FieldOutput和FieldValue,则可以阅读更多相关信息。不幸的是,我无法找到直接链接文档任何部分的方法。