在千辛万苦获得模拟结果后,如何展示能让大家更好的全面观察到仿真结果呢?其实借助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 = 20
ang = pi/4
file = 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