FreeCAD アセンブリワークベンチ
無料で使用できる3D-CAD:FreeCADのサンプルモデルがあります.
[Assembly]: https://wiki.freecad.org/Assembly_Workbench/ja/
ここには,スライダーモデルをマクロ機能(Python)で駆動させる手順が示されています.
サンプルをそのまま動かすだけでは,つまらないので
Pythonスクリプトを少し改良してみます.
drive_crank_mod.py
import math
import FreeCAD as App
import FreeCADGui as Gui
actuator = App.ActiveDocument.getObjectsByLabel("Fixed")[0]
for i in range(2):
for angle in range(0, 46, 5):
actuator.Offset1.Rotation.Angle = math.radians(angle)
App.ActiveDocument.recompute()
Gui.updateGui()
for angle in range(45, -46, -5):
actuator.Offset1.Rotation.Angle = math.radians(angle)
App.ActiveDocument.recompute()
Gui.updateGui()
for angle in range(-45, 1, 5):
actuator.Offset1.Rotation.Angle = math.radians(angle)
App.ActiveDocument.recompute()
Gui.updateGui()
このPythonスクリプトのポイントは,
1.パッケージ3つをインポート
2.モデルのラベル名で駆動ジョイントを定義:
回転ジョイントのラベルが"Fixed"となっていること
3.回転駆動を2回させる
4.駆動角度は,(初期角度,終了角度,ステップ)として与え,
終了角度値は,終了角度よりも少し超えた値としないと,
終了角度よりも1ステップ分手前の角度で終わってしまう.