1
0

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 1 year has passed since last update.

OpenFOAMの結果をblenderで可視化してみる#04 ParaviewからBlender用のファイルの書き出し

Posted at

はじめに

前回からの続き。
今回は,openFOAMの結果をBlenderで読み込める形式に出力して,可視化するまでを行う。

Blenderで読み込み可能なファイル形式

Blenderでは,下記で標準で読み込み可能なファイル形式は下記のとおりで,このうち,plyx3dはParaviewで出力できるようになっている。

  • .dae
  • .abc
  • .bvh
  • .svg
  • .ply
  • .stl
  • .fbx
  • .glb/.gltf
  • .obj
  • .x3d/wrl
    image.png

Paraviewでデータを出力する

x3d形式の場合

File-> Export Sceneから行う。

ただし,Export Sceneは表示されている状態のデータを出力するだけ。時刻ごとに出力することはできない。

pythonによる連続出力

pythonを使うと,連続出力行うことができる。
サンプルは下記のとおり。
下記では,C:\GithubData\OpenFOAM_Vis_Blender\cal_data\iobasin\PV_x3dに,
ファイル名{time_step}_time={time_value}.{ext}で出力するようになっている.

from pathlib import Path
import numpy as np

ext = ".x3d"
save_directory_path = r'C:\GithubData\OpenFOAM_Vis_Blender\cal_data\dambreak\PV_x3d'
savedir = Path(save_directory_path)
savedir.mkdir(exist_ok=True)

# time steps
tk = GetTimeKeeper()
timesteps = tk.TimestepValues
numTimesteps = len(timesteps)

animationScene1 = GetAnimationScene()
renderView1 = GetActiveViewOrCreate('RenderView')
animationScene1.PlayMode = 'Snap To TimeSteps'
animationScene1.GoToFirst()
for i, time in enumerate(timesteps):
    animationScene1.AnimationTime=time
    timeStr = f'{i:04d}_time={time:04.2f}'
    ofn = savedir/ (timeStr + ext)
    print(ofn)
    ExportView(str(ofn), view=renderView1)

実行すると,PythonShellにログとして出力ファイル名が出力されていく。
image.png

blender で読み込んでみる。

とりあえず読み込むことができたが,クリップした後の形状データ以外のものもデータに含まれている・・・このあたりの処理は次回に回す。
image.png

以上。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?