2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PyQt5とvtkを使ってOpenFOAMの結果を可視化してみた その3(「座標軸」の実装編)

2
Posted at

はじめに

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

完成イメージは下図になります.
プレゼンテーション1.png

環境

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

ファイル構成

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

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

vtkAxesActor
vtkOrientationMarkerWidget

vtkAxesActorは,単純に座標軸に関するactorであり,
vtkOrientationMarkerWidgetを介してQVTKRenderWindowInteractor
に配置するようです.
おそらく,AxesActorから直接vtkRendererに配置することも可能だと
思われます.

座標軸の実装

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

ViewAxis.py
	def setupAxes(self):

		axesActor = vtk.vtkAxesActor()	#軸用のactorを用意

		self.axesWidget = vtk.vtkOrientationMarkerWidget()
		self.axesWidget.SetOrientationMarker(axesActor)
		self.axesWidget.SetInteractor(self.widget)

		self.axesWidget.EnabledOn() 	#有効化
		self.axesWidget.InteractiveOn() #接続開始
		self.widget.Render()	
	

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

ViewAxis.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.setupAxes() #<--------これ!

使い方

座標軸周りをドラッグすることで,移動も可能です.
プレゼンテーション2.png

まとめ

view画面に座標軸を追加しました.
次回こそ,メッシュ表示切替やview方向の切り替えあたりをまとめようと思います

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?