機械軸3Dモデル出力の全自動化を目指して(1)

僕は機械設計の仕事において、軸を描くことが多く、その作業を効率化したいと考えています。
そこで、FreeCADを用いて軸設計のプロセスを自動化し、出力を迅速かつ精密に行えるようにすることを目指しています。
この取り組みにより、図面作成にかかる時間を削減し、他の重要な設計業務に集中できる環境を整えたいと考えています。

Pythonコンソールから円筒を1つ生成してみる

FreeCADのPart Designワークベンチを使用して、与えられたdia1とlen1パラメータから円筒を生成するPythonコードを作成します。

import FreeCAD as App
import FreeCADGui as Gui
from PySide import QtCore

dia1=10
len1=20

def create_cylinder(dia1, len1):
    # アクティブなドキュメントを取得、なければ新規作成
    try:
        doc = App.activeDocument()
    except:
        doc = App.newDocument()

    # Part Designワークベンチに切り替え
    Gui.activateWorkbench("PartDesignWorkbench")

    # 新しいボディを作成
    body = doc.addObject('PartDesign::Body', 'Body')

    # スケッチを作成
    sketch = body.newObject('Sketcher::SketchObject', 'Sketch')
    sketch.Support = (doc.XY_Plane, [''])
    sketch.MapMode = 'FlatFace'

    # 円を描画(原点中心)
    sketch.addGeometry(Part.Circle(App.Vector(0,0,0), App.Vector(0,0,1), dia1/2))

    # パッド(押し出し)を作成
    pad = body.newObject('PartDesign::Pad', 'Pad')
    pad.Profile = sketch
    pad.Length = len1

    # ビューの更新
    doc.recompute()
    Gui.activeDocument().activeView().viewAxonometric()
    Gui.SendMsgToActiveView("ViewFit")

    return body

# 使用例:
create_cylinder(dia1,len1 )  # 直径10mm、長さ20mmの円筒を生成

このスクリプトの主な機能は以下の通りです:

  1. アクティブなドキュメントを取得(なければ新規作成)
  2. Part Designワークベンチをアクティブ化
  3. 新しいBodyを作成
  4. スケッチを作成(XY平面上)
  5. 指定された直径の円を描画
  6. 指定された長さでパッド(押し出し)を実行

使用方法:

create_cylinder(dia1=10, len1=20)  # 直径10mm、長さ20mmの円筒を生成

パラメータ:

  • dia1 円筒の直径(mm)
  • len1: 円筒の長さ(mm)

このスクリプトを実行すると、指定されたサイズの円筒がアクティブなBodyとして生成され、自動的に適切なビュー位置に調整されます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次