Customized FreeCAD for DEXCS

オープンCAEの世界では3D-CADとして定番のFreeCAD。この日本語解説本が出たので早速購入。
拙作DEXCS for OpenFOAM(R)の中でもFreeCADを使わせてもらっていますが、これまでは行きあたりばったりのカスタマイズ。本書を読んでカスタマイズの全般的な仕組みが判ってきたので、次期DEXCS2016では、もうちょっとスマートなカスタマイズ構想が芽生えてきました。

FreeCAD起動画面

範囲を選択_002

上図、右上赤枠部分がDEXCS用にカスタマイズしたメニューボタンです。

DEXCSで想定している解析シーンでは、3次元の形状モデル(3D-CADモデル)は、

  • 簡単なモデル(上図の2つの直方体ブロックなど)はFreeCAD上で作成
  • 上図のDexcsフォントモデルのような複雑なモデルは、ユーザーが使い慣れた3D-CADツールで作成し、STLまたはstep形式でエクスポートしたファイルをFreeCADにインポートする(step形式がベター)

としています。つまり、上図が典型的な形状モデルということになります。

DEXCS上でカスタマイズされたFreeCADでは、こうして作成された形状データに対して、下記の作業を支援出来るようにしています。

  • 解析用に面の区分け、名前付け(変更)を実施
  • メッシュ(cfMesh)作成用の設定ファイル(*.fms, meshDict)を自動作成

つまり、上図赤枠部のメニューボタンを使って、上記の作業が、以下のように簡単に出来てしまうということです。

 



 

面の分割

分割したいパーツ(windTunnel)を選択して、赤枠部の「ダウングレード」ボタンを押す。

範囲を選択_005

下図のように、6つのFaceに分割される。

範囲を選択_006

 

境界面の再構築

inlet, outlet は個別に名前変更。

範囲を選択_003

残りの4面をまとめて選択して、赤枠部「和集合作成」ボタンを押す。

範囲を選択_007

4つの面が一つのパーツ(fusion)になったので、この名前を変更し、見易くすべく色合いや透明度を変更して、下図のように解析モデルの完成です。

解析モデルの完成

範囲を選択_010

cfMesh用パラメタファイルの作成

赤枠部のボタンを押せば、一発で拙作のマクロが起動します(マクロの使い方はこちらを参照下さい)。

範囲を選択_011

ちなみにこれまでは、下図に示すように3アクション必要でした。

範囲を選択_012

マクロの名前なんて、、、説明するのも面倒でしたね^^;

 

また、面の区分けに使う「ダウングレード」や、再構築における「和集合作成」は、FreeCAD本来の機能で、これらを使うのにワークベンチを切り替えたりする必要があったのを1箇所のツールバーにまとめたというに過ぎません。それでもこうやって使えるようになってみると存外に便利なので・・・乞うご期待です。

 

ただ、やっぱりFreeCADはまだまだ開発途上のツールなんだな・・・と思わざる得ない面も多々ありますけどね。たとえば、、、

スタートアップ画面の問題

FreeCADには様々なワークベンチがあって、その機能をほとんど使えるのがCompleteワークベンチなのですが、正直ボタンがいっぱい有り過ぎてウザイ。またレイアウトが美しくない。

DEXCS用のカスタマイズでは、これまで下図のようなStartワークベンチにしていましたが、これにすると、、、

範囲を選択_013

右上赤枠部のツールボタンの中で、「ダウングレード」ボタンが表示されなくなってしまいます。

実は、この後で、Completeなり、Draftワークベンチに切り替えて、再度Startワークベンチに切り替えると、、、

範囲を選択_015

となるんですが、これじゃあねぇ・・・

FEMワークベンチ(応力解析機能)

これはFreeCADの日本語解説本を読んで初めて知ったんですが、Calculixという「FEMソルバー」が搭載されているとか。

この検証もやってみましたが、何かと挙動がおかしかったですねぇ。これに関してはまた別レポートします。

 



mixerVessel by cfMesh

遅ればせながら、この夏に第42回オープンCAE勉強会@岐阜、夏合宿にて使用した表題講習会の資料とケースファイルを公開します。



資料はこちら

ケースファイルはこちら

動作環境として、講習会ではDEXCS2015 for OpenFOAM(R) のプロトタイプ版で実施しましたが、もちろん最新の公開版でも出来ます。

資料の33頁以降に、OpenFOAMの標準チュートリアルとして同梱されているSTLファイルをベースに、これらをFreeCADにインポートして、解析モデルの作成法ついて説明してありますが、はっきりと言って、面倒臭い。

そこで、講習会では、これが完成したという前提で、これらを使って、DEXCSに搭載のFreeCADマクロやTreeFoamをどうやって使うか?という話の流れになっています。

講習会では、メッシュを作成するデモしか行えませんでしたが、上述のようにFreeCADによるモデル作成も出来るようになっているので、FreeCADの練習がてらお試しあれ。

 

また、ここでは計算結果についても掲載しておきます。

範囲を選択_999(180)

 

 

お役に立つと思ったら、下の広告をクリックしてやって下さい。



DEXCS2015 for OpenFOAM(R) リリースノート

ダウンロードはこちら

(2015/9/26公開)

DEXCS for OpenFOAM(R) は、OpenFOAMと、これをより簡単・高度に活用できるようにする為の様々なツールをすべてインストール済のオール・イン・ワンパッケージで、誰でも簡単・即使えるようにしたマシンイメージ(isoファイル)です。

範囲を選択_999(005)

詳しくはこちら

DEXCSランチャーのヘルプメニューからも参照できます

DEXCS2015では、

  • ベースOSはLinux Mint 17.1 Cinnamon No Codecs(LTS)
    • DEXCS2014ではやむ無くubuntu でしたが、Linux Mint に戻しました
    • 国際化にも対応しました。但し、ヘルプファイルは日本語のみ。
    • 2015/9/23 システムアップデート
  • OpenFOAMやその他の組み込みツールのヴァージョンアップに対応
  • DEXCS2011から搭載するようになった中級者向けツール(TreeFoam)の機能強化を図りました。
  • FreeCADマクロ(cfMesh用簡単設定ツール)を、より使い易くしました。

なお、DEXCS2012までは、32/64bit版がありましたが、DEXCS2013からは、64bit版のみです。

また、製作可能なisoイメージの最大容量の制限の関係上、今回はHelyx-OS と、OpenMDAOの搭載は見送る事としました。

 

インストールと利用法

範囲を選択_999(006)

詳しくはこちら


マシンイメージなので、DVDにイメージ書き込みすれば、DVDから起動してそのまま利用することができます。 (DEXCS初体験の人はこのライブDVDとして「まずは使ってみる」方法をお薦めします。)

  • 起動後にインストール機能により、HDD等に直接インストールできる上、使用するユーザー名等を選択することができます。
  • VMWare Playerや、VirtualBox等の仮想環境で起動して、仮想環境を作成することも簡単です。
  • 基本的に、DEXCS2011でやった方法と同じです.DEXCS2012,2013では、同じやり方が通用しない部分が一部ありましたが、それらの不具合はなくなりました。
  • VirtualBoxにインストールする方法は、こちらにDEXCS2013について詳しく記されていますが、基本は同じです。また、DEXCS2011までは、”Guest Additions”が入っておりませんでしたが、DEXCS2014では導入済みなので、共有ファイルの設定なども同様に実施可能です。

同梱プログラム

範囲を選択_999(007)

その他のドキュメントについて

    • DEXCSランチャーのヘルプメニューを参照下さい。
      • 本当に初めて使う人は、「ランチャーの使い方」-「まずは使ってみる」をご覧下さい。
      • 「ランチャーの使い方」-「形状作成」にて、FreeCADの使い方を概略説明しています。
      • 「ランチャーの使い方」-「メッシュ」にて、FreeCADマクロで起動される表形式のGUIの使い方と、cfMesh作成に必要なパラメタの概要を説明しています。
      • 「ランチャーの使い方」-「計算実行」「結果処理」を理解できるようになると、OpenFOAMの基本的なファイル構造を理解できたことにもなります。
      • 以上は動画チュートリアルになっていますが、「フラッシュプレーヤー」を変更して参照することを強くお勧めします。変更方法は、最下段の「フラッシュプレーヤーの変更方法」をご覧ください。
    • Blender⇒SwiftツールをDEXCSランチャーから使用することはなくなりましたが、ツールそのものは使用可能で、メッシュ作成用のテンプレートフォルダもBlenderモデルと併せて同梱してあります(デスクトップ上:DEXCS/template/swift_dexcsMesh)。
    • Swiftツールもヴァージョンアップして、出力ファイルの仕様が少々変更になっていますが、基本的な使用方法は変わっておりません。使用法の詳細を知りたい方はDEXCS2013のリリースノートをご覧ください。
    • SLURMというリソースマネージャもインストールしてあり、サブミット用のサンプルスクリプトを含んだケースファイルも同梱してあります(デスクトップ上:DEXCS/template/slurm_damBreak)。コア数が4つのマシンであれば、以下のコマンドを、そのまま利用可能(のはず)です。
      • $ sbatch submit.sh  (ジョブサブミット)
      • $ squeue  (ジョブ確認)
      • $ scancel [jobID] (ジョブ停止)
    • コア数が4でないなどの環境で、バッチジョブがペンディング状態のまま実行出来ない場合は、デスクトップ上、DEXCS/launcherOpen/doc/slurm.pdf を参考に設定ファイル(slurm.conf)を変更して使用して下さい。
    • ジョブサブミット、ジョブ確認は、TreeFoamの十徳ナイフからも起動できます.
    • 上記を含めて、TreeFoamから起動する十徳ナイフのメニューに変更はありません。
    • JAVA gnuplot GUI の使用方法
    • TreeFoamの基本的な使い方はTreeFoamのヘルプメニューから、「使い方」を参照して下さい。(DEXCS2014までは内容が古い物になっていましたが、DEXCS2015では、最新版に対応した内容になっています)
    • TreeFoamに関する情報は、DEXCS公式HPの AboutTreeFoamの記事にまとめてあります。
    • DEXCS2015に搭載のTreeFOAMは、+dexcsSwakとして、上記公式ページに掲載ヴァージョンに対して独自のカスタマイズが加えてあります。範囲を選択_999(008)
    • また、これに関連し、一部の機能が無効になっています範囲を選択_999(009)

 

FreeCADとcfMesh用マクロの使い方

先の記事に書いた通り、ただいまDEXCS2015 for OpenFOAM(R) の動画チュートリアルを作成中ですが、その一部は単独でそのまま表題の説明用途にも使えるわなぁ・・・と改めて気付いたので、本記事にて紹介しておきます。

FreeCADの基本的な使い方

範囲を選択_987

DEXCSでは、複雑な形状作成はユーザーが使い慣れた3D-CAD(もちろん頑張ればDEXCSに搭載のFreeCADやBlenderでも可能です!)で作成してもらうとして、これをstepまたはstl形式でFreeCADにインポートして使ってもらう事を想定しています。

その際に、FreeCADに標準搭載のプリミティブ要素(直方体や円柱など)を使って、領域を追加で定義したり、解析用の境界面を定義するのに、面の分割や再結合の操作が必要になりますが、これらの操作方法を具体例で確認することが出来ます。

⇒ チュートリアルを見る

 

cfMesh用マクロの使い方と機能の概要説明

範囲を選択_988

上述の方法で、FreeCADのソリッドモデルで解析空間を定義できるようになれば、DEXCSに搭載のFreeCAD用マクロ(makeCfMeshSetting.py)を使って、cfMesh用に境界面の定義や分割方法を指定する為の設定ファイル(meshDict)を自動作成できます。

このチュートリアルでは、マクロで起動される表形式のGUIの使い方と、実際に作成したmeshDictを対比させながらmeshDictファイルのパラメタの意味を解説するとともに、GUIでは指定しなかった、または指定出来ないパラメタを手修正で追加する方法についても解説しています。

⇒ チュートリアルを見る

baffleMeshing by cfMesh

表題の資料をslideshare

範囲を選択_228

 

にアップしておきましたが、ここに補足解説しておきます。

モデルとメッシュ一式は⇒こちら

要旨

cfMeshでバッフルを有するメッシュを普通に作成すると形状が大きく崩れてしまい、とても使い物にならない(snappyHexMeshで作成したものと比べて)という問題があったので、解決策を調査したものです。

結論

CADモデルとしては、厚みの無いシェルではなく、有限の厚みを持たせるようにすれば、それなりにメッシュが作成できるようです。メッシュとして理想的なバッフル(厚みがゼロ)にはなりませんが、実用面を考えれば、実際の対象物の厚みをそのままモデリングすれば良く、メッシュもその厚み(隙間)サイズを再現してくれるので、これはこれでそれなりに使えそうです。

但し、ファンタイプ境界のようにバッフルの表裏面で、変数の受け渡しが出来るのかどうかは課題になりそうです。

 

おまけ

応用例として、OpenFOAM標準チュートリアルの、interDyMFoam/mixerVesselAMI:撹拌槽問題でバッフルが何ヶ所かあるので、これをcfMeshで作成することとし、その際のTipsをほんのさわりだけですが紹介しています。

実はすでにメッシュも完成し、interDyMFoamの計算も問題なく動いています。

このメッシュ作成法ですが、FreeCADの使い方を含めて、Tipsがたくさんありました。そこで、第42回オープンCAE勉強会@岐阜(夏合宿)

演習4:「cfMeshによる実践的なメッシュ作成」

の題材にならんかなぁ・・・と思案中です。