CAE

FreeCADで面を分割してstlファイル出力のマクロ

こんにちは(@t_kun_kamakiri

本記事では無償の3D CADソフトであるFreeCADのモデルの作成から面に名前を付けてstlで出力するまでの解説を行います。
OpenFOAMで流体解析を行う場合、境界面に名前を付けて境界条件を設定する必要があるため面に名前を付けれるように自動化しておくと便利です。

本記事の内容
  1. FreeCADで面に名前を付けてアスキーファイル出力
  2. 出力したファイルを一つにまとめる

以上の事をFreeCAD内のPythonを使って行います。

以前にもまとめたことがあるのですが今回は詳細な資料を使って詳細に解説を行います。

FreeCAD による OpenFOAM 用モデルの作成でstl出力のコードがありましたので参考にさせていただきました。

FreeCADのドキュメント

より詳細のFreeCADの使い方に関しては以下のドキュメントを参考にしてください。

FreeCADでモデル作成

今回はダクト内の流れ・・・・のようなモデルを作成します。
stlファイル出力の部分がメインなので寸法も適当にして作成します。

上記の資料はまだ手動でstlファイルを出力していますが、手動で毎回するのは手間がかかります。

マクロで自動化します。

FreeCADマクロ自動化(stlファイル出力)

FreeCAD:0.20

以下の資料の通りにマクロ作成から実行を行います。

FreeCADのバージョンによってはマクロ(Pythonファイル)がなかったりするので自身で作成して実行できる場所に保存する必要があります。

Pythonコード

こちらを実行すると面に名前を付けた状態でstlファイルにまとめられます。

以下解説です。

まずは必要なライブラリをインポートします。

次にstlファイルを保存したい場所をフルパスで指定します。

os.getcwd()は定番の現在のディレクトリまでのフルパスですが、これだと「C:\Program Files\FreeCAD 0.20\bin」とFreeCAD.exeがあるパスになるので、ここでは直接フルパスを指定します。

以下はApp.ActiveDocumentのインスタンス化を行っている部分です。

次はfor文の処理内容です。

doc.Objectsは面に分割した数だけfor文が回ります。

ただし以下のように表示がされているパーツのみ処理内容を行うようにします。

それを行っているのが以下の部分です。

さらに境界面に「bc:」と名前が付いた面だけをファイル出力するようにif文で条件分岐をします。

以下でメッシュを作成しています。

作成したメッシュを.ast(アスキー形式)でファイル出力しています。
この時点では1つの面に対して1つのファイルを出力しています。

ここまででモデルツリ―上にメッシュができていますが、必要がないので削除します。

次にできた.ast(アスキー形式)を拡張子.stlとしてひとつのファイルに結合します。

.astファイルの中のsolidの名前も面の名前になるように変更しています。
※以下は「inlet.ast」の例です。

最後にフォルダに溜まった.astファイルを削除します。

指定したフォルダに「.stl」ファイルができているのでParaViewなどで状態を確認します。

以上でFreeCADで面に名前を付けてstlファイル出力ができました。

参考書

本件の内容はFreeCADですが、FreeCADでモデル作成した先にはOpenFOAMで流体解析を行うのでOpenFOAMの参考書を紹介しておきます。

OpenFOAMによる熱移動と流れの数値解析(第2版)

OpenFOAMによる熱移動と流れの数値解析(第2版)

3,520円(12/08 23:45時点)
Amazonの情報を掲載しています
改訂新版 OpenFOAMの歩き方 (技術の泉シリーズ(NextPublishing))

改訂新版 OpenFOAMの歩き方 (技術の泉シリーズ(NextPublishing))

川畑 真一
2,640円(12/08 23:47時点)
発売日: 2022/04/15
Amazonの情報を掲載しています
OpenFOAMライブラリリファレンス

OpenFOAMライブラリリファレンス

株式会社テラバイト, 人見 大輔
16,500円(12/08 23:47時点)
Amazonの情報を掲載しています
OpenFOAMプログラミング

OpenFOAMプログラミング

Mari´c,Tomislav, H¨opken,Jens, Mooney,Kyle
8,250円(12/08 17:25時点)
Amazonの情報を掲載しています

【プロフィール】

カマキリ
(^^)

大学の専攻は物性理論で、Fortranを使って数値計算をしていました。
CAEを用いた流体解析は興味がありOpenFOAMを使って勉強しています。

プロフィール記事はこちら

 

大学学部レベルの物理の解説をします 大学初学者で物理にお困りの方にわかりやすく解説します。

このブログでは主に大学以上の物理を勉強して記事にわかりやすくまとめていきます。

  • ・解析力学
  • ・流体力学
  • ・熱力学
  • ・量子統計
  • ・CAE解析(流体解析)
  • note
    noteで内容は主に「プログラミング言語」の勉強の進捗を日々書いています。また、「現在勉強中の内容」「日々思ったこと」も日記代わりに書き記しています。
  • youtube
    youtubeではオープンソースの流体解析、構造解析、1DCAEの操作方法などを動画にしています。
    (音声はありません_(._.)_)
  • Qiita
    Qiitaではプログラミング言語の基本的な内容をまとめています。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です