LoginSignup
0
0

More than 5 years have passed since last update.

汎用流体解析ソフト「F〇uent」ライクなスケールバーをvtkに表示してみた

Last updated at Posted at 2019-01-26

はじめに

汎用流体解析ソフト「F〇uent」には画面の中央下辺りにスケールバーがあり,メッシュやジオメトリの大まかなサイズを計測することができます.
今回は,vtk上でこのスケールバーを再現したいと思います.

完成イメージは下図になります.
図1.jpg

以前に投稿した内容 ↓ をさらに拡張していきます.
PyQt5とvtkを使ってOpenFOAMの結果を可視化してみた その2(「ファイルを開く」の実装編)

環境

OS: windows10
OpenFOAM v4.0
python 3.6.4
pyqt5-5.9.2
vtk-8.0.0
numpy

ファイル構成

case/
 ├ ScaleBar.py (本プログラム)
 ├ open_file.png
 ├ quit.png

スケールバーを作成するときは,vtkライブラリの次のクラスについて勉強する必要があります.

vtkLegendScaleActor

詳しくは,リファレンスを参考にしてください.

スケールバーの実装

それでは,スケールバーを設定していきます.
前回のクラス「MyForm」に以下の関数を追加していきます.

ScaleBar.py

    def setupScale(self):
        legendScaleActor = vtk.vtkLegendScaleActor()
        legendScaleActor.AllAxesOff()
        self.ren.AddActor(legendScaleActor) #レンダーにアクターを配置

そして最後に,初期化時にこの関数を追加して終了です.

ScaleBar.py

    def __init__(self, parent=None):
        QWidget.__init__(self, parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        self.reader = vtk.vtkOpenFOAMReader()
        self.filter2 = vtk.vtkGeometryFilter()
        self.mapper = vtk.vtkCompositePolyDataMapper2()
        self.actor = vtk.vtkActor()

        self.widget = QVTKRenderWindowInteractor(self)
        self.widget.Initialize()
        ##背景色の設定
        self.ren = vtk.vtkRenderer()
        self.widget.GetRenderWindow().AddRenderer(self.ren)
        self.widget.Start()
        self.widget.show()

        self.setCentralWidget(self.widget)
        #UIのインスタンスを介してアイコンと実体(関数)をつなげる
        self.ui.actionOpenFile.triggered.connect(self.openFile)
        self.ui.actionResetFile.triggered.connect(self.resetFile)
        self.setupInitView()
        self.setupScale() #<--------これ!

使い方

モデルを回転・拡大することで,サイズを測ることができます.
今回の例には.OpenFOAMのチュートリアルにある,pitzDailyを用いています.
https://github.com/OpenFOAM/OpenFOAM-6/tree/master/tutorials/incompressible/simpleFoam/pitzDaily


image.png

実際のサイズを確認してみましょう.
pitzDaily/system/blockMeshDictを確認すると..
image.png

まあ,だいぶズレてますね( ´∀` )
おおよその確認なので,過度な期待は禁物です.

まとめ

view画面にスケールバーを追加しました.
最近vtkに関する記事が増えてて嬉しいです.
もっと盛り上げていきたいですね.

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0