Finalizing Python interface bindings for Robot, Spreadsheet, Surface.

This commit is contained in:
Ian 'z0r0' Abreu
2025-08-31 15:41:14 -04:00
parent ca435629b8
commit df20bc6609
28 changed files with 48 additions and 794 deletions

View File

@@ -20,26 +20,21 @@ set(Robot_LIBS
FreeCADApp
)
generate_from_xml(Robot6AxisPy)
generate_from_xml(TrajectoryPy)
generate_from_xml(WaypointPy)
generate_from_xml(RobotObjectPy)
generate_from_py_(Robot6AxisPy)
generate_from_py_(TrajectoryPy)
generate_from_py_(WaypointPy)
generate_from_py_(RobotObjectPy)
generate_from_py(Robot6Axis)
generate_from_py(Trajectory)
generate_from_py(Waypoint)
generate_from_py(RobotObject)
SET(Python_SRCS
Robot6AxisPy.xml
Robot6Axis.pyi
Robot6AxisPyImp.cpp
TrajectoryPy.xml
Trajectory.pyi
TrajectoryPyImp.cpp
RobotObjectPy.xml
RobotObject.pyi
RobotObjectPyImp.cpp
WaypointPy.xml
Waypoint.pyi
WaypointPyImp.cpp
)

View File

@@ -4,18 +4,12 @@ from Base.Metadata import export
from Base.Persistence import Persistence
@export(
Father="PersistencePy",
Name="Robot6AxisPy",
Twin="Robot6Axis",
TwinPointer="Robot6Axis",
Include="Mod/Robot/App/Robot6Axis.h",
Namespace="Robot",
FatherInclude="Base/PersistencePy.h",
FatherNamespace="Base",
Constructor=True,
Delete=True,
)
class Robot6AxisPy(Persistence):
class Robot6Axis(Persistence):
"""
Robot6Axis class
"""

View File

@@ -1,73 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<GenerateModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="generateMetaModel_Module.xsd">
<PythonExport
Father="PersistencePy"
Name="Robot6AxisPy"
Twin="Robot6Axis"
TwinPointer="Robot6Axis"
Include="Mod/Robot/App/Robot6Axis.h"
Namespace="Robot"
FatherInclude="Base/PersistencePy.h"
FatherNamespace="Base"
Constructor="true"
Delete="true">
<Documentation>
<Author Licence="LGPL" Name="Juergen Riegel" EMail="Juergen.Riegel@web.de" />
<UserDocu>Robot6Axis class</UserDocu>
</Documentation>
<Methode Name="check">
<Documentation>
<UserDocu>Checks the shape and report errors in the shape structure.
This is a more detailed check as done in isValid().</UserDocu>
</Documentation>
</Methode>
<Attribute Name="Axis1" ReadOnly="false">
<Documentation>
<UserDocu>Pose of Axis 1 in degrees</UserDocu>
</Documentation>
<Parameter Name="Axis1" Type="Float"/>
</Attribute>
<Attribute Name="Axis2" ReadOnly="false">
<Documentation>
<UserDocu>Pose of Axis 2 in degrees</UserDocu>
</Documentation>
<Parameter Name="Axis2" Type="Float"/>
</Attribute>
<Attribute Name="Axis3" ReadOnly="false">
<Documentation>
<UserDocu>Pose of Axis 3 in degrees</UserDocu>
</Documentation>
<Parameter Name="Axis3" Type="Float"/>
</Attribute>
<Attribute Name="Axis4" ReadOnly="false">
<Documentation>
<UserDocu>Pose of Axis 4 in degrees</UserDocu>
</Documentation>
<Parameter Name="Axis4" Type="Float"/>
</Attribute>
<Attribute Name="Axis5" ReadOnly="false">
<Documentation>
<UserDocu>Pose of Axis 5 in degrees</UserDocu>
</Documentation>
<Parameter Name="Axis5" Type="Float"/>
</Attribute>
<Attribute Name="Axis6" ReadOnly="false">
<Documentation>
<UserDocu>Pose of Axis 6 in degrees</UserDocu>
</Documentation>
<Parameter Name="Axis6" Type="Float"/>
</Attribute>
<Attribute Name="Tcp" ReadOnly="false">
<Documentation>
<UserDocu>Tool center point frame. Where the tool of the robot is</UserDocu>
</Documentation>
<Parameter Name="Tcp" Type="Object"/>
</Attribute>
<Attribute Name="Base" ReadOnly="false">
<Documentation>
<UserDocu>Actual Base system in respect to the robot world system</UserDocu>
</Documentation>
<Parameter Name="Base" Type="Object"/>
</Attribute>
</PythonExport>
</GenerateModel>

View File

@@ -5,16 +5,10 @@ from Base.Metadata import export
from App.DocumentObject import DocumentObject
@export(
Father="DocumentObjectPy",
Name="RobotObjectPy",
Twin="RobotObject",
TwinPointer="RobotObject",
Include="Mod/Robot/App/RobotObject.h",
Namespace="Robot",
FatherInclude="App/DocumentObjectPy.h",
FatherNamespace="App",
)
class RobotObjectPy(DocumentObject):
class RobotObject(DocumentObject):
"""
Robot document object
"""

View File

@@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<GenerateModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="generateMetaModel_Module.xsd">
<PythonExport
Father="DocumentObjectPy"
Name="RobotObjectPy"
Twin="RobotObject"
TwinPointer="RobotObject"
Include="Mod/Robot/App/RobotObject.h"
Namespace="Robot"
FatherInclude="App/DocumentObjectPy.h"
FatherNamespace="App">
<Documentation>
<Author Licence="LGPL" Name="Juergen Riegel" EMail="FreeCAD@juergen-riegel.net" />
<UserDocu>Robot document object</UserDocu>
</Documentation>
<Methode Name="getRobot">
<Documentation>
<UserDocu>
Returns a copy of the robot. Be aware, the robot behaves the same
like the robot of the object but is a copy!
</UserDocu>
</Documentation>
</Methode>
</PythonExport>
</GenerateModel>

View File

@@ -4,18 +4,12 @@ from Base.Metadata import export
from Base.Persistence import Persistence
@export(
Father="PersistencePy",
Name="TrajectoryPy",
Twin="Trajectory",
TwinPointer="Trajectory",
Include="Mod/Robot/App/Trajectory.h",
Namespace="Robot",
FatherInclude="Base/PersistencePy.h",
FatherNamespace="Base",
Constructor=True,
Delete=True,
)
class TrajectoryPy(Persistence):
class Trajectory(Persistence):
"""
Trajectory class
"""

View File

@@ -1,67 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<GenerateModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="generateMetaModel_Module.xsd">
<PythonExport
Father="PersistencePy"
Name="TrajectoryPy"
Twin="Trajectory"
TwinPointer="Trajectory"
Include="Mod/Robot/App/Trajectory.h"
Namespace="Robot"
FatherInclude="Base/PersistencePy.h"
FatherNamespace="Base"
Constructor="true"
Delete="true">
<Documentation>
<Author Licence="LGPL" Name="Juergen Riegel" EMail="Juergen.Riegel@web.de" />
<UserDocu>Trajectory class</UserDocu>
</Documentation>
<Methode Name="insertWaypoints">
<Documentation>
<UserDocu>
adds one or a list of waypoint to the end of the trajectory
</UserDocu>
</Documentation>
</Methode>
<Methode Name="position">
<Documentation>
<UserDocu>
returns a Frame to a given time in the trajectory
</UserDocu>
</Documentation>
</Methode>
<Methode Name="velocity">
<Documentation>
<UserDocu>
returns the velocity to a given time in the trajectory
</UserDocu>
</Documentation>
</Methode>
<Methode Name="deleteLast">
<Documentation>
<UserDocu>
deleteLast(n) - delete n waypoints at the end
deleteLast() - delete the last waypoint
</UserDocu>
</Documentation>
</Methode>
<Attribute Name="Duration" ReadOnly="true">
<Documentation>
<UserDocu>duration of the trajectory</UserDocu>
</Documentation>
<Parameter Name="Duration" Type="Float"/>
</Attribute>
<Attribute Name="Length" ReadOnly="true">
<Documentation>
<UserDocu>length of the trajectory</UserDocu>
</Documentation>
<Parameter Name="Length" Type="Float"/>
</Attribute>
<Attribute Name="Waypoints" ReadOnly="false">
<Documentation>
<UserDocu>waypoints of this trajectory</UserDocu>
</Documentation>
<Parameter Name="Waypoints" Type="List"/>
</Attribute>
</PythonExport>
</GenerateModel>

View File

@@ -4,18 +4,12 @@ from Base.Metadata import export
from Base.Persistence import Persistence
@export(
Father="PersistencePy",
Name="WaypointPy",
Twin="Waypoint",
TwinPointer="Waypoint",
Include="Mod/Robot/App/Waypoint.h",
Namespace="Robot",
FatherInclude="Base/PersistencePy.h",
FatherNamespace="Base",
Constructor=True,
Delete=True,
)
class WaypointPy(Persistence):
class Waypoint(Persistence):
"""
Waypoint class
"""

View File

@@ -1,65 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<GenerateModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="generateMetaModel_Module.xsd">
<PythonExport
Father="PersistencePy"
Name="WaypointPy"
Twin="Waypoint"
TwinPointer="Waypoint"
Include="Mod/Robot/App/Waypoint.h"
Namespace="Robot"
FatherInclude="Base/PersistencePy.h"
FatherNamespace="Base"
Constructor="true"
Delete="true">
<Documentation>
<Author Licence="LGPL" Name="Juergen Riegel" EMail="Juergen.Riegel@web.de" />
<UserDocu>Waypoint class</UserDocu>
</Documentation>
<Attribute Name="Name" ReadOnly="false">
<Documentation>
<UserDocu>Name of the waypoint</UserDocu>
</Documentation>
<Parameter Name="Name" Type="String"/>
</Attribute>
<Attribute Name="Type" ReadOnly="false">
<Documentation>
<UserDocu>Type of the waypoint[PTP|LIN|CIRC|WAIT]</UserDocu>
</Documentation>
<Parameter Name="Type" Type="String"/>
</Attribute>
<Attribute Name="Pos" ReadOnly="false">
<Documentation>
<UserDocu>End position (destination) of the waypoint</UserDocu>
</Documentation>
<Parameter Name="Pos" Type="Object"/>
</Attribute>
<Attribute Name="Cont" ReadOnly="false">
<Documentation>
<UserDocu>Control the continuity to the next waypoint in the trajectory</UserDocu>
</Documentation>
<Parameter Name="Cont" Type="Boolean"/>
</Attribute>
<Attribute Name="Velocity" ReadOnly="false">
<Documentation>
<UserDocu>Control the velocity to the next waypoint in the trajectory
In Case of PTP 0-100% Axis speed
In Case of LIN m/s
In Case of WAIT s wait time
</UserDocu>
</Documentation>
<Parameter Name="Velocity" Type="Float"/>
</Attribute>
<Attribute Name="Tool" ReadOnly="false">
<Documentation>
<UserDocu>Describe which tool frame to use for that point</UserDocu>
</Documentation>
<Parameter Name="Tool" Type="Long"/>
</Attribute>
<Attribute Name="Base" ReadOnly="false">
<Documentation>
<UserDocu>Describe which Base frame to use for that point</UserDocu>
</Documentation>
<Parameter Name="Base" Type="Long"/>
</Attribute>
</PythonExport>
</GenerateModel>