LoginSignup
1
2

FreeCADによるトポロジ最適化をやってみた

Last updated at Posted at 2024-02-19

はじめに

CAD/CAEの分野でトポロジ最適化という言葉をよく聞きます。以下の龍野さまの資料を拝見して、フリーのCAD「FreeCAD」でトポロジ最適化が行えることを知り、今回はそれを試しました。

手順

上記資料の手順に沿って行いました。

  1. ブラウザで
    https://github.com/calculix/beso
    のサイトを表示させます。緑色の「Code」をクリックして[DownLoad ZIP]を実行します。これにより、このサイトに表示されているファイルがzipファイルで一括ダウンロードされます。

  2. zipファイル展開して、FreeCADの「Macro」フォルダに全て格納します(不要なファイルもありますが…)。私の環境では「Macro」フォルダは下図の場所にありました。BesoファイルはMacroフォルダに全て格納.jpg

3.FreeCADでモデルを作成します。
幅20mm、厚さ30mm、長さ200mmの直方体について両端を支持し、底面全体に下向き荷重1000Nを加わる場合について解析します。モデルは長さ1/2(100mm)としたものを作成しました。
image.png

4.作成したモデルで解析します。
①メッシュの作成条件
計算精度は求めないため二次精度のチェックは外しています。
材料はSteel-1C45(炭素鋼S45C相当材)としました。
image.png

②境界条件の設定
境界条件は以下のように設定しました。

  • 左端面を長さ方向の対称面とするため、その面のx方向の変位を0とする
  • 右端面の下エッジを支点とするため、その位置のz方向の変位を0とする
  • 底面全体に下向きに荷重500Nを加える
    image.png

③解析
作業ディレクトリは、分かりやすい場所に指定しておくと、トポロジ最適化をするとき作業しやすくなります。
image.png

④解析が終了したら、上記の作業ディレクトリに以下のようなファイルが作成されていることを確認します。このうち、拡張子inpファイルをトポロジ最適化に使います。
image.png

5.トポロジ最適化を行います。
①まず、マクロファイルを開きます。メニューの「マクロ(M)」-マクロで「ユーザーマクロの場所:」に手順2で設定したフォルダを指定します。これにより、ファイル一覧が表示されるので、beso_fc_gui.pyを選択して「実行」をクリックします。

マクロファイルの選択.jpg

②Select analysis fileで手順4の解析で設定した作業ディレクトリ内のinpファイルを指定します。ここではその他の設定として、Mass goal ratioを0.2としています。モデルの質量が初期状態の20%(つまり80%減)になったら終了という設定です。設定が終わったら、Generate conf. file and run optimizationをクリックしてトポロジ最適化を実行します。
image.png

③結果です(実行中にも途中経過がグラフ表示されます)。
Mass.png
energy_density_mean.png

④形状の変化です(1回の計算ごとに作成されるfile020_state1.inpなどをFreeCADに読み込ませたものです)。
image.png

終わりに

  • FreeCADをお使いの方はぜひ試してほしいと思います。
  • ダウンロードしたマクロファイルは、Macro以外の場所では動作しませんでした。
1
2
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
2