eastar 发表于 2016-5-16 10:37

Abaqus利用脚本读取结果并创建新的输出场显示云图

Abaqus利用脚本读取结果并创建新的输出场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和secondStepfirstStep = myOdb.steps['Step-1']secondStep = myOdb.steps['Step-2'] #创建两个帧对象,-1表示最后一帧frame1 = firstStep.frames[-1]frame2 = secondStep.frames[-1] #读取两个载荷步最后一帧的位移场,赋值给displacement1和displacement2displacement1 = frame1.fieldOutputs['U']displacement2 = frame2.fieldOutputs['U'] #读取两个载荷步最后一帧的应力场,赋值给stress1和stress2stress1 = frame1.fieldOutputs['S']stress2 = frame2.fieldOutputs['S'] #创建新的输出场,两个位移场和应力场之差作为新的输出场deltaDisplacement = displacement2 - displacement1deltaStress = 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,))转自:http://blog.sina.com.cn/s/blog_6465f2ed0102x4d3.html
页: [1]
查看完整版本: Abaqus利用脚本读取结果并创建新的输出场显示云图