paraview的后處理的腳本功能

paraview的后處理的腳本功能


這次我們通過paraview的軌跡跟蹤功能,記錄所操作的步驟,然后再來詳細(xì)的分析記錄下來的腳本的含義。

     本次處理的結(jié)果是paraview中的演示結(jié)果文件disk_out_ref.ex2,處理的操作為打開該文件,對(duì)該模型切塊,再對(duì)該結(jié)果中心處的畫流線,然后對(duì)該流行生成流管,再對(duì)該流管生成矢量曲線。

最終結(jié)果如下圖所示:

d22832b3c90a957b8d7d8c6fd95403fd.jpg


下面是跟蹤獲得的腳本文件:

####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)

獲得視圖renderView1tempLUT的圖例參數(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ì)算



登錄后免費(fèi)查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項(xiàng)目客服
  • 培訓(xùn)客服
  • 平臺(tái)客服

TOP

2
2