Выходной объект поля не повторяется

Я попробовал следующий код и попытался прочитать 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 в документации. К сожалению, я не могу найти способ напрямую связать какую-либо часть документации отдельно.

Другие вопросы по тегам