はじめに
CAD/CAEの分野でトポロジ最適化という言葉をよく聞きます。以下の龍野さまの資料を拝見して、フリーのCAD「FreeCAD」でトポロジ最適化が行えることを知り、今回はそれを試しました。
手順
上記資料の手順に沿って行いました。
-
ブラウザで
https://github.com/calculix/beso
のサイトを表示させます。緑色の「Code」をクリックして[DownLoad ZIP]を実行します。これにより、このサイトに表示されているファイルがzipファイルで一括ダウンロードされます。 -
zipファイル展開して、FreeCADの「Macro」フォルダに全て格納します(不要なファイルもありますが…)。私の環境では「Macro」フォルダは下図の場所にありました。
3.FreeCADでモデルを作成します。
幅20mm、厚さ30mm、長さ200mmの直方体について両端を支持し、底面全体に下向き荷重1000Nを加わる場合について解析します。モデルは長さ1/2(100mm)としたものを作成しました。
4.作成したモデルで解析します。
①メッシュの作成条件
計算精度は求めないため二次精度のチェックは外しています。
材料はSteel-1C45(炭素鋼S45C相当材)としました。
②境界条件の設定
境界条件は以下のように設定しました。
③解析
作業ディレクトリは、分かりやすい場所に指定しておくと、トポロジ最適化をするとき作業しやすくなります。
④解析が終了したら、上記の作業ディレクトリに以下のようなファイルが作成されていることを確認します。このうち、拡張子inpファイルをトポロジ最適化に使います。
5.トポロジ最適化を行います。
①まず、マクロファイルを開きます。メニューの「マクロ(M)」-マクロで「ユーザーマクロの場所:」に手順2で設定したフォルダを指定します。これにより、ファイル一覧が表示されるので、beso_fc_gui.pyを選択して「実行」をクリックします。
②Select analysis fileで手順4の解析で設定した作業ディレクトリ内のinpファイルを指定します。ここではその他の設定として、Mass goal ratioを0.2としています。モデルの質量が初期状態の20%(つまり80%減)になったら終了という設定です。設定が終わったら、Generate conf. file and run optimizationをクリックしてトポロジ最適化を実行します。
④形状の変化です(1回の計算ごとに作成されるfile020_state1.inpなどをFreeCADに読み込ませたものです)。
終わりに
- FreeCADをお使いの方はぜひ試してほしいと思います。
- ダウンロードしたマクロファイルは、Macro以外の場所では動作しませんでした。