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

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