Выходной объект поля не повторяется
Я попробовал следующий код и попытался прочитать eseden из набора узлов. Я получаю следующую ошибку как "Тип ошибки Поле выходного объекта не повторяется".
Аравиндом
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 ответ
Метод 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
Вы можете прочитать больше об этом, если вы ищете FieldOutput и FieldValue в документации. К сожалению, я не могу найти способ напрямую связать какую-либо часть документации отдельно.