• 検索結果がありません。

ファイルを選択

ドキュメント内 ParaView講習_オープンCAE講習会@秋田 (ページ 33-46)

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の内容が記述されている

カメラ位置の設定・その他

46

ドキュメント内 ParaView講習_オープンCAE講習会@秋田 (ページ 33-46)

関連したドキュメント