Translations:Robot Workbench/23/ja

ロボットドキュメントオブジェクトを使った処理 まずアクティブなドキュメントにロボットを作成します if(App.activeDocument == None):App.newDocument

App.activeDocument.addObject("Robot::RobotObject","Robot") 視覚的な表示と運動の記述を定義します（詳細については六軸ロボットとロボットシミュレーション用のVRMLの準備を見てください） App.activeDocument.Robot.RobotVrmlFile = App.getResourceDir+"Mod/Robot/Lib/Kuka/kr500_1.wrl" App.activeDocument.Robot.RobotKinematicFile = App.getResourceDir+"Mod/Robot/Lib/Kuka/kr500_1.csv" 軸の開始位置（0からの移動量） App.activeDocument.Robot.Axis2 = -90 App.activeDocument.Robot.Axis3 = 90

TCP位置を取得 pos = FreeCAD.getDocument("Unnamed").getObject("Robot").Tcp ロボットを動かします pos.move(App.Vector(-10,0,0)) FreeCAD.getDocument("Unnamed").getObject("Robot").Tcp = pos

アクティブなドキュメントに空の軌道オブジェクトを作成 App.activeDocument.addObject("Robot::TrajectoryObject","Trajectory") 軌道を取得 t = App.activeDocument.Trajectory.Trajectory 軌道にロボットの実際のTCP位置を追加 StartTcp = App.activeDocument.Robot.Tcp t.insertWaypoints(StartTcp) App.activeDocument.Trajectory.Trajectory = t print App.activeDocument.Trajectory.Trajectory

さらにいくつかの通過点と開始点、終了点を挿入 for i in range(7): t.insertWaypoints(Waypoint(Placement(Vector(0,1000,i*100+500),Vector(1,0,0),i),"LIN","Pt")) t.insertWaypoints(StartTcp) # end point of the trajectory App.activeDocument.Trajectory.Trajectory = t print App.activeDocument.Trajectory.Trajectory

シミュレーション
作っておきます..... ;-)

軌道のエクスポート
Pythonを使って軌道をエクスポートすることができます. つまり全ての制御キャビネット型にポストプロセッサー用のPythonモジュールがあるということです. 以下はKukaポストプロセッサーの書き方の詳細です. from KukaExporter import ExportCompactSub ExportCompactSub(App.activeDocument.Robot,App.activeDocument.Trajectory,'D:/Temp/TestOut.src')

こちらはどのように処理を行うかについてです. for w in App.activeDocument.Trajectory.Trajectory.Waypoints: (A,B,C) = (w.Pos.Rotation.toEuler) print ("LIN {X %.3f,Y %.3f,Z %.3f,A %.3f,B %.3f,C %.3f} ; %s"%(w.Pos.Base.x,w.Pos.Base.y,w.Pos.Base.z,A,B,C,w.Name))