ParaView 的 Python Shell 是内置的一个强大交互式 Python 环境,让你能实时用代码控制软件的几乎所有功能(创建数据、调整滤波器、修改显示、控制相机、截图、动画等)。它特别适合快速测试想法、调试脚本、自动化重复操作,或者记录精确视图参数。
ParaView Python Shell 基础用法总结(以相机控制为例)
1. 怎么打开 Python Shell? 在 ParaView 菜单栏点击:View → Python Shell(或 Tools → Python Shell,视版本略有差异)
打开后是一个小窗口:
- 上半部分:输出区(显示 print 结果、错误信息)
- 下半部分:输入区(>>> 提示符,可以直接敲代码)
- 底部按钮:Run Script(运行 .py 文件)、Clear(清屏)等
💡:支持粘贴多行代码、Tab 补全(部分版本支持),出错时会显示完整 traceback,便于调试。
2. 导入常用模块(几乎每次都要先跑这一句) 在 >>> 提示符下输入并回车:
from paraview.simple import *
这一行导入了 ParaView 的API,让你能轻松用 GetActiveView()、Show()、Render() 等函数。
3. 核心用法演示:用 Python 获取 & 固定相机视图 很多时候我们调好一个完美视角(角度、距离、焦点),却怕下次打不开又要重调。这时 Python Shell 就能帮你“记住”精确参数。
步骤 A:获取当前相机所有关键信息 先把视图调到你最满意的状态,然后在 Python Shell 里运行:
view = GetActiveView() # 获取当前活跃视图camera = view.GetActiveCamera() # 获取相机对象print("=== 当前相机视图参数(复制保存,下次直接用) ===")print("CameraPosition =", view.CameraPosition) # 相机位置 [x, y, z]print("CameraFocalPoint =", view.CameraFocalPoint) # 注视点/中心 [x, y, z]print("CameraViewUp =", view.CameraViewUp) # 上方向(通常 [0,1,0])print("CameraViewAngle =", view.CameraViewAngle) # 透视角度(度)print("CameraParallelScale=", view.CameraParallelScale) # 平行投影缩放print("CameraParallelProjection =", view.CameraParallelProjection) # 0=透视,1=平行
输出示例(你的数字会不同):
=== 当前相机视图参数(复制保存,下次直接用) ===CameraPosition = [12.345, -67.89, 45.678]CameraFocalPoint = [0.0, 0.0, 0.0]CameraViewUp = [0.0, 1.0, 0.0]CameraViewAngle = 30.0CameraParallelScale= 5.4321CameraParallelProjection = 0
把这些数字复制到记事本或微信草稿里!
步骤 B:下次一键恢复这个视图 重新打开 ParaView,加载相同数据后,在 Python Shell 运行恢复代码(替换成你复制的数字):
view = GetActiveView()# 直接设置参数view.CameraPosition = [12.345, -67.89, 45.678]view.CameraFocalPoint = [0.0, 0.0, 0.0]view.CameraViewUp = [0.0, 1.0, 0.0]view.CameraViewAngle = 30.0view.CameraParallelScale= 5.4321view.CameraParallelProjection = 0Render() # 必须加这句,画面才会立即更新!print("已恢复自定义视角~")
瞬间回到之前的样子!这比手动拖鼠标准多了。
进阶小技巧:做成一键脚本
- 在 Python Shell 底部点 Run Script → 选这个文件 → 执行。 以后每次想用,直接点按钮选文件,一键直达!
4. 其他常用小命令
- 旋转视图:
GetActiveCamera().Azimuth(30); Render() # 水平转 30° - 放大/缩小:
GetActiveCamera().Dolly(1.5); Render() # 1.5 倍放大 - 重置充满:
view.ResetCamera(); Render()
小结
ParaView 的 Python Shell 就像给软件加了个“遥控器”:想做什么就写什么代码,实时看到效果。特别适合科研绘图、批量处理、保存精确视角。学会用它,你就从“手动党”升级到“自动化大佬”了!