Ich versuche, an jedem Integrationspunkt in Abaqus Energie zu extrahieren. Ich kann es für Spannungen oder Belastungen tun, aber ich kann nicht für die energetischen Mengen tun. Der erhaltene Fehler ist: „KeyError:‚ELEN‘“, aber in Abaqus ist es das gute Keyword ... Darunter meinen Code ist es zu extrahieren:So fordern Sie die Energiefeldausgabe in ABAQUS an Python
from odbAccess import *
import numpy as np
odb = openOdb(path='C:/Desktop/Fish1.odb')
# lastFrame = odb.steps['Step-2'].frames[-1]
lastFrame = odb.steps['Step-1'].frames[-1]
topCenter = \
odb.rootAssembly.instances['PART-1-1']
stressField = lastFrame.fieldOutputs['ELEN']
field = stressField.getSubset(region=topCenter,
position=INTEGRATION_POINT, elementType = 'CPS3')
fieldValues = field.values
sortie = open('C:/Users/tests.txt', 'w')
sortie.write('Eleme \t Integ \t\t PE11 \t\t\t PE22 \t\t\t PE12 \n')
for v in fieldValues:
sortie.write('%-10.2f'% (v.elementLabel))
if v.integrationPoint:
sortie.write('%-10.2f'% (v.integrationPoint))
sortie.write('%-10.3f\t\t %-10.3f\t\t %-10.3f\t\t %-10.3f\t\t \n'% (v.data[0], v.data[1], v.data[2], v.data[3]))
sortie.close()
haben Sie beim Ausführen der Analyse "ELEN" -Ausgabe angefordert? – agentp
Ja natürlich! :) – user3601754
sehen Sie, was 'lastFrame.fieldOutputs.keys()' zeigt. Sie sollten Ihre '.dat' und' .msg' Dateien auch überprüfen, falls die Anfrage aus irgendeinem Grund ungültig ist, sollte es eine Warnung darüber geben. – agentp