MRが楽しい

MRやVRについて学習したことを書き残す

FreeCADの操作を行うPythonコードをコマンドラインで実行する

本日は FreeCAD の利用手順についてです。
FreeCADの操作を行うPythonコードをコマンドライン上で実行する手順を記事にします。

FreeCADCmd.exeを利用する

コマンドライン上でFreeCADの操作を行うには FreeCADCmd.exe を利用します。
FreeCADCmd.exe は FreeCAD のインストール時に FreeCAD_0.18/bin フォルダに保存されています。
f:id:bluebirdofoz:20190406023741j:plain

FreeCADCmd.exe で実行するPythonスクリプトを作成します。
FreeCAD の[Pythonコンソール]から取得したPythonコードにはGUIの操作など不要なコードも含まれています。
[Pythonコンソール]で実行確認を行い、必要なコードのみを抽出します。
f:id:bluebirdofoz:20190406023750j:plain

以下のような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ウィンドウをここに開く]を実行します。
f:id:bluebirdofoz:20190406023800j:plain

PowerShell が開くので FreeCADCmd.exe にPythonスクリプトのファイルパスを引数に与えて起動します。

PS> .\FreeCADCmd.exe C:\FreeCAD\CADTest\cmdtest_FCStoOBJ.py

FreeCADCmd.exe が実行されると以下のようなコンソール出力が行われます。
f:id:bluebirdofoz:20190406023812j:plain

エクスポート先のディレクトリを確認すると、OBJ形式のファイルが出力されています。
f:id:bluebirdofoz:20190406023821j:plain

入出力例

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")

参考ページ

www.xsim.info