我是编程新手,我需要编写一个代码来创建一个 odb,以可视化单个步骤的六个字段输出的最大值。对于每个单个节点,我想代表每个字段输出的最大值。现在我创建了一个导致此错误的代码:
myFieldOutput.addData(position=INTEGRATION_POINT, instance=instance1, data=maxStress)
来自序列的 omu_PrimArray 失败 - 维度。
这是代码:
from abaqus import *
from abaqusConstants import *
import visualization
myViewport = session.Viewport(name='Max_Stess',
origin=(10, 10), width=150, height=100)
# Open the tutorial output database.
myOdb = visualization.openOdb(path='PROVA_04_10.odb', readOnly=False)
# Associate the output database with the viewport.
myViewport.setValues(displayedObject=myOdb)
instance1 = myOdb.rootAssembly.instances['MODIFICA_FUNZIONANTE']
# Create variables that refer to the first steps.
firstStep = myOdb.steps['sigma_equivalenti']
frame = firstStep.frames[-1]
#creo nuovo step
# lettura degli stress dallo step sigma
sigma_eq_1 = frame.fieldOutputs['sigma_eq_1']
sigma_eq_2 = frame.fieldOutputs['sigma_eq_2']
sigma_eq_3 = frame.fieldOutputs['sigma_eq_3']
sigma_eq_4 = frame.fieldOutputs['sigma_eq_4']
sigma_eq_5 = frame.fieldOutputs['sigma_eq_5']
sigma_eq_6 = frame.fieldOutputs['sigma_eq_6']
#calcolo del vettore degli sforzi massimi
maxStress=[]
for i in range(len(sigma_eq_1.values)):
v1=sigma_eq_1.values[i]
v2=sigma_eq_2.values[i]
v3=sigma_eq_3.values[i]
v4=sigma_eq_4.values[i]
v5=sigma_eq_5.values[i]
v6=sigma_eq_6.values[i]
maxStress.append((max(v1,v2,v3,v4,v5,v6),)) #max(valori)
myFieldOutput = frame.FieldOutput(name='tensioni_max',description='calcolo delle tensioni massime', type=SCALAR)
myFieldOutput.addData(position=INTEGRATION_POINT, instance=instance1, data=maxStress)
#visualizzazione della variabile delle sigma massima sul programma
myViewport.odbDisplay.setPrimaryVariable(field=myFieldOutput,outputPosition=INTEGRATION_POINT)
myViewport.odbDisplay.display.setValues(plotState=(CONTOURS_ON_DEF,))