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

31 篇文章 93 订阅

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

在这种情况下,我们自然而然的会想到使用脚本来自动化这个过程。下面就以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个时间步的场景文件,如下。

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_黄岛主_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值