OpenFOAM のための Blender 入門

2010年3月13日
春日 悠

はじめに

3D CG モデラー Blender で OpenFOAM メッシュ用 STL ファイルを作成します。Blender のバージョンは 2.49b を想定します。

STL ファイル書き出しのための準備

OpenFOAM で使うための STL ファイルを書き出すために、ここ に投稿されている Python スクリプト stlasciiexport.py (ZIP 圧縮しているので展開してください) を使います。これを、Windows なら "C:\Documents and Settings" 内のユーザーフォルダの下の "Application Data\Blender Foundation\Blender\.blender\scripts" に入れておきます。

基本操作

Blender を起動すると、オブジェクトとして Cube が用意された状態ではじまります。ここで基本操作を確認しましょう。

中央ボタンドラッグ視点の回転
Shift + 中央ボタンドラッグ視点の平行移動
Ctrl + ホイール回転視点の水平移動
Shift + ホイール回転視点の垂直移動
Ctrl + 中央ボタンドラッグ/ホイール回転視点の拡大・縮小
Homeすべてを表示
NumPad の 1前から視点
NumPad の 3側面から視点
NumPad の 7上から視点
NumPad の 5正射影/透視射影の切り替え
Zソリッド/ワイヤーフレームの切り替え
左クリック3D カーソルの移動
Shift + C3D カーソルを原点に移動
C3D カーソルを中心に表示
右クリック選択
Shift + 右クリック複数選択
B を押した後、左ドラッグ囲み選択
A全選択/非選択の切り替え
Tabオブジェクトモード/エディットモードの切り替え
Spaceポップアップメニューの表示
G移動
R回転
S拡大・縮小
Shift + Dコピー
X削除
Ctrl + Zアンドゥ

3D カーソルとは、赤白の丸いやつです。

これは様々な操作の基準になります。これの位置を細かく調整するには、3D View メニューの View から "View Properties..." を選び、"3D Cursor:" に座標を設定します。

3D View メニュー

View Properties

オブジェクトは点、辺、面などのメッシュから構成されています。オブジェクトモードは、メッシュのまとまりとしてのオブジェクトを編集するモードで、エディットモードはオブジェクトを構成するメッシュを編集するモードです。今どちらのモードになっているのかは、3D View メニューのモード選択ボックスを見ればわかります。

モード選択ボックス

エディットモードでの選択の場合、点、辺、面のどれを選択するかを 3D View メニューのボタンで切り替えます。

メッシュ選択切り替えボタン

一番右のボタンは、画面から見て裏側のものも選択できるようにするかどうかを切り替えるスイッチです。

ものの移動、回転、拡大・縮小のとき、X, Y, Z キーで操作の方向を X, Y, Z 軸方向に制限することができます (制限を解除するには中央ボタンクリック)。また、数字を打ち込んで操作量を指定することができます。

また、上述の方法以外にも移動、回転、拡大・縮小を行う方法があります。はじめの状態では赤・緑・青の矢印が表示されていますが、これはものを平行移動するためのものです。白い丸を左ドラッグすると、ものが移動します。赤・緑・青の矢印をクリックすると、その方向に移動させることができます。

平行移動

平行移動だけでなく、回転、拡大・縮小版もあります。

回転

拡大・縮小

これらを切り替えるには、3D View メニューの切り替えボタンを使います。

移動、回転、拡大・縮小の切り替えボタン

一番左の手のマークは、これらの表示/非表示の切り替えスイッチです。その右の 3 つはそれぞれ移動、回転、拡大・縮小ボタンです。

3D カーソルの位置を回転、拡大・縮小の中心にすることができます。3D View メニューの回転、拡大・縮小の中心切り替えボタンで "3D Cursor" を選べば、3D カーソルの位置を中心に回転、拡大・縮小が行われるようになります。

回転、拡大・縮小の中心切り替えボタン

作成するモデル

では、以下のモデルを作成してみましょう。

ミキシングエルボー

形状の作成

Blender を起動したところから始めます。すでに起動している場合は、Ctrl + X で初期化しましょう。

まず、はじめにできる Cube を X キーで削除します。

大きな管のもとになる円を描きます。Space キーを押し、ポップアップメニューから Add - Mesh - Circle を選びます。Radius をクリックして 5 を入力し、OK ボタンを押します。Tab を押してエディットモードに切り替え、Shift + F で面を作ります。

Tab でオブジェクトモードに戻ります。3D View メニューの移動、回転、拡大・縮小の切り替えボタンで回転用の表示に切り替えます。

緑の線を左クリックし、90 と打ち込むと、面が 90°回転します。

Tab でエディットモードに切り替えます。E を押すと面の押し出しができます。メニューが出るので "Region" を選択し、30 と入力します。

NumPad の 1 を押して、前面からの視点に切り替えます。これは、つぎの面のスピンのための準備です。スピンは見ている面の上で行われます。スピンの回転中心を指定するために、3D カーソルを移動します。3D View メニューの View - View Properties で 3D カーソルを (30, 0, 15) に移動させます。

画面の下の "Mesh Tools" にスピン用のボタンがあるので、そこに注目します。これはエディットモードで Editing パネルを選択しているときに表示されます。

Mesh Tools

パネルというのは、下の図で選択するものです。

Panels

上の図では "Editing" が選択されています。

さて、Mesh Tools の "Spin" ボタンの下の "Degr" をクリックして -90 を入力して、Spin ボタンを押します。面がカーソルを中心に回転し、管の曲がりの部分ができます。

E を押して Region を選び、-30 と入力して面を上に伸ばします。これで大きな管ができました。

3D View メニューのメッシュ選択切り替えボタンで面選択に切り替えます。A を 2 回押して全選択し、Ctrl + N を押します。ダイアログが出るので、クリックします。何をしたのかというと、後でオブジェクトどうしのブーリアン演算を行うのですが、そのためにはオブジェクトの面が閉じていて、面の表裏がきちんとしている必要があります。Ctrl + N は面の外側の法線ベクトルを再計算する操作です。

小さな管の位置を決めるために、小さな球を作成します。戦略はこうです。3D カーソルの位置をオブジェクト位置に設定する機能があるので、まず球を移動、回転させた後、そこに 3D カーソルを移動させ、小さな管の基準点とします。

Tab を押してオブジェクトモードに切り替えます。Space を押し、Add - Mesh - Isosphere で Radius を 1 として球を作ります。

ちなみに、ここでオブジェクトモードに戻さずにメッシュを追加することも可能だったのですが、その場合は大きな管のオブジェクトの一部として追加されます。ここでは独立したオブジェクトとするために、オブジェクトモードに切り替えてからメッシュを追加しました。

3D View メニューの移動、回転、拡大・縮小の切り替えボタンで移動用の表示に切り替え、赤い矢印をクリックし、20 と入力します (G を押して 20 でもよい)。

3D View メニューの回転、拡大・縮小の中心切り替えボタンで "3D Cursor" を選び、3D カーソルの位置を回転中心に設定します。

3D View メニューの移動、回転、拡大・縮小の切り替えボタンで回転用の表示に切り替え、緑の矢印をクリックし、45 と入力します (表示が前面からの視点になっているなら、R を押して 45 でもよい)。

3D View メニューの移動、回転、拡大・縮小の切り替えボタンで移動用の表示に切り替え、青い矢印をクリックし、-10 と入力します (G を押して Z を押し、-10 でもよい)。

Shift + S を押すと Snap のポップアップメニューが出てくるので、"Cursor -> Selection" を選びます。3D カーソルが球の位置に移動します。

小さな管を作ります。NumPad 7 で上からの視点に切り替え、Space - Add - Mesh - Circle で Radius 2.5 の円を作ります。Tab でエディットモードに切り替え、辺を選択し、Shift + F で面を作ります。NumPad 1 で前からの視点に切り替え、E で面を上に 15 (大きい管と交わるように長めに) 押し出します。3D View メニューのメッシュ選択切り替えボタンで面選択に切り替え、A を 2 回押して全選択し、Ctrl + N を押します。

オブジェクトモードに戻り、大きな管、小さな管を選択します (Shift を押しながら 2 つを右クリックします)。Z を押してワイヤーフレーム表示にしておきましょう。W を押すとブーリアン演算のポップアップメニューが出るので、Union を選びます。2 つのオブジェクトの合成が作成されますが、もとのオブジェクトは消えません。X を押して削除します。できたものをチェックします。ちゃんときれいにくっついていますか? エディットモードで Ctrl + N を押して実行した面の外側法線方向の再計算をちゃんとやらないと、ここで変な結果になります。

境界の設定

OpenFOAM での境界条件設定用に、境界の名前付けを行います。

オブジェクトを選択し、エディットモードに移ります。B を押して左ドラッグによる囲み選択で、大きい管の左側面 (ここを 1 つ目の入り口としましょう) を選びます。P を押すと Separate メニューが出るので、Selected を選びます。これで選択した面が別のオブジェクトになります。オブジェクトごとに 1 つの名前をつけられるので、こうして分離することで、面に境界の名前をつけられるようになります。

同様に小さい管の下側面 (ここを 2 つ目の入り口としましょう) を分離します。

同様に大きい管の上側面 (ここを出口としましょう) を分離します。

名前を付けましょう。1 つ目の入り口の面を選択し、画面左下に注目します。"Link and Materials" というのがあるので、ここの "OB: ..." のところに名前を設定します。1 つ目の入り口には "in1" という名前を付けましょう。

Link and Materials

同様に、2 つ目の入り口に "in2"、出口に "out"、側面に "side" という名前を付けましょう。

STL ファイルの出力

STL ファイルを出力しましょう。まず、3D カーソル設定用に作った球は必要ないので X で削除しましょう。

ミリ系でモデルを作ったので、メートル系に変換します。S を押して 0.001 を入力します。モデルが小さくなって見えなくなるので、Home キーを押しましょう。

A でオブジェクトを全選択します。メニューの [File] - [Export] から "Named ascii STL file (.stl)..." を選び、ファイルを保存しましょう。

以上で作業は終了です。