29紹介:スプレッドシート
2. ファイルを選択
マクロファイルは
/home/user/.config/ParaView/Macros/
に保存される
Python スクリプトをマクロ登録
34
1. メニューバーから [Edit]-[Reset Session] を選択し ParaView を初期化する
2. 可視化ファイルを開く 3. Apply ボタン(緑)を押す
操作: ParaView を初期化
35
1. [Tools] → [Start Trace]を選択
3. 操作:圧力サーフェスの表示(1)ー(3)
(スライド17-19)を実行
2. Trace Optionsはany *modified* properties
を選択し、他のチェックをONにしてOKをクリック
4. [Tools] → [Stop Trace]を選択しトレース終了
Properties To Trace On Createオプション all properties
• 可能な限りすべての情報を記述する
• 他のユーザー設定があっても一貫した状態を確保できるが、
非常に冗長な出力となり読みにくい
any *modified* properties
• デフォルト設定から変更されていない記述は無視される
• ほとんどの利用で適したオプション
only *user-modified* properties
• ユーザーが変更した設定のみ記述される
• トレースの動作は内部設定に依存する
Color maps, color bar etc. オプション
• チェックするとカラーバー、カラーマップ、注釈(anotation) の情報を記述する
Miscellaneousオプション
• チェックするとトレース記述時Script Editorに書き込まれる
• チェックがない場合、Stop trace時にトレース内容が一括して 書き込まれる
操作:トレースの実行
36
5. Script Editorが表示されるので、[File] - [save as]で保存
ファイル名はp_contour.pyで保存する
6. マクロ登録はメニューバーから[Macros] - [Add new macro]を選択し、p_contour.py を選択することで登録される
操作:スクリプトの保存とマクロ登録
37
1. メニューバーから[Edit]-[Reset Session]を選択しParaViewを初期化する 2. VTKファイルを開く
3. Applyボタン(緑)を押す
4. メニューバーから[Macros]-[p_countour]を選択
操作:マクロ実行
38
2 - 2 圧力サーフェス表示操作のトレース内容を確認する
39
#### import the simple module from the paraview from paraview.simple import *
#### disable automatic camera reset on 'Show' paraview.simple._DisableFirstRenderCameraReset() 1
2 3 4 5
Python コードでは、先頭に import するライブラリを指定する
ParaView の操作に必要なライブラリをインポート
p_contour.py
ParaView ライブラリのインポート
40
p_contour.py
# get active source.
caivtyvtk = GetActiveSource()
# get active view
renderView1 = GetActiveViewOrCreate('RenderView')
# uncomment following to set a specific view size
# renderView1.ViewSize = [1071, 674]
# get display properties
caivtyvtkDisplay = Show(cavityvtk, renderView1) 6
7 8 9 10 11 12 13 14 15
アクティブソース・ビュー・ディスプレイ設定の取得
renderView1 をアクティブなウインドウに指定
renderView1.ViewSizeはコメントされている
サイズの数値はトレース時のウインドウにサイズに依存 GetActiveSource() :アクティブなソースを取得する
caivtyvtkという名前で利用
GetDisplayProperties() :ディスプレイ設定を取得
caivtyvtkDisplayという名前で利用
41
p_contour.py
# trace defaults for the display properties.
cavityvtkDisplay.ColorArrayName = [None, '']
cavityvtkDisplay.GlyphType = 'Arrow'
cavityvtkDisplay.ScalarOpacityUnitDistance = 0.01924175606617764 cavityvtkDisplay.SetScaleArray = ['POINTS', 'p']
cavityvtkDisplay.ScaleTransferFunction = 'PiecewiseFunction' cavityvtkDisplay.OpacityArray = ['POINTS', 'p']
cavityvtkDisplay.OpacityTransferFunction = 'PiecewiseFunction' 16
17 18 19 20 21 22 23
表示する変数の定義
42
p_contour.py
# set scalar coloring
ColorBy(cavityvtkDisplay, ('POINTS', 'p'))
# rescale color and/or opacity maps used to include current data range cavityvtkDisplay.RescaleTransferFunctionToDataRange(True)
28 29 30 31 32
変数 p の設定(1)
POINTS (点データ)、
p( 変数:圧力 ) に対してのカラー表示
データ内での最大・最小値でリスケールを行う
43
p_contour.py
# get color transfer function/color map for 'p'
pLUT = GetColorTransferFunction(‘p’) #pに対するルックアップテーブルを取得 pLUT.RGBPoints = [-4.366660118103027, 0.231373, 0.298039, 0.752941,
0.24093985557556152, 0.865003, 0.865003, 0.865003, 4.84853982925415, 0.705882, 0.0156863, 0.14902]
pLUT.ScalarRangeInitialized = 1.0
# get opacity transfer function/opacity map for 'p' pPWF = GetOpacityTransferFunction('p')
pPWF.Points = [-4.366660118103027, 0.0, 0.5, 0.0, 4.84853982925415, 1.0, 0.5, 0.0]
pPWF.ScalarRangeInitialized = 1 37
38 39
40 41 42 43 44 45
カラーマップの対応 RGBPoints=
[値1, R, G, B, 値2, R, G, B, ・・・・]
ただし現時点のカラーマップはCool to Warm に対応しているので注意
言い換えると、トレース出力は、実際の描画に不要な 記述が含まれている
変数 p の設定(2)
pLUTという名前で利用
44
p_contour.py
# Apply a preset using its name. Note this may not work as expected when presets have duplicate names.
pLUT.ApplyPreset('Blue to Red Rainbow', True)
# show color bar/color legend
aOpenFOAMDisplay.SetScalarBarVisibility(renderView1, True) 47
48 34 35
pLUT.ApplyPreset:プリセットカラーマップの設定 aOpenFOAMDisplay.SetScalarBarVisibility :
カラーバー表示設定 (True/False)
カラーマップ・カラーバーの設定
45
p_contour.py
#### saving camera placements for all active views
# current camera placement for renderView1
renderView1.CameraPosition = [0.05000000074505806, 0.05000000074505806, 0.27888724573938806]
renderView1.CameraFocalPoint = [0.05000000074505806, 0.05000000074505806, 0.004999999888241291]
renderView1.CameraParallelScale = 0.07088723543695315
#### uncomment the following to render all views
# RenderAllViews()
# alternatively, if you want to write images, you can use SaveScreenshot(...).
50 51 52 53 54 55 56 57 58 59
以下の記述は Stop trace 実行時に記述される
Adjust Camera内のCamera Positionsの内容が記述されている