paraview的后處理的腳本功能
paraview的后處理的腳本功能
這次我們通過paraview的軌跡跟蹤功能,記錄所操作的步驟,然后再來詳細(xì)的分析記錄下來的腳本的含義。
本次處理的結(jié)果是paraview中的演示結(jié)果文件disk_out_ref.ex2,處理的操作為打開該文件,對(duì)該模型切塊,再對(duì)該結(jié)果中心處的畫流線,然后對(duì)該流行生成流管,再對(duì)該流管生成矢量曲線。
最終結(jié)果如下圖所示:

下面是跟蹤獲得的腳本文件:
####從paraview模塊中導(dǎo)入simple模塊
from paraview.simple import *
####使在使用Show函數(shù)時(shí)自動(dòng)設(shè)置視角功能失效
paraview.simple._DisableFirstRenderCameraReset()
#生成一個(gè)新的'ExodusIIReader'對(duì)象
disk_out_refex2=ExodusIIReader(FileName=['D:\\Program Files\\ParaView5.1.0\\data\\disk_out_ref.ex2'])
# 修改disk_out_refex2對(duì)象的屬性,激活對(duì)象網(wǎng)格中心點(diǎn)參數(shù)和網(wǎng)格塊顯示
disk_out_refex2.PointVariables = ['Temp','V', 'Pres', 'AsH3', 'GaMe3', 'CH4', 'H2']
disk_out_refex2.ElementBlocks = ['Unnamedblock ID: 1 Type: HEX8']
#激活或新建一個(gè)窗口
renderView1 = GetActiveViewOrCreate('RenderView')
# 在renderView1窗口中顯示disk_out_refex2對(duì)象
disk_out_refex2Display = Show(disk_out_refex2,renderView1)
#刷新視圖適應(yīng)數(shù)據(jù)
renderView1.ResetCamera()
#生成一個(gè)切塊
clip1 = Clip(Input=disk_out_refex2)
#修改切塊clip1的屬性,切片的點(diǎn)和法向?qū)傩?/span>
clip1.ClipType.Origin = [0.0, 0.0,0.0799999237060547]
clip1.ClipType.Normal = [0.0, 1.0, 0.0]
#刷新視圖
clip1Display = Show(clip1, renderView1)
# 將disk_out_refex2視圖隱藏
Hide(disk_out_refex2, renderView1)
#設(shè)置切塊渲染所用的參數(shù)
ColorBy(clip1Display, ('POINTS', 'Temp'))
#顯示顏色圖例
clip1Display.SetScalarBarVisibility(renderView1,True)
#激活disk_out_refex2
SetActiveSource(disk_out_refex2)
#生成新流線
streamTracer1 = StreamTracer(Input=disk_out_refex2,SeedType='PointSource')
#調(diào)整流線源頭的屬性,源頭的中心和半徑
streamTracer1.SeedType.Center = [0.0, 0.0,0.0799999237060547]
streamTracer1.SeedType.Radius =2.01599998474121
#刷新視圖
streamTracer1Display = Show(streamTracer1,renderView1)
# 生成流管
tube1 = Tube(Input=streamTracer1)
# 修改流管屬性,流管半徑
tube1.Radius = 0.040636396152782264
#刷新視圖
tube1Display = Show(tube1, renderView1)
# 隱藏流線
Hide(streamTracer1, renderView1)
#生成矢量
glyph1 =Glyph(Input=tube1,GlyphType='Arrow')
# 修改矢量箭頭形式為錐形(Cone)
glyph1.GlyphType = 'Cone'
#修改錐形底面的精度和半徑
glyph1.GlyphType.Resolution = 109
glyph1.GlyphType.Radius = 0.4
#刷新視圖
glyph1Display = Show(glyph1, renderView1)
#修改矢量glyph1的矢量表示參數(shù)為單元中心速度值
glyph1.Vectors = ['POINTS', 'V']
#關(guān)閉矢量顏色表示
ColorBy(glyph1Display, None)
#修改矢量錐形的大小模式為'vector'
glyph1.ScaleMode = 'vector'
#修改圓錐的尺度因子
glyph1.ScaleFactor = 0.03039498096704483
#激活切塊
SetActiveSource(clip1)
#用網(wǎng)格中心的'Temp'進(jìn)行渲染
ColorBy(clip1Display, ('POINTS', 'Temp'))
#使用參數(shù)值范圍進(jìn)行渲染
clip1Display.RescaleTransferFunctionToDataRange(True)
#顯示圖例
clip1Display.SetScalarBarVisibility(renderView1,True)
#獲得'Temp'參數(shù)的顏色轉(zhuǎn)換函數(shù)/顏色字典
tempLUT = GetColorTransferFunction('Temp')
#獲得'Temp'參數(shù)的不透明度轉(zhuǎn)換函數(shù)/不透明度字典
tempPWF = GetOpacityTransferFunction('Temp')
#選擇流管
SetActiveSource(tube1)
#設(shè)置流管采用網(wǎng)格中心壓力渲染
ColorBy(tube1Display, ('POINTS', 'Pres'))
#使用參數(shù)值范圍進(jìn)行渲染
tube1Display.RescaleTransferFunctionToDataRange(True)
#顯示圖例
tube1Display.SetScalarBarVisibility(renderView1,True)
# 獲得'Pres'參數(shù)的顏色轉(zhuǎn)換函數(shù)/顏色字典
presLUT = GetColorTransferFunction('Pres')
#獲得'Pres'參數(shù)的不透明度轉(zhuǎn)換函數(shù)/不透明度字典
presPWF = GetOpacityTransferFunction('Pres')
#在窗口renderView1中獲得presLUT的圖例/條
presLUTColorBar = GetScalarBar(presLUT,renderView1)
#設(shè)置圖例的標(biāo)題和標(biāo)簽的字體和字體加粗
presLUTColorBar.TitleFontFamily = 'Times'
presLUTColorBar.TitleBold = 1
presLUTColorBar.LabelFontFamily = 'Times'
presLUTColorBar.LabelBold = 1
#激活切塊clip1
SetActiveSource(clip1)
# 獲得視圖renderView1中tempLUT的圖例參數(shù)
tempLUTColorBar = GetScalarBar(tempLUT,renderView1)
# 設(shè)置圖例的標(biāo)題和標(biāo)簽的字體和字體加粗
tempLUTColorBar.TitleFontFamily = 'Times'
tempLUTColorBar.TitleBold = 1
tempLUTColorBar.LabelFontFamily = 'Times'
tempLUTColorBar.LabelBold = 1
#設(shè)置tempLUT的渲染顏色,所選顏色不應(yīng)該有重名
tempLUT.ApplyPreset('jet', True)
#激活流管tube1
SetActiveSource(tube1)
#設(shè)置presLUT的渲染顏色
presLUT.ApplyPreset('Linear YGB 1211g', True)
# renderView1的視圖方向
renderView1.CameraPosition =[1.4003821042626847, -41.10949671919559, -4.370066891848049]
renderView1.CameraFocalPoint =[-1.2359672844496943, -0.08559493933411534, 0.13614394326601165]
renderView1.CameraViewUp =[0.003801055222480125, 0.10942738426338536, -0.9939875248475049]
renderView1.CameraParallelScale =12.951115722667065
本次腳本的說明就到這邊,此外,對(duì)于比較經(jīng)常用到的操作,可以寫成腳本后導(dǎo)到paraview中弄成宏,這樣的話需要用到該功能時(shí),直接點(diǎn)擊界面上的腳本即可直接執(zhí)行生成所需要的效果。
歡迎關(guān)注微信公眾號(hào):EASY云計(jì)算
工程師必備
- 項(xiàng)目客服
- 培訓(xùn)客服
- 平臺(tái)客服
TOP




















