FreeCAD FEM ワークベンチ、その後

約1年半前の記事では、パンテオン神殿の構造解析問題が、5年半前の記事に比べて随分楽チンに出来るようになったと紹介しました。ただその時までのメッシュは1次テトラ要素だったのが、今回は2次要素でも出来るようになったというレポートです。

フルオートの自動メッシュは随分大胆な粗密配分をしてくれて、メッシュ数が大幅に低減できています。その為、計算時間も数分というオーダーで終わってくれます。また今回は自重解析も可能になっています。

但しここで使用しているFreeCADは正式公開版(v0.16、DEXCS2017 for OpenFOAMに搭載されているもの)でなく、日々更新されているDaily版(0.17-12549)です。

1年半前と比べてFreeCADのヴァージョンが異なっているのは当然として、さらに大きく異なっているのはメッシャーです。従来はNetgenが標準メッシュツールとして採用されていましたが、最近はGmshしか使えないようになっています(Netgenを起動するボタンはありますが、下記ダイヤログにて使用できない)。

しかもGmshのヴァージョンにも依存して挙動が異なるので注意が必要です。

DEXCS2017 for OpenFOAM のベースOSはLinuxMint18(ubuntu16.04相当)なので、Gmshは標準(apt-get とか、synapticパッケージマネージャで)インストール可能ですが、これでインストールされるのは v-2.10.1です。これを使うのであれば、上述の結果となって、ある意味問題はないのですが、、、

FreeCAD⇒Gmshでメッシュ作成する場合、ボタンを押すと、下図のようなダイヤログが現れます。

Applyボタンを押せば、メッシュ作成が始まって、完成したらOKボタンを押すだけという、実用面では何とも簡単で有り難い作りになっています。これで、大抵のものはメッシュが切れてしまえそうです。場合によっては、メッシュの最大・最小サイズを規定すれば、それなりに作ってくれる。

このメッシュは1次要素なのか2次要素なのか?

別途調べた所、確かに2次要素であったので、実用面では問題ないかもしれないが、教育面ではせめて1次要素と2次要素での違いくらいは見れるようにしておきたい。 しかし、それだけの事が出来ないのを何としたものか。

Gmshを単独で使用してメッシュ作成すれば、1次・2次要素だけでなく、3次要素も出来る。しかも少し前にツイッターにて紹介したチュートリアル

で見たように、工夫すれば六面体要素も作成できる事が判ったのですが、残念ながらGmsh-2.10.1で作成したメッシュをFreeCADに戻すのに(メッシュ変換ツールを駆使すれば可能性はあるとは思うが)簡単な方法がないことが判明。

Gmshの進化点と問題

件のチュートリアルで使用しているGmshは最新のもの(Gmsh-3.0.5)のようで、こちらを使えばちゃんとunvファイルにエクスポートが出来て、そのままFreeCADにインポートし、解析(Calcuilixでの計算)が出来る事も判った。

Gmsh最新版は、GmshのHPからダウンロードできて、linux版を解凍すれば、DEXCS2017ではそのまま問題なく動いてくれる。

但し、こちらを使うと、今度はこのPanteon神殿の問題でFreeCADから起動した時のデフォルト設定ではメッシュ作成エラーが生じてしまうという新たな問題が発生。

しかしGmsh単独で起動して、メッシュ作成時のオプションを以下のよう(デフォルトでは①にチェックマークが付いているが、これを外すか、②にチェックマークを付ける)に変更すればエラーのないメッシュを作成できる事までは確認できたので、これなら教育的利用面でも使えそうな感触が出てきました。

Gmsh-2.10.1と比べて、メッシュの違いは明白で、応じて計算結果も異なっております。

残された課題

本パンテオンの例では無理としても、二次元メッシュを押し出す方法であれば、件のチュートリアルで判明した方法で六面体メッシュを作成しインポートできるのですが、現時点で最大の問題は、六面体の高次要素(C3D20)の場合、Caliculix用計算データに変換する際に1次要素としてしか変換出来ていない点です。

FEM Callculixのページによれば、そもそもまだ対応出来ていないようにも読み取れるのですが、FEM Mesh のページによれば対応出来ているようにも読み取れる。いずれにせよ、出来ていない原因と対策をFreeCAD FEM のフォーラム記事を読みながら調査中です。ご存知の方あればお知らせ下さい。

 

DEXCS2012 for OpenFOAM(R) 特別版

6月20日(木)に実施される、オープンCAEワークショップ2013の講習会で使用予定の、表記のisoイメージが完成、DVD焼付けを依頼中です。

同日より、会場もしくは、オープンCAE学会のWebサイトにて販売される予定です。

ここでは、公開版の同梱プログラムとの違いについて整理しておきます。ご質問、不具合情報などは、本スレッドにぶら下げて(コメント投稿して)下さい。

 ヴァージョンアップしたもの

新規に追加したもの

その他、特記事項

  • 当初、OpenFOAMのヴァージョンアップだけを予定していたのですが、ヴァージョンアップに伴って、ケースパラメタ設定ファイルの変更などがあった為、DEXCSランチャーや、TreeFoamにおいても、ヴァージョンアップ対応が必要になりました。
  • 講習会にて「OpenFOAMのためのメッシュ生成入門」として、様々なメッシュ作成演習が実施されることになり、オープンソースのメッシュツールも、講習では使用しないものも含めて各種組み込むこととしました。
  • サイズが3.8GBとなってしまい、そろそろライブDVDとしてのサイズ限界に近づいてきました。
  • 本isoイメージを使って、仮想マシンを作成するには、ディスク容量として一般的なデフォルトサイズ20GBでは足りません。最低でも25GBは必要になるようです。

 

 

FreeCADメモ:回転押し出しでbendingPypeを作ってみた

範囲を選択_080

流れ計算のベンチマーク問題でよく見かける形状(たとえば、こちら)ですが、これをFreeCADで作成してみました。 モデルダウンロードは⇒こちら

使用ヴァージョン

範囲を選択_093

使い慣れたCADがあれば、ごく簡単にできるもので、管理人もblenderで作成するならば、10分もあれば出来てしまう問題です。

しかしながら、blenderには後述する様々な問題があって、今回はFreeCADに挑戦してみたということです。

なおFreeCADも最近はマニュアルも日本語化され、様々なチュートリアル(たとえば、こちら)も出まわるようになってきたので、何とかなるだろう・・・と思って取り組みを開始。またFreeCADを日常的にお使いの人であれば、これも簡単に出来たことだったかもしれないのですが、管理人のようにたまにしか使わない人間にとっては、コツを掴むまでに半日以上の試行錯誤があってようやくという、まだまだハードルの高い問題でした。しかも、これも1週間もすれば忘れてしまいそうな内容なので、ここにメモとして記しておくことにしました。

 

 この問題での使用法ノウハウ

  1. 曲がりパイプの作成方法
  2. 曲がりパイプと短径の直パイプの結合

くらいですが、このうち、2.の部分は、FreeCADを使ったことがあるという人にとっては、ごく簡単で問題ないので、ここでは記しません。

曲がりパイプの作成方法

基本的には、

スケッチ画面で断面形状(この場合は円)を描いて、ストレート部分は単純押し出し、曲がり部は回転押し出しでつなげていく。

ということで良く、単純に押し出した端面を直接操作するのでなく、端面で新たにスケッチを作成するというひと手間が必要という面はあるのですが、回転押し出しにはコツが必要だったというか、機能に制限があったということです。

回転押し出しの留意点:回転軸は固定?

多分、普通にCADを使っている人であれば(blenderでもそうですが)、回転押し出しの回転軸や押出角度は自由に設定できるであろう・・・という先入観でモデルを作成してしまいがちですが、FreeCADの場合、回転軸は水平軸もしくは垂直軸しか選べないということです。

そこはマニュアルにも記してあるのですがね。ただ、そこには

ただしPropertiesテーブルを使うと任意の軸を定義することができます。

ということも記してあったので、その方法をいろいろ探ってみたのですが、さっぱりわかりませんでした。メニューらしきものはあったのですが、キー入力を受け付けてもらえなく、まだ開発途上ということかもしれません。

ということで、スケッチ画面で断面形状を作成する場合には、最初から回転軸の位置を想定した部位に断面形状を配置しておく必要があったということです。

回転軸が水平軸もしくは垂直軸しか選択できないということが判った上でモデル作成すれば、何のことはなかったかもしれませんが、関連してもう1点制限があったので、手こずったところです。

エラー:Revolve axis intersect the sketch

たとえば、以下のようなスケッチ画面の例で、緑色の円を回転押し出ししたいという場合、

範囲を選択_084

 

垂直軸で回転押し出ししようとすると、、、

範囲を選択_089

 

以下のようになってしまう。

範囲を選択_088

「回転軸がスケッチと交錯する」といわれているんだが、それがどうした?!という感でしたね。この例の場合、水平軸の回転押し出しはちゃんと作成してくれたので、ここにきて交錯した場合には作成できない!ということがようやくわかった次第です。

実は、最初に始めたのが、回転軸が固定の意味も判らないまま、スケッチ軸原点を中心にした円を作成して作業していたので、この場合は、どう頑張っても作成出来ないということで、このエラーの意味に悩みました。

 

その他の問題

つぎに押し出した端面で新たにスケッチを作成する必要があるのですが、この作業にはちょっとしたコツというか、FreeCADのGUIにはまだまだ洗練されていない部分があるようです。

参照線(既存形状の輪郭線)の選択

端面を選択して、スケッチ図を作成する場合に、その端面の輪郭線を参照線にしてスケッチ図を作成するのが効率的で食い違いなく押し出しできます。

範囲を選択_097

問題は、この輪郭線を選択するのが難しい場面があったことです。

範囲を選択_094

 

解決策は、単純で、図形を拡大して選択しましょう・・・でした。

範囲を選択_096

マウスの操作モード

デフォルトの操作モードは、とくに物体を回転させる方法が面倒くさくて、そういう場合を想定してか、Inventor navigation というモードも用意されており、これを使うとParaViewと同じような一般的なマウスの操作方法で画面操作ができるのですが・・・

範囲を選択_092

このままだと、前節の端面の選択が出来なかったり、スケッチモードで、部品が配置出来なかったりします。

判っていれば、どうってことない問題ですぐ対処できますが、慣れるのにしばらく経験が必要のようです。

 モデルエクスポートの問題

igesは駄目ですね。stepにしましょう。Netgenですべてデフォルトのままメッシュ作成してみました。

igesの場合

NETGEN - -home-et-Desktop-mixing_elbow-mixing_elbow3.igs_098

 

stepの場合NETGEN - -home-et-Desktop-mixing_elbow-mixing_elbow2.stp_099

但し、Netgenの場合、igesで上記のようになったとしても、

Geometry > IGES/STEP Topology Explore/Doctor… > Heal geometry

のメニューを実行すれば、stepとほぼ同じ結果にはなってくれます。

また、stl(エクスポートでMesh formats を選択)はバイナリ形式なので、このままでは上のNetgenや、OpenFOAMでは使えません。別途ツールでアスキー形式に変換する必要があります。

(6/10 追記)

メッシュメニューで、 「図形からメッシュを作成する」を実行すれば、同じメッシュメニューから、「ExportMesh」することができ、こちらの方法であれば、アスキー形式の出力も可能でした。

 

blenderのモデル作成上の問題

なんといってもマウス操作が独特で、CAE分野の一般的なソフトの中にあって特異で、馴染めない人が多い。

ポリゴン(多面体)形式で形状を作成するので、本例のような円筒面や球といった、滑らかな曲面は作成できない。メッシュ分割を細分化しても、ポリゴンの分割線はそのまま残ってしまう。