我尝试了以下代码并试图从节点集中看到。我得到以下错误:“类型错误字段输出对象不可迭代”。
阿拉汶
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)
答案 0 :(得分:0)
getSubset
存储库上调用的方法fieldOutputs
返回FieldOutput
个对象。该对象包含一个成员values
,可用于读取特定变量的值,' ESEDEN'在你的情况下。
成员values
实际上是FieldValueArray
个FieldValue
个对象,每个对象都包含有关单个节点数据的所有必要信息。
您收到错误的原因是' 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,则可以阅读更多相关信息。不幸的是,我无法找到直接链接文档任何部分的方法。