在千辛万苦获得模拟结果后,如何展示能让大家更好的全面观察到仿真结果呢?其实借助Python可以实现模型360°转动的动态展示,以便能观察到不同位置的分布情况。

Abaqus Python 脚本具有视口对象的 setViewpoint() 方法,允许分析人员更改他们在可视化模块中查看模型的方式。它的参数 viewVector 是一个由 3 个浮点组成的序列来指定视点和 cameraUpVector 来指定相机的方向。我们可以认为它就像我们站在 viewVector 指定的位置,并且我们的头部朝向 cameraUpVector 方向看模型的原点。因此我们可以很容易地在 Python 中设置一个循环,将视点移动到圆锥的一个圆上,从而形成模拟结果的 360° 视图。
下面是一个示例脚本,它保存了一系列 n 个展开的安全气囊的米塞斯应力图像,从 360° 的 n 个视点观察。这些图像可用于按照此工作流程生成 360° 视图的 GIF 动画。
from odbAccess import *from abaqusConstants import *odb = openOdb('mybag_3.odb')# 生成360°视角动图n = 20ang = pi/4file = 0: 1'].setValues(displayedObject=odb): 1'].odbDisplay.setPrimaryVariable(variableLabel='S',outputPosition=INTEGRATION_POINT,refinement=(INVARIANT, 'Mises'), ): 1'].odbDisplay.display.setValues(plotState=(CONTOURS_ON_DEF, ))for i in range(n):ang += 2*pi/n: 1'].view.setViewpoint(viewVector=(sqrt(2)*sin(ang), sqrt(2)*cos(ang), .5),cameraUpVector=(0, 0, 1),drawImmediately=True)=OFF)session.printToFile(fileName=str(file),format=PNG,canvasObjects=(session.viewports['Viewport: 1'], ))file += 1
