Метод 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 в documentation. К сожалению, я не могу найти способ напрямую связать любую часть документации отдельно.
Можете ли вы сделать 'print eseden'? Что это такое? – 101
и тип печати (eseden) –
Почему бы вам не попробовать 'len (eseden)' - возможно, его единственное, и, таким образом, нет точки зацикливания на нем. –