分享一段在ParaView中循环输出文件的代码

有时会有这样一种需求:就是将视窗中的场景(非保存图片,场景信息是可编辑的矢量形式)保存导出,然后作为其它软件的资源文件。但是在用paraview输出场景时,每次只能输出当前时刻的场景,如果模拟的是瞬态问题,有时会有几十个时间文件,如果对每一时刻都手动导出会特别的繁琐。

分享一段在ParaView中循环输出文件的代码_第1张图片

在这种情况下,我们自然而然的会想到使用脚本来自动化这个过程。下面就以cavity算例进行演示,cavity算例官方结果一共有5个时间步,所以输出场景的代码可以这样写:

# trace generated using paraview version 5.6.0-RC2
#
# To ensure correct image size when batch processing, please search 
# for and uncomment the line `# renderView*.ViewSize = [*,*]`

#### import the simple module from the paraview
from paraview.simple import *
#### disable automatic camera reset on 'Show'
paraview.simple._DisableFirstRenderCameraReset()

Start = 0
End = 4
savedir = 'E:\\test\\paraview\\paraview-x3d-exporter\\'

# get active view
animationScene1 = GetAnimationScene()
renderView1 = GetActiveViewOrCreate('RenderView')
animationScene1.PlayMode = 'Snap To TimeSteps'
animationScene1.AnimationTime=Start

# export view
for time in range(Start, End+1):
    timeStr = '%04d' % time 
    ExportView(savedir+timeStr+'.x3d', view=renderView1)
    animationScene1.GoToNext()

不清楚的函数可以通过paraview中的Start Trace功能查看。 将上面的代码保存在文件中,然后起个名字,比如paraview-x3d-exporter.py。然后在paraview中打开Python Shell,点击Run Script选择paraview-x3d-exporter.py打开运行即可。最后生成了5个时间步的场景文件,如下。

分享一段在ParaView中循环输出文件的代码_第2张图片

上面的代码可以修改一下,改成可以循环保存其它内容,比如图片、数据等(也可以通过保存动画功能保存出所有时刻的图片),大家可以自行修改。同样,不清楚的函数可通过Start Trace功能查看。

你可能感兴趣的:(ParaView,OpenFOAM)