Python 「FreeCAD」内のPythonを使用して、コマンドラインでCADファイル(STEP形式)を作成する

 本記事では、下図のようなCADファイルをPythonスクリプトで作成する雛形コードを載せました。FreeCADをインストールするとそのフォルダにPythonも含有しており、それを使用します。

■本コード

import FreeCAD
import Part
import Import

doc_name = 'new_doc'
obj_name = 'Box_1'

# ドキュメントを生成(CADモデル全体を表すもの。複数のオブジェクトを含む)
FreeCAD.newDocument(doc_name)  # 新しいドキュメントを作成
box = Part.makeBox(10, 20, 30)  # 直方体を作成

# 円形の穴を作成
radius = 5  # 円柱の半径
height = 25  # 切り抜く深さ
cylinder = Part.makeCylinder(radius, height)  # 円柱を作成

# 直方体の中心座標を取得
target_coordinate = box.CenterOfMass

# x座標をオフセット
target_coordinate.x = 0

# 直方体のバウンディングボックスを取得
bbox = box.BoundBox
# z座標をオフセット
target_coordinate.z = bbox.ZMax - height

# 円柱の位置を直方体のカットしたい座標へ移動
cylinder.translate(target_coordinate)  # 円柱を中心座標に移動

# 直方体から円柱の形状を切り抜く
hole = box.cut(cylinder)

# 切り抜いた穴を追加
cut_obj = FreeCAD.ActiveDocument.addObject("Part::Feature", "Cut")
cut_obj.Shape = hole

# ドキュメントを更新(再計算)
FreeCAD.ActiveDocument.recompute()

# FreeCADファイルフォーマットで保存
filename = f'{doc_name}.fcstd'
FreeCAD.getDocument(doc_name).saveAs(filename)

# CADファイル(STEP形式)で保存
__objs__ = [cut_obj]
step_filename = f'{doc_name}-{obj_name}.step'
Import.export(__objs__, step_filename)

実行は、コマンドプロンプトで例えば次のように行います。FreeCAD内のpython.exeを指定します。この時、パスは両端をダブルコーテーション””で囲んで指定します。

"C:\Program Files\FreeCAD 0.20\bin\python.exe" "D:/program/python/CADファイル作成/10_create_cad_freecad.py"

 

ちなみに、生成したCADファイルは汎用のSTEP書式であるため、下図のようにメッシュ分割も手軽に行えます。

その方法は下記リンク先を参考にして下さい。

hk29.hatenablog.jp

以上

<広告>