Abaqus利用脚本读取结果并创建新的输出场
长安CAE
Abaqus的后处理有时候采用Python脚本会比较方便,此次实例通过脚本语言读取已经存在的Odb结果文件,并且通过程序实现不同载荷步下的结果场数据运算,以得到新的场数据,并显示其云图。
该段程序主要以下功能:
1)打开结果文件;
2)创建载荷步对象
3)创建帧对象
4)读取位移和应力场
5)进行场数据运算
6)设置默认的变形
7)选择创建的应力场作为场输出
8)显示云图
代码解释如下;
from abaqus import *
from abaqusConstants import *
import visualization
#引入相关模块
myViewport = session.Viewport(name='Superposition example',
origin=(10, 10), width=150, height=100)
#创建一个视图窗口,通过Viewport函数,名称是Superposition example,这个视图被赋值给变量myViewport
#打开已经存在的odb结果文件,通过path指定odb文件,此文件需要在工作目录下面
myOdb = visualization.openOdb(path='viewer_tutorial.odb')
#在当前视图窗口显式结果对象,设置默认的plot对象
myViewport.setValues(displayedObject=myOdb)
#创建两个载荷步对象,firstStep和secondStep
firstStep = myOdb.steps['Step-1']
secondStep = myOdb.steps['Step-2']
#创建两个帧对象,-1表示最后一帧
frame1 = firstStep.frames[-1]
frame2 = secondStep.frames[-1]
#读取两个载荷步最后一帧的位移场,赋值给displacement1和displacement2
displacement1 = frame1.fieldOutputs['U']
displacement2 = frame2.fieldOutputs['U']
#读取两个载荷步最后一帧的应力场,赋值给stress1和stress2
stress1 = frame1.fieldOutputs['S']
stress2 = frame2.fieldOutputs['S']
#创建新的输出场,两个位移场和应力场之差作为新的输出场
deltaDisplacement = displacement2 - displacement1
deltaStress = stress2 - stress1
#设置形状变形是依据新的位移场,Abaqus通过这个变量来显示变形形状
myViewport.odbDisplay.setDeformedVariable(deltaDisplacement)
#创建新的应力场云图,场数据是新的应力场,输出位置是积分点,显式其中的Mises应力
myViewport.odbDisplay.setPrimaryVariable(field=deltaStress,
outputPosition=INTEGRATION_POINT,
refinement=(INVARIANT, 'Mises'))
#显式新的Mises云图,并且在变形后的图形上显示,Deformation打开
myViewport.odbDisplay.display.setValues(plotState=(
CONTOURS_ON_DEF,))