本日は FreeCAD の利用手順についてです。
FreeCADの操作を行うPythonコードをコマンドライン上で実行する手順を記事にします。
FreeCADCmd.exeを利用する
コマンドライン上でFreeCADの操作を行うには FreeCADCmd.exe を利用します。
FreeCADCmd.exe は FreeCAD のインストール時に FreeCAD_0.18/bin フォルダに保存されています。
FreeCADCmd.exe で実行するPythonスクリプトを作成します。
FreeCAD の[Pythonコンソール]から取得したPythonコードにはGUIの操作など不要なコードも含まれています。
[Pythonコンソール]で実行確認を行い、必要なコードのみを抽出します。
以下のようなFCStdプロジェクトのモデルをOBJ形式のファイルで出力するPythonコードを作成しました。
注意点として文字コードを「UTF-8」に設定しておく必要があります。
・cmdtest_FCStoOBJ.py
import FreeCAD import Mesh FreeCAD.open(u"C:/FreeCAD/CADTest/ImportFile/CapTest.FCStd") __objs__=[] __objs__.append(FreeCAD.activeDocument().getObject("Body")) Mesh.export(__objs__,u"C:/FreeCAD/CADTest/ExportFile/CapTest.obj")
FreeCAD_0.18/bin フォルダでSHIFTキーを押しながら右クリックで[PowerShellウィンドウをここに開く]を実行します。
PowerShell が開くので FreeCADCmd.exe にPythonスクリプトのファイルパスを引数に与えて起動します。
PS> .\FreeCADCmd.exe C:\FreeCAD\CADTest\cmdtest_FCStoOBJ.py
FreeCADCmd.exe が実行されると以下のようなコンソール出力が行われます。
エクスポート先のディレクトリを確認すると、OBJ形式のファイルが出力されています。
入出力例
OBJ形式からPLY形式への変換
import FreeCAD import Part import Mesh Mesh.insert(u"C:/FreeCAD/CADTest/ImportFile/CapTest.obj","Unnamed") __objs__=[] __objs__.append(App.activeDocument().getObject("CapTest")) Mesh.export(__objs__,u"C:/FreeCAD/CADTest/ExportFile/CapTest.ply")
IGS形式からOBJ形式への変換
import FreeCAD import Part import Mesh FreeCAD.loadFile(u"C:/FreeCAD/CADTest/ImportFile/CapTest.igs") __objs__=[] __objs__.append(App.activeDocument().getObject("SmartPhone")) Mesh.export(__objs__,u"C:/FreeCAD/CADTest/ExportFile/CapTest.obj")