马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
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和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,)) 转自:http://blog.sina.com.cn/s/blog_6465f2ed0102x4d3.html
|