EASY-ROB™ Kernel  v8.307
 All Classes Files Functions Variables Typedefs Macros Pages
Functions
er_Kernel_main.h File Reference
#include "erk_capi_types.h"

Go to the source code of this file.

Functions

DLLAPI long ER_STDCALL erKernelGetVersion (void)
 Returns the Kernels Version. More...
 
DLLAPI long ER_STDCALL erKernelSetLicensePriority (int license_priority)
 Set license priority.
Call this function before initializing the Kernel erKernelInitialize()
Parameter license_priority is one of ER_LICENSE_PRIORITY_LMNGR, ER_LICENSE_PRIORITY_LOCAL
If license_priority is not set, ER_LICENSE_PRIORITY_LMNGR is default setting, see erKernelGetLicensePriority() More...
 
DLLAPI long ER_STDCALL erKernelGetLicensePriority (int *license_priority)
 Get license priority.
Parameter license_priority is one of ER_LICENSE_PRIORITY_LMNGR, ER_LICENSE_PRIORITY_LOCAL
If license_priority is not set, ER_LICENSE_PRIORITY_LMNGR is default setting, see erKernelSetLicensePriority() More...
 
DLLAPI long ER_STDCALL erKernelSetLicenseFile (char *license_file)
 Set location and name of license file.
Call this function before initializing the Kernel erKernelInitialize()
If license_file is not set, it is supposed that the license file resides in the current folder, see erKernelGetLicenseFile() More...
 
DLLAPI long ER_STDCALL erKernelGetLicenseFile (char *license_file)
 Get location and name of license file.
If license_file is not set the string is empty, see erKernelSetLicenseFile() More...
 
DLLAPI long ER_STDCALL erKernelInitialize (char *HostApplicationPath, char *Sold_To_ID, long mode=0)
 Initializes the Kernel.
After calling this initial functions all other kernel functions are available.
Before calling this initial functions all callback functions should be defined and initialized, thus they can be used when calling this function.
The HostApplicationPath must contain the path where the host application is running. The maximum string lenght is ER_HS_MAXSTR
The Sold_To_ID contains an individual customer identifier, per default = NULL
The mode is not implemented yet, per default = 0. More...
 
DLLAPI void ER_STDCALL erKernelFree (void)
 Free all internal Kernel data.
Calling this function will delete all internal Kernel data
After calling this functions not any kernel functions is available
Even callback functions are not available. More...
 
DLLAPI long ER_STDCALL erKernelGetLicense (char *hw_id)
 Check license and supplies unique HardwareID or DongleID. More...
 
DLLAPI long ER_STDCALL erKernelGetHardwareID (char *hw_id)
 Supplies unique HardwareID or DongleID. More...
 
DLLAPI long ER_STDCALL erKernelGetOptions (char *opt)
 Supplies option string containing all enabled options. More...
 
DLLAPI long ER_STDCALL erKernelGetOptionsDisabled (char *nopt)
 Supplies option string containing all disabled options. More...
 
DLLAPI void ER_STDCALL erSetCallBack_LogProc (TerLogProc Handler)
 Define Callback function for Log Messages. More...
 
DLLAPI void ER_STDCALL erEnableCallBack_LogProc (long onoff)
 Enable/Disable Log messages.
This function enables or disables Log Messages used with callback function TerLogProc This function can be called before kernel initialization erKernelInitialize() More...
 
DLLAPI void ER_STDCALL erSetCallBack_LoadGeometryProc (TerLoadGeometryProc Handler)
 Define Callback function to load a geometry The Host application is prompted to load a geometry. More...
 
DLLAPI void ER_STDCALL erSetCallBack_UpdateGeometryProc (TerUpdateGeometryProc Handler)
 Define Callback function to updat a geometries The Host application is prompted to update a geometry. More...
 
DLLAPI void ER_STDCALL erSetCallBack_FreeGeometryProc (TerFreeGeometryProc Handler)
 Define Callback function to free Geometry The Host application is prompted to free a geometry. More...
 
DLLAPI void ER_STDCALL erSetCallBack_GetActualTravelRangesProc (TerGetActualTravelRangesProc Handler)
 Define Callback function to calculate travel ranges by host application The Host application takes care to calculate the travel ranges. More...
 
DLLAPI void ER_STDCALL erSetCallBack_NotifyProc (TerNotifyProc Handler)
 Define Callback function for notify messages The Kernel informs the host application about internel status messages. More...
 
DLLAPI void ER_STDCALL erSetCallBack_GrpSyncProc (TerGrpSyncProc Handler)
 Define Callback function for group synchonization. More...
 
DLLAPI long ER_STDCALL erInitKin (ER_HND *er_hnd, Host_HND host_hnd=NULL)
 Create a unique kinematics handle.
Opcode 101, Chapter 3.4.1, Page 3-26, same as erINITIALIZE()
Initializes one instance of a robot and creates an unique kinematics handle er_hnd belonging to a robot kinematics.
This handles is necessary to access individual data from the robot and to call other functions.
Use erLoadKin() to load an EASY-ROB rob file (*.rob) containing a kinematics. More...
 
DLLAPI long ER_STDCALL erUnloadKin (ER_HND *er_hnd)
 Unload an instance of kinematics of the Kernel.
Unloads an instance of kinematics givin by the unique kinematics handle.
Unloading a kinematics will call callback function TerFreeGeometryProc for each geometry belonging to this kinematics.
The number of loaded kinematics will be decremented.
This kinematics handle er_hnd is set to NULL and is not valid after calling this function. More...
 
DLLAPI long ER_STDCALL erConnectPositioner (ER_HND er_hnd, ER_HND er_hnd_connect)
 Connects a positioner kinematics with handle er_hnd_connect to the robot kinematics with handle er_hnd.
Remarks
Use erConnectPositionerSetSync() for synchronized motion with a positioner.
Use erConnectPositionerGetSync() to receive synchronization status between robot and the connected positioner. More...
 
DLLAPI ER_HND ER_STDCALL erConnectPositionerGetHND (ER_HND er_hnd)
 Get robots connection handle between robot and positioner.
See also erConnectPositioner() More...
 
DLLAPI long ER_STDCALL erConnectPositionerSetSync (ER_HND er_hnd, long connect_sync)
 Set robots synchronization flag for synchronization between robot and positioner.
The synchronization flag connect_sync can be one of the following values.
1: ER_SYNC_OFF, 2: ER_SYNC_ON
See also erConnectPositionerGetSync() More...
 
DLLAPI long ER_STDCALL erConnectPositionerGetSync (ER_HND er_hnd)
 Get robots synchronization flag for synchronization between robot and positioner.
See also erConnectPositionerSetSync() More...
 
DLLAPI long ER_STDCALL erConnectConveyor (ER_HND er_hnd, ER_HND er_hnd_connect)
 Connects a conveyor kinematics with handle er_hnd_connect to the robot kinematics with handle er_hnd.
Remarks
Use erConnectConveyorSetSync() for synchronized motion with a conveyor.
Use erConnectConveyorGetSync() to receive synchronization status between robot and the connected conveyor. More...
 
DLLAPI ER_HND ER_STDCALL erConnectConveyorGetHND (ER_HND er_hnd)
 Get robots connection handle between robot and conveyor.
See also erConnectConveyor() More...
 
DLLAPI long ER_STDCALL erConnectConveyorSetSync (ER_HND er_hnd, long connect_sync)
 Set robots synchronization flag for synchronization between robot and conveyor.
The synchronization flag connect_sync can be one of the following values.
1: ER_SYNC_OFF, 2: ER_SYNC_ON
See also erConnectConveyorGetSync() More...
 
DLLAPI long ER_STDCALL erConnectConveyorGetSync (ER_HND er_hnd)
 Get robots synchronization flag for synchronization between robot and conveyor.
See also erConnectConveyorSetSync() More...
 
DLLAPI long ER_STDCALL erConnectTrackMotion (ER_HND er_hnd, ER_HND er_hnd_connect)
 Connects a track motion kinematics with handle er_hnd_connect to the robot kinematics with handle er_hnd.
Remarks
Use erConnectTrackMotionSetSync() for synchronized motion with a track motion.
Use erConnectTrackMotionGetSync() to receive synchronization status between robot and the connected track motion. More...
 
DLLAPI ER_HND ER_STDCALL erConnectTrackMotionGetHND (ER_HND er_hnd)
 Get robots connection handle between robot and track motion.
See also erConnectTrackMotion() More...
 
DLLAPI long ER_STDCALL erConnectTrackMotionSetSync (ER_HND er_hnd, long connect_sync)
 Set robots synchronization flag for synchronization between robot and track motion.
The synchronization flag connect_sync can be one of the following values.
1: ER_SYNC_OFF, 2: ER_SYNC_ON, 4: ER_SYNC_CONVEYOR
See also erConnectTrackMotionGetSync() More...
 
DLLAPI long ER_STDCALL erConnectTrackMotionGetSync (ER_HND er_hnd)
 Get robots synchronization flag for synchronization between robot and track motion.
See also erConnectTrackMotionSetSync() More...
 
DLLAPI long ER_STDCALL erConnectRobot (ER_HND er_hnd, ER_HND er_hnd_connect)
 Connects a slave robot kinematics with handle er_hnd_connect to the robot kinematics with handle er_hnd.
Remarks
Use erConnectRobotSetSync() for synchronized motion with a slave robot.
Use erConnectRobotGetSync() to receive synchronization status between robot and the connected slave robot. More...
 
DLLAPI ER_HND ER_STDCALL erConnectRobotGetHND (ER_HND er_hnd)
 Get robots connection handle between robot and slave robot.
See also erConnectRobot() More...
 
DLLAPI long ER_STDCALL erConnectRobotSetSync (ER_HND er_hnd, long connect_sync)
 Set robots synchronization flag for synchronization between robot and slave robot.
The synchronization flag connect_sync can be one of the following values.
1: ER_SYNC_OFF, 2: ER_SYNC_ON
See also erConnectRobotGetSync() More...
 
DLLAPI long ER_STDCALL erConnectRobotGetSync (ER_HND er_hnd)
 Get robots synchronization flag for synchronization between robot and slave robot.
See also erConnectRobotSetSync() More...
 
DLLAPI long ER_STDCALL erUnloadTool (ER_HND er_hnd)
 Unload a kinematics tool.
Unloads a kinematics tool givin by the unique kinematics handle.
Unloading a kinematics tool will call callback function TerFreeGeometryProc for each geometry belonging to this kinematics tool.
Remarks
This kinematics handle er_hnd is still valid after calling this function. More...
 
DLLAPI long ER_STDCALL erLoadKin (ER_HND er_hnd, char *fln_rob)
 Load an EASY-ROB rob file (*.rob) containing a kinematics.
Loading a robfile will call the callback function TerLoadGeometryProc() each time when a geometry-file-name is detected in the robfile.
In this case the host application has to read or import the geometry and store it inside their own structure.
Remarks
Get a valid unique kinematics handle with erInitKin()
In case the robfile cannot be loaded, the kinematics handle is not valid anymore. Get a new kinematics handle with erInitKin() More...
 
DLLAPI long ER_STDCALL erLoadTool (ER_HND er_hnd, char *fln_tool)
 Load an EASY-ROB tool file (*.tol) containing tool (tcp) data.
Loading a toolfile will call the callback function TerLoadGeometryProc() each time when a geometry-file-name is detected in the toolfile.
. More...
 
DLLAPI long ER_STDCALL erGet_n_Kin (ER_HND er_hnd)
 Get the number of loaded kinematics. More...
 
DLLAPI long ER_STDCALL erGet_n_Kin_IR (ER_HND er_hnd)
 Get the number of loaded kinematics with more than 3 joints and inverse kinematics. More...
 
DLLAPI long ER_STDCALL erGetName (ER_HND er_hnd, char *name)
 Get the name of the robot. More...
 
DLLAPI long ER_STDCALL erGetIDs (ER_HND er_hnd, long *kin_id, long *inv_id, long *inv_sub_id)
 Get Kinematics ID of the robot.
kin_id represents the kinematics ID. It can be one of the following values.
ER_RRRRRR_ID =1, ER_TTTRRR_ID =2, ER_RRRRRR_BL_ID =3, ER_UNIV_ROB_ID =10, ER_DH_ID =11
Remarks
Most robots are modelled with universal coordinates ER_UNIV_ROB_ID. More...
 
DLLAPI long ER_STDCALL erGet_num_dofs (ER_HND er_hnd)
 Get number of active robot joints. More...
 
DLLAPI long ER_STDCALL erGet_num_dofs_passive (ER_HND er_hnd)
 Get number of passive robot joints. More...
 
DLLAPI long ER_STDCALL erGetJointTypes (ER_HND er_hnd, long *jnt_type_active)
 Get active robot joint types. An active robot joint type can be rotational JNT_TYPE_ROT or prismatic JNT_TYPE_TRANS
See also erGetJointSign(), erGetJointDirections() More...
 
DLLAPI long ER_STDCALL erGetJointTypes_passive (ER_HND er_hnd, long *jnt_type_passive)
 Get passive robot joint types. A passive robot joint type can be rotational JNT_TYPE_ROT or prismatic JNT_TYPE_TRANS
See also erGetJointDirections_passive() More...
 
DLLAPI long ER_STDCALL erGetJointDirections (ER_HND er_hnd, long *jnt_direction_active)
 Get direction of active robot joints. A robot joint direction can be JNT_DIRECTION_X, JNT_DIRECTION_Y or JNT_DIRECTION_Z
See also erGetJointSign(), erGetJointTypes() More...
 
DLLAPI long ER_STDCALL erGetJointDirections_passive (ER_HND er_hnd, long *jnt_direction_passive)
 Get direction of passive robot joints. A robot joint direction can be JNT_DIRECTION_X, JNT_DIRECTION_Y or JNT_DIRECTION_Z
See also erGetJointTypes_passive() More...
 
DLLAPI long ER_STDCALL erGetJointChainTypes (ER_HND er_hnd, long *jnt_chain_type_active)
 Get chain type of active robot joints. A robot chain type can be JNT_CHAIN_TYPE_CHAIN, JNT_CHAIN_TYPE_NO_CHAIN or JNT_CHAIN_TYPE_SEP_NO_CHAIN
. More...
 
DLLAPI long ER_STDCALL erGetJointChainTypes_passive (ER_HND er_hnd, long *jnt_chain_type_passive)
 Get chain type of passive robot joints. A robot chain type can be JNT_CHAIN_TYPE_CHAIN, JNT_CHAIN_TYPE_NO_CHAIN or JNT_CHAIN_TYPE_SEP_NO_CHAIN
. More...
 
DLLAPI long ER_STDCALL erGetJointAttachDof_active (ER_HND er_hnd, long *jnt_attach_dof_active)
 Get Attach-Dof of active robot joints. An active joint with chain type JNT_CHAIN_TYPE_CHAIN is attached to an active or passive joint.
A valid Attach-Dof number for such an active joint is [0..num_dof], whereby num_dof represents the number of active joints
A negative Attach-Dof value of -99 means that the active joint has a chain type of JNT_CHAIN_TYPE_NO_CHAIN or JNT_CHAIN_TYPE_SEP_NO_CHAIN. More...
 
DLLAPI long ER_STDCALL erGetJointAttachDof_passive (ER_HND er_hnd, long *jnt_attach_dof_passive)
 Get Attach-Dof of passive robot joints. A passive joint is attached to an active joint. A valid Attach-Dof number number is [0..num_dof], whereby num_dof represents the number of active joints
A negative Attach-Dof represents an error. More...
 
DLLAPI long ER_STDCALL erGetMoveBaseMode (ER_HND er_hnd, long *move_base_mode)
 Gets moveable base mode.
A kinematics base can be fixed or moveable.
0: Robot base is fix (default)
1: Robot base is moveable. More...
 
DLLAPI long ER_STDCALL erGetMoveBasepJointIdx (ER_HND er_hnd, long *move_base_pjointidx)
 Gets passive joint idx representing the moveable base.
If a kinematics base is moveable, the move_base_pjointidx gives the index [1..number of passive joints] of the passive joints representing the moveable base.
Otherwise it is 0, see erGetMoveBaseMode(), erGetpJointMoveBase() More...
 
DLLAPI long ER_STDCALL erGetpJointMoveBase (ER_HND er_hnd, DFRAME *pjntTmb)
 Get transformation from passive joint 'pjnt' to the moveable base 'mb'.
If a kinematics base is moveable, the pjntTmb contains the transformation from passive joint 'pjnt' to the moveable base 'mb' frame.
Otherwise pjntTmb is identity, see erGetMoveBasepJointIdx(), erGetRobotBaseToMoveBase() More...
 
DLLAPI long ER_STDCALL erGetRobotBaseToMoveBase (ER_HND er_hnd, DFRAME *bTmb)
 Get transformation from robot base 'b' to the moveable base 'mb'.
If a kinematics base is moveable, the bTmb contains the transformation from robot base 'b' to the moveable base 'mb' frame.
Otherwise bTmb is identity, see erGetMoveBasepJointIdx(), erGetpJointMoveBase() More...
 
DLLAPI long ER_STDCALL erSetJoints (ER_HND er_hnd, double *q_solut)
 Set robot joint data. The kinematics joint data q_solut are in units [m] for prismatic joint type
and [rad] for rotational joint type. More...
 
DLLAPI long ER_STDCALL erSetJoint (ER_HND er_hnd, double q_solut, long jnt_no)
 Set a single robot joint data. The kinematics joint data q_solut are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of active joints with erGet_num_dofs() More...
 
DLLAPI long ER_STDCALL erGetJoints (ER_HND er_hnd, double *q_solut)
 Get robot joint data. The kinematics joint data q_solut are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of active joints with erGet_num_dofs()
Remarks
Call this function after calling the inverse kinematics transformation, erInvKinRobotBaseTip(), erInvKinWorldTip(), erInvKinRobotBaseTcp(), erInvKinWorldTcp() More...
 
DLLAPI long ER_STDCALL erGetJointSolutions (ER_HND er_hnd, double *q_solutions, long *q_warnings)
 Get all robot joint solutions. The kinematics joint data q_solutions are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of active joints with erGet_num_dofs()
Get the number of configurations with erGetNumConfigs()
Remarks
Call this function after calling the inverse kinematics transformation, erInvKinRobotBaseTip(), erInvKinWorldTip(), erInvKinRobotBaseTcp(), erInvKinWorldTcp() More...
 
DLLAPI long ER_STDCALL erGetJointSpeeds (ER_HND er_hnd, double *v_solut)
 Get robot joint speeds. The kinematics joint speeds v_solut are in units [m/s] for prismatic joint type
and [rad/s] for rotational joint type
Get the number of active joints with erGet_num_dofs() More...
 
DLLAPI long ER_STDCALL erGetJointAccels (ER_HND er_hnd, double *a_solut)
 Get robot joint accelerations. The kinematics joint accelerations a_solut are in units [m/s^2] for prismatic joint type
and [rad/s^2] for rotational joint type
Get the number of active joints with erGet_num_dofs() More...
 
DLLAPI long ER_STDCALL erGetJoints_passive (ER_HND er_hnd, double *q_passive)
 Get passive robot joint data. The kinematics passive joint data q_passive are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of passive joints with erGet_num_dofs_passive() More...
 
DLLAPI long ER_STDCALL erSetConfig (ER_HND er_hnd, long config)
 Set robot configuration
A new robot configuration takes effect when calling the inverse kinematics transformation.
See The config is valid for 1 to number of possible configurations, see erGetNumConfigs()
Remarks
The motion planner can change the configuration only for the motion types ER_JOINT (ER_PTP) or ER_SLEW.
In case of CP (continuous path, i.e. ER_LIN or ER_CIRC), a givin configuration will be ignored. More...
 
DLLAPI long ER_STDCALL erGetConfig (ER_HND er_hnd, long *config)
 Get current robot configuration
Gets current robot configuration. See also erSetConfig().
The config is valid for 1 to number of possible configurations, see erGetNumConfigs(). More...
 
DLLAPI long ER_STDCALL erFindConfig (ER_HND er_hnd, long *config)
 Find current robot configuration
Finds current robot configuration, depending on current robot joint location.
The config is valid for 1 to number of possible configurations, see erGetNumConfigs()
Remarks
If the robot configuration cannot be found, a notify message ER_NOTIFY_CODE_FIND_CONFIG_FAILED will be generated. More...
 
DLLAPI long ER_STDCALL erGetNumConfigs (ER_HND er_hnd, long *num_configs)
 Get number of possible robot configurations. More...
 
DLLAPI long ER_STDCALL erInvKinRobotBaseTip (ER_HND er_hnd, DFRAME *bTt)
 Calculating the inverse kinematics transformation.
The bTt is the location of the flange w.r.t. robots base.
Get the calculated robot joint data with erGetJoints(). More...
 
DLLAPI long ER_STDCALL erInvKinWorldTip (ER_HND er_hnd, DFRAME *iTt)
 Calculating the inverse kinematics transformation.
The iTt is the location of the flange w.r.t. inertia (world).
Get the calculated robot joint data with erGetJoints(). More...
 
DLLAPI long ER_STDCALL erInvKinRobotBaseTcp (ER_HND er_hnd, DFRAME *bTw)
 Calculating the inverse kinematics transformation.
The bTw is the location of the tcp w.r.t. robots base.
Get the calculated robot joint data with erGetJoints(). More...
 
DLLAPI long ER_STDCALL erInvKinWorldTcp (ER_HND er_hnd, DFRAME *iTw)
 Calculating the inverse kinematics transformation.
The iTw is the location of the tcp w.r.t. inertia (world).
Get the calculated robot joint data with erGetJoints(). More...
 
DLLAPI long ER_STDCALL erSetTool (ER_HND er_hnd, DFRAME *tTw)
 Set robot tool (TCP) data w.r.t. robots flange. More...
 
DLLAPI long ER_STDCALL erGetTool (ER_HND er_hnd, DFRAME *tTw)
 Get robot tool (TCP) data w.r.t. robots flange. More...
 
DLLAPI long ER_STDCALL erSetBaseRobotBase (ER_HND er_hnd, DFRAME *bTbase)
 Set $BASE (wobj) w.r.t robot base.
The $BASE frame has only effect when IPO_MODE_BASE is set in erSetExtTcpMode()
All targets are defined w.r.t to this BASE frame (program shifting) More...
 
DLLAPI long ER_STDCALL erGetBaseRobotBase (ER_HND er_hnd, DFRAME *bTbase)
 Get $BASE (wobj) w.r.t robot base.
The $BASE frame has only effect when IPO_MODE_BASE is set in erSetExtTcpMode()
All targets are defined w.r.t to this BASE frame (program shifting) More...
 
DLLAPI long ER_STDCALL erSetBaseWorld (ER_HND er_hnd, DFRAME *iTbase)
 Set $BASE (wobj) w.r.t inertia (world). The $BASE frame has only effect when IPO_MODE_BASE is set in erSetExtTcpMode()
All targets are defined w.r.t to this BASE frame (program shifting) More...
 
DLLAPI long ER_STDCALL erGetBaseWorld (ER_HND er_hnd, DFRAME *iTbase)
 Get $BASE (wobj) w.r.t inertia (world). The $BASE frame has only effect when IPO_MODE_BASE is set in erSetExtTcpMode()
All targets are defined w.r.t to this BASE frame (program shifting) More...
 
DLLAPI long ER_STDCALL erSetRobotBase (ER_HND er_hnd, DFRAME *iTb)
 Set robot base location w.r.t. world. More...
 
DLLAPI long ER_STDCALL erGetRobotBase (ER_HND er_hnd, DFRAME *iTb)
 Get robot base location w.r.t. world. More...
 
DLLAPI long ER_STDCALL erGetRobotBaseTip (ER_HND er_hnd, DFRAME *bTt)
 Get robot tip (flange) location w.r.t. robot base. More...
 
DLLAPI long ER_STDCALL erGetRobotBaseTcp (ER_HND er_hnd, DFRAME *bTw)
 Get robot tcp location w.r.t. robot base. More...
 
DLLAPI long ER_STDCALL erGetWorldTip (ER_HND er_hnd, DFRAME *iTt)
 Get robot tip location w.r.t. inertia (world) coorsys. More...
 
DLLAPI long ER_STDCALL erGetWorldTcp (ER_HND er_hnd, DFRAME *iTw)
 Get robot tcp location w.r.t. inertia (world) coorsys. More...
 
DLLAPI long ER_STDCALL erUpdateKin (ER_HND er_hnd)
 Updates the complete kinematics. This function calculates the location of all axis coorsys, the robots tip and tcp w.r.t. robot base.
In most cases the forward kinematics calculation is executed.
Call this function first, before retrieving the location of axis coorsys. More...
 
DLLAPI long ER_STDCALL erGetJointFrameRobotBase (ER_HND er_hnd, long active_jnt_no, DFRAME *bTax)
 Get location of active joint coorsys w.r.t robot base.
Get the number of active joints with erGet_num_dofs() More...
 
DLLAPI long ER_STDCALL erGetJointFrameRobotBase_passive (ER_HND er_hnd, long passive_jnt_no, DFRAME *bTax)
 Get location of passive joint coorsys w.r.t robot base.
Get the number of passive joints with erGet_num_dofs_passive() More...
 
DLLAPI long ER_STDCALL erGetJointFrameWorld (ER_HND er_hnd, long active_jnt_no, DFRAME *iTax)
 Get location of active joint coorsys w.r.t innertia (world).
Get the number of active joints with erGet_num_dofs() More...
 
DLLAPI long ER_STDCALL erGetJointFrameWorld_passive (ER_HND er_hnd, long passive_jnt_no, DFRAME *iTax)
 Get location of passive joint coorsys w.r.t innertia (world).
Get the number of passive joints with erGet_num_dofs_passive() More...
 
DLLAPI long ER_STDCALL erSetExtTcpRobotBase (ER_HND er_hnd, DFRAME *bText, long use_ext_flange)
 Set location of external TCP w.r.t robot base.
Exeption: If use_ext_flange is set, the external TCP w.r.t is defined w.r.t. the (tip) flange of a positioner for example. More...
 
DLLAPI long ER_STDCALL erGetExtTcpRobotBase (ER_HND er_hnd, DFRAME *bText)
 Get location of external TCP w.r.t robot base. More...
 
DLLAPI long ER_STDCALL erSetExtTcpWorld (ER_HND er_hnd, DFRAME *iText)
 Set location of external TCP w.r.t inertia (world). More...
 
DLLAPI long ER_STDCALL erGetExtTcpWorld (ER_HND er_hnd, DFRAME *iText)
 Get location of external TCP w.r.t inertia (world). More...
 
DLLAPI long ER_STDCALL erSetExtTcpMode (ER_HND er_hnd, long ext_tcp_mode)
 Set external TCP mode.
The external TCP can be IPO_MODE_BASE (tool guided) or IPO_MODE_TOOL (work object guided) More...
 
DLLAPI long ER_STDCALL erGetExtTcpMode (ER_HND er_hnd, long *ext_tcp_mode)
 Get external TCP mode.
The external TCP can be IPO_MODE_BASE (tool guided) or IPO_MODE_TOOL (work object guided) More...
 
DLLAPI long ER_STDCALL erGetInvKinID (ER_HND er_hnd, long *invkin_id)
 Inverse kinematics ID for cRobot.
. More...
 
DLLAPI long ER_STDCALL erGetInvKinSubID (ER_HND er_hnd, long *invkinsub_id)
 Inverse kinematics Sub-ID for cRobot.
. More...
 
DLLAPI long ER_STDCALL erSetJointSolutions (ER_HND er_hnd, double *q_solutions, long *q_warnings)
 Set all robot joint solutions. The kinematics joint data q_solutions are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of active joints with erGet_num_dofs()
Get the number of configurations with erGetNumConfigs()
Remarks
Call this function after calling the inverse kinematics transformation, erInvKinRobotBaseTip(), erInvKinWorldTip(), erInvKinRobotBaseTcp(), erInvKinWorldTcp() More...
 
DLLAPI long ER_STDCALL erSetJointDyn (ER_HND er_hnd, double q_dyn, long jnt_no)
 Set a single actual robot joint data. The kinematics joint data q_dyn are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of active joints with erGet_num_dofs() More...
 
DLLAPI long ER_STDCALL erGetRobotBasetoFirstJoint (ER_HND er_hnd, DFRAME *T)
 
DLLAPI long ER_STDCALL erGetJointFrameActiveNext (ER_HND er_hnd, long active_jnt_no, DFRAME *T)
 
DLLAPI long ER_STDCALL erSetJointFrameActiveNext (ER_HND er_hnd, long active_jnt_no, DFRAME *T)
 
DLLAPI long ER_STDCALL erGetJointFrameActiveLast (ER_HND er_hnd, long active_jnt_no, DFRAME *T)
 
DLLAPI long ER_STDCALL erSetJointFrameActiveLast (ER_HND er_hnd, long active_jnt_no, DFRAME *T)
 
DLLAPI long ER_STDCALL erGetJointFramePassiveNext (ER_HND er_hnd, long passive_jnt_no, DFRAME *T)
 
DLLAPI long ER_STDCALL erSetJointFramePassiveNext (ER_HND er_hnd, long passive_jnt_no, DFRAME *T)
 
DLLAPI long ER_STDCALL erGetJointFramePassiveLast (ER_HND er_hnd, long passive_jnt_no, DFRAME *T)
 
DLLAPI long ER_STDCALL erSetJointFramePassiveLast (ER_HND er_hnd, long passive_jnt_no, DFRAME *T)
 
DLLAPI void **ER_STDCALL erGet_erk_kin_usr_ptr (ER_HND er_hnd)
 
DLLAPI long ER_STDCALL erSetHomepos (ER_HND er_hnd, double *homepos)
 Set robot joint homeposition. The kinematics joint homepos are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs() More...
 
DLLAPI long ER_STDCALL erGetHomepos (ER_HND er_hnd, double *homepos)
 Get robot joint homeposition. The kinematics joint homepos are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs() More...
 
DLLAPI long ER_STDCALL erSetSweMin (ER_HND er_hnd, double *swe_min)
 Set fix minimum travel ranges. The kinematics travel ranges swe_min are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs() More...
 
DLLAPI long ER_STDCALL erGetSweMin (ER_HND er_hnd, double *swe_min)
 Get fix minimum travel ranges. The kinematics travel ranges swe_min are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs() More...
 
DLLAPI long ER_STDCALL erGetSweMinCalc (ER_HND er_hnd, double *swe_min_calc)
 Get calculated minimum travel ranges. The kinematics calculated travel ranges swe_min_calc are in units [m] for prismatic joint type
and [rad] for rotational joint type
Use erGetSweCalcMode() to find out if travel ranges are fix or depending on equations
Get the number of joints with erGet_num_dofs() More...
 
DLLAPI long ER_STDCALL erSetSweMax (ER_HND er_hnd, double *swe_max)
 Set fix maximum travel ranges. The kinematics travel ranges swe_max are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs() More...
 
DLLAPI long ER_STDCALL erGetSweMax (ER_HND er_hnd, double *swe_max)
 Get fix maximum travel ranges. The kinematics travel ranges swe_max are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs() More...
 
DLLAPI long ER_STDCALL erGetSweMaxCalc (ER_HND er_hnd, double *swe_max_calc)
 Get calculated maximum travel ranges. The kinematics calculated travel ranges swe_max_calc are in units [m] for prismatic joint type
and [rad] for rotational joint type
Use erGetSweCalcMode() to find out if travel ranges are fix or depending on equations
Get the number of joints with erGet_num_dofs() More...
 
DLLAPI long ER_STDCALL erGetSweMinMaxCalc (ER_HND er_hnd, double *swe_min_calc, double *swe_max_calc)
 Get calculated minimum and maximum travel ranges. The kinematics calculated travel ranges swe_min_calc and swe_max_calc are in units [m] for prismatic joint type
and [rad] for rotational joint type
Use erGetSweCalcMode() to find out if travel ranges are fix or depending on equations
Get the number of joints with erGet_num_dofs() More...
 
DLLAPI long ER_STDCALL erGetSweCalcMode (ER_HND er_hnd, long *swe_calc_mode)
 Get calculation mode for travel ranges Travel ranges can be fixed or depending on joints by a formular for example. More...
 
DLLAPI long ER_STDCALL erSetSweMin_passive (ER_HND er_hnd, double *swe_min_passive)
 Set fix minimum travel ranges for passive joints. The kinematics travel ranges swe_min_passive are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs_passive() More...
 
DLLAPI long ER_STDCALL erGetSweMin_passive (ER_HND er_hnd, double *swe_min_passive)
 Get fix minimum travel ranges from passive joints. The kinematics travel ranges swe_min_passive are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of passive joints with erGet_num_dofs_passive() More...
 
DLLAPI long ER_STDCALL erSetSweMax_passive (ER_HND er_hnd, double *swe_max_passive)
 Set fix maximum travel ranges for passive joints. The kinematics travel ranges swe_max_passive are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs_passive() More...
 
DLLAPI long ER_STDCALL erGetSweMax_passive (ER_HND er_hnd, double *swe_max_passive)
 Get fix maximum travel ranges from passive joints. The kinematics travel ranges swe_max_passive are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of passive joints with erGet_num_dofs_passive() More...
 
DLLAPI long ER_STDCALL erGetConfigName (ER_HND er_hnd, long config_idx, char *config_name)
 Get the name of robot configuration. Get the number of configurations with erGetNumConfigs()
. More...
 
DLLAPI long ER_STDCALL erGetJointName (ER_HND er_hnd, long active_jnt_no, char *jnt_name)
 Get the name of active robot joint. More...
 
DLLAPI long ER_STDCALL erGetJointName_passive (ER_HND er_hnd, long passive_jnt_no, char *jnt_name_passive)
 Get the name of passive robot joint. More...
 
DLLAPI long ER_STDCALL erSetJointSign (ER_HND er_hnd, double *joint_sign)
 Set sign of robot joints. A robot joint sign can be positive +1 or negative -1. More...
 
DLLAPI long ER_STDCALL erGetJointSign (ER_HND er_hnd, double *joint_sign)
 Get sign of robot joints.
A robot joint sign can be positive +1 or negative -1.
See also erGetJointTypes(), erGetJointDirections() More...
 
DLLAPI long ER_STDCALL erSetJointOffset (ER_HND er_hnd, double *joint_offset)
 Set offset of robot joints.
Robot joint offsets joint_offset are in units [m] for prismatic joint type and [rad] for rotational joint type. More...
 
DLLAPI long ER_STDCALL erGetJointOffset (ER_HND er_hnd, double *joint_offset)
 Get offset of robot joints.
Robot joint offsets joint_offset are in units [m] for prismatic joint type and [rad] for rotational joint type. More...
 
DLLAPI long ER_STDCALL erSetVqMax (ER_HND er_hnd, double *vq_max)
 Set maximum of robot joint speeds.
Robot joint speeds vq_max are in units [m/s] for prismatic joint type and [rad/s] for rotational joint type. More...
 
DLLAPI long ER_STDCALL erGetVqMax (ER_HND er_hnd, double *vq_max)
 Get maximum of robot joint speeds.
Robot joint speeds vq_max are in units [m/s] for prismatic joint type and [rad/s] for rotational joint type. More...
 
DLLAPI long ER_STDCALL erSetAqMax (ER_HND er_hnd, double *aq_max)
 Set maximum of robot joint accelerations.
Robot joint accelerations aq_max are in units [m/s^2] for prismatic joint type and [rad/s^2] for rotational joint type. More...
 
DLLAPI long ER_STDCALL erGetAqMax (ER_HND er_hnd, double *aq_max)
 Get maximum of robot joint accelerations.
Robot joint accelerations aq_max are in units [m/s^2] for prismatic joint type and [rad/s^2] for rotational joint type. More...
 
DLLAPI long ER_STDCALL erSetVxMax (ER_HND er_hnd, double vx_max)
 Set maximum cartesian speed. More...
 
DLLAPI long ER_STDCALL erGetVxMax (ER_HND er_hnd, double *vx_max)
 Get maximum cartesian speed. More...
 
DLLAPI long ER_STDCALL erSetVxOriMax (ER_HND er_hnd, double vx_ori_max)
 Set maximum cartesian orientation speed. More...
 
DLLAPI long ER_STDCALL erGetVxOriMax (ER_HND er_hnd, double *vx_ori_max)
 Get maximum cartesian orientation speed. More...
 
DLLAPI long ER_STDCALL erSetAxMax (ER_HND er_hnd, double ax_max)
 Set maximum cartesian acceleration. More...
 
DLLAPI long ER_STDCALL erGetAxMax (ER_HND er_hnd, double *ax_max)
 Get maximum cartesian acceleration. More...
 
DLLAPI long ER_STDCALL erSetAxOriMax (ER_HND er_hnd, double ax_ori_max)
 Set maximum cartesian orientation acceleration. More...
 
DLLAPI long ER_STDCALL erGetAxOriMax (ER_HND er_hnd, double *ax_ori_max)
 Get maximum cartesian orientation acceleration. More...
 
DLLAPI long ER_STDCALL erGetBackLink (ER_HND er_hnd, long *backlink)
 Get robot back link status, obsolete function, use erGetBacklink() More...
 
DLLAPI long ER_STDCALL erSetBacklink (ER_HND er_hnd, long backlink)
 Set robot back link status
The back link status can be one of the following values.
KIN_BACK_LINK_NO=0, KIN_BACK_LINK_YES =1 or KIN_BACK_LINK_UNKNOWN =2
see also erGetBacklink() More...
 
DLLAPI long ER_STDCALL erGetBacklink (ER_HND er_hnd, long *backlink)
 Get robot back link status
The back link status can be one of the following values.
KIN_BACK_LINK_NO=0, KIN_BACK_LINK_YES =1 or KIN_BACK_LINK_UNKNOWN =2
see also erSetBacklink() More...
 
DLLAPI long ER_STDCALL erSetAxis_couplingA2A3 (ER_HND er_hnd, long axis_couplingA2A3)
 Set robot axis coupling between axis 2 and 3
The axis coupling can be one of the following values.
KIN_A2A3_COUPLING_NO=0, KIN_A2A3_COUPLING_YES =1 or KIN_A2A3_COUPLING_UNKNOWN =2
see also erGetAxis_couplingA2A3() More...
 
DLLAPI long ER_STDCALL erGetAxis_couplingA2A3 (ER_HND er_hnd, long *axis_couplingA2A3)
 Get robot axis coupling between axis 2 and 3
The axis coupling can be one of the following values.
KIN_A2A3_COUPLING_NO=0, KIN_A2A3_COUPLING_YES =1 or KIN_A2A3_COUPLING_UNKNOWN =2
see also erSetAxis_couplingA2A3() More...
 
DLLAPI long ER_STDCALL erSetCounter_weight (ER_HND er_hnd, long counter_weight)
 Set robot counter weight
The robot counter weight can be one of the following values.
KIN_COUNTER_WEIGHT_NO=0, KIN_COUNTER_WEIGHT_YES =1 or KIN_COUNTER_WEIGHT_UNKNOWN =2
see also erGetCounter_weight() More...
 
DLLAPI long ER_STDCALL erGetCounter_weight (ER_HND er_hnd, long *counter_weight)
 Get robot counter weight
The robot counter weight can be one of the following values.
KIN_COUNTER_WEIGHT_NO=0, KIN_COUNTER_WEIGHT_YES =1 or KIN_COUNTER_WEIGHT_UNKNOWN =2
see also erSetCounter_weight() More...
 
DLLAPI long ER_STDCALL erSetTurn_interval (ER_HND er_hnd, double *turn_interval)
 Set the turn interval for each robot joints
The kinematics turn interval turn_interval are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs()
See also erGetTurn_interval() More...
 
DLLAPI long ER_STDCALL erGetTurn_interval (ER_HND er_hnd, double *turn_interval)
 Get the turn interval for each robot joints
The kinematics turn interval turn_interval are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs()
See also erSetTurn_interval() More...
 
DLLAPI long ER_STDCALL erSetTurn_offset (ER_HND er_hnd, double *turn_offset)
 Set the turn offset for each robot joints
The kinematics turn offset turn_offset are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs()
See also erGetTurn_offset() More...
 
DLLAPI long ER_STDCALL erGetTurn_offset (ER_HND er_hnd, double *turn_offset)
 Get the turn offset for each robot joints
The kinematics turn offset turn_offset are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs()
See also erSetTurn_offset() More...
 
DLLAPI long ER_STDCALL erSetTurn_value (ER_HND er_hnd, long *turn_value)
 Set the turn value for each robot joint
The turn value turn_value determine the desired Turn in the target for the inverse kinematics calculation and for the trajectory planning
It takes effect if ER_PTP_TARGET_CALC_MODE_TURNS is set. The givin turn value must be a valid value and depends on the turn interval erSetTurn_interval() and the turn offset erSetTurn_offset(),
and as well from the robot joint location and its configuration.
Get the number of joints with erGet_num_dofs()
See also erGetTurn_value() More...
 
DLLAPI long ER_STDCALL erGetTurn_value (ER_HND er_hnd, long *turn_value)
 Get the turn value for each robot joints
The turn value turn_value determine the desired Turn in the target for the inverse kinematics calculation and for the motion planning
It takes effect if ER_PTP_TARGET_CALC_MODE_TURNS is set. Get the number of joints with erGet_num_dofs()
See also erSetTurn_value() More...
 
DLLAPI long ER_STDCALL erINITIALIZE (ER_HND *er_hnd, Host_HND host_hnd=NULL)
 Create a unique kinematics handle.
Opcode 101, Chapter 3.4.1, Page 3-26, same as erInitKin()
Initializes one instance of a robot and creates an unique kinematics handle er_hnd belonging to a robot kinematics.
This handles is necessary to access individual data from the robot and to call other functions. More...
 
DLLAPI long ER_STDCALL erRESET (ER_HND er_hnd)
 Resets an instance of a robot to an initial state.
Opcode 102, Chapter 3.4.1, Page 3-29
Settings are. More...
 
DLLAPI long ER_STDCALL erTERMINATE (ER_HND *er_hnd)
 Terminates an instance of a robot of the Kernel
Opcode 103, Chapter 3.4.1, Page 3-30
See erUnloadKin() More...
 
DLLAPI long ER_STDCALL erSET_INITIAL_POSITION (ER_HND er_hnd, INITIAL_POSITION_DATA *p_initial_position_data)
 Sets the robot model to a position according to the input data
Opcode 116, Chapter 3.4.3, Page 3-50
Remarks
After initialization of the Kernel and after jogging the robot in the Host-Application, this function must be called at least once, before the erSET NEXT TARGET() function can be called. More...
 
DLLAPI long ER_STDCALL erSELECT_TRACKING (ER_HND er_hnd, long conveyor_flags)
 Selects the Tracking On or Off in the Kernel.
Opcode 146, Chapter 3.4.7, Page 3-93
Function not supported
In conveyor_flags, each of the 32 bits specifies if the corresponding conveyor is on or off:
Bit on (1): Conveyor on, Bit off (0): Conveyor off. More...
 
DLLAPI long ER_STDCALL erSET_CONVEYOR_POSITION (ER_HND er_hnd, long input_format, long conveyor_flags, double conveyor_pos)
 Sends the conveyor position to the Kernel.
Opcode 147, Chapter 3.4.7, Page 3-94
Function not supported
The input_format specifies the format of the input to this function. Can be one of the following values:
1: Joint encoder, 2: Joint angle/distance
In conveyor_flags, each of the 32 bits specifies if the corresponding conveyor is on or off:
Bit on (1): Conveyor on, Bit off (0): Conveyor off. More...
 
DLLAPI long ER_STDCALL erDEFINE_EVENT (ER_HND er_hnd, long event_id, long target_id, double resolution, long type_of_event, double event_spec)
 Defines an internal asynchronous event that is to be generated relative to position and/or time in the Kernel.
Opcode 148, Chapter 3.4.8, Page 3-96
Function not supported More...
 
DLLAPI long ER_STDCALL erCANCEL_EVENT (ER_HND er_hnd, long event_id)
 This function makes it possible to cancel an event previously defined in the Kernel by the erDEFINE_EVENT() function.
Opcode 149, Chapter 3.4.8, Page 3-99
Function not supported More...
 
DLLAPI long ER_STDCALL erGET_EVENT (ER_HND er_hnd, long event_nr)
 This function gets information about an internal asynchronous event that occurred in the Kernel.
Opcode 150, Chapter 3.4.8, Page 3-100
Function not supported More...
 
DLLAPI long ER_STDCALL erGET_MESSAGE (ER_HND er_hnd, long message_number)
 Gives information about controller messages that occurred.
Opcode 154, Chapter 3.4.9, Page 3-104
Function not supported Use notify messages instead TErNotifyData. More...
 
DLLAPI long ER_STDCALL erSetTrackingWindow (ER_HND er_hnd, long active, double up, double down, TErTrackingWindowID id_tw, char *name=NULL)
 Activates and deactivates the boundaries for a Tracking Window.
This function enables a tracking window (typical for a painting applications) and defines the boudary Up- and Down-Stream values.
This function works in conjunction with erConnectConveyor(), erConnectConveyorSetSync() and erSetconveyorStartCondition()
Remarks
Connect the robot first with a conveyor, using erConnectConveyor(), and set the synchronization to ER_SYNC_ON, using erConnectConveyorSetSync(), before activating the tracking window.
A tracking window can have one of the following status:
0: TRK_WND_NOT_ACTIVE, 1: TRK_WND_WAITING, 2: TRK_WND_INSIDE or 3: TRK_WND_OUT_OF_BOUNDARY
and will be obtained with the NEXT_STEP_DATA when calling erGET_NEXT_STEP()
Activating a tracking window sets the status to TRK_WND_WAITING.
Deactivating a tracking window sets the status to TRK_WND_NOT_ACTIVE. More...
 
DLLAPI long ER_STDCALL erSetconveyorStartCondition (ER_HND er_hnd, double tx0)
 Sets the conveyor start condition.
This function set the conveyor start condition for the Tracking Window (typical for a painting applications).
The tx0 in units [m] is an offset position in X-direction and is defined w.r.t. to the flange of the conveyor device.
This function works in conjunction with erSetTrackingWindow() More...
 
DLLAPI long ER_STDCALL erSetSpeedReductionEnable (ER_HND er_hnd, long speed_reduction_enable)
 Set speed reduction enable.
If speed reduction is enabled, the robots TCP speed gets reduced (while motion execution in erGET_NEXT_STEP()) if the desired nominal joint speeds exceeds the maximum allowed joint speed, defined with erSetVqMax().
Remarks
Per default, speed reduction is enabled.
Speed reduction causes the TrajectoryTime to increase, while the ElapsedTime represents the minimum time necessary to reach the target. More...
 
DLLAPI long ER_STDCALL erGetSpeedReductionEnable (ER_HND er_hnd, long *speed_reduction_enable)
 Get speed reduction enable.
If speed reduction is enabled, the robots TCP speed gets reduced (while motion execution in erGET_NEXT_STEP()) if the desired nominal joint speeds exceeds the maximum allowed joint speed, defined with erSetVqMax().
Remarks
Per default, speed reduction is enabled.
Speed reduction causes the TrajectoryTime to increase, while the ElapsedTime represents the minimum time necessary to reach the target. More...
 
DLLAPI long ER_STDCALL erSELECT_MOTION_TYPE (ER_HND er_hnd, long motion_type)
 Selects the motion type.
Opcode 120, Chapter 3.4.4, Page 3-58
The motion_type can be one of the following values
ER_JOINT = ER_PTP = 1, ER_LIN = 2, ER_SLEW = 3, ER_CIRC = 4. More...
 
DLLAPI long ER_STDCALL erSELECT_TARGET_TYPE (ER_HND er_hnd, long target_type)
 selects one of different types for the specification of targets.
Opcode 121, Chapter 3.4.4, Page 3-59
The target_type can be one of the following values
ER_TARGET_TYPE_ABS = 0 absolute w.r.t. object frame
ER_TARGET_TYPE_ABSJOINT = 9 single axis motion More...
 
DLLAPI long ER_STDCALL erSELECT_TRAJECTORY_MODE (ER_HND er_hnd, long trajectory_on)
 Selects on or off for the trajectory mode.
Opcode 122, Chapter 3.4.4, Page 3-62
The trajectory_on can be one of the following values
0: OFF or 1: ON. More...
 
DLLAPI long ER_STDCALL erSET_ADVANCE_MOTION (ER_HND er_hnd, long Number_of_motion)
 Defines the number of motions, the motion planner may run in advance of the interpolator (look_ahead).
Opcode 127, Chapter 3.4.4, Page 3-67. More...
 
DLLAPI long ER_STDCALL erSET_MOTION_FILTER (ER_HND er_hnd, long filter_factor)
 defines the filter factor for smoothing velocity profiles of motions.
Opcode 128, Chapter 3.4.4, Page 3-68
Per default ER_MOTION_FILTER_GEO is set More...
 
DLLAPI long ER_STDCALL erREVERSE_MOTION (ER_HND er_hnd, double distance)
 Instructs to do a reverse motion.
Opcode 130, Chapter 3.4.4, Page 3-70
The robot moves backwards along the same path as it used to get to the current position. After calling this function, erGET_NEXT_STEP() should be called repeatedly in order to get the reverse motion steps. More...
 
DLLAPI long ER_STDCALL erSET_PAYLOAD_PARAMETER (ER_HND er_hnd, long storage, char *frame_id, long param_number, double param_value)
 Allows specifying payloads at different locations on the robot.
It has to be supported when the payload influences the motion planning.
E.g. the load by a tool on the flange may be specified.
Opcode 160, Chapter 3.4.4, Page 3-71
The storage pecifies where to modify the data and can be one of the following values.
1: Modify in memory, 2: Modify on disk. More...
 
DLLAPI long ER_STDCALL erSET_CONFIGURATION_CONTROL (ER_HND er_hnd, char *param_id, char *param_contents)
 Allows the setting of controller-specific data for the control of robot configurations.
Opcode 161, Chapter 3.4.4, Page 3-72
Function not supported
Use function erSetConfig(), erGetConfig() to change the robots configuration. More...
 
DLLAPI long ER_STDCALL erSET_OVERRIDE_SPEED (ER_HND er_hnd, double correction_value, long correction_type)
 Sets correction values for scaling the programmed speed during program execution.
Opcode 139, Chapter 3.4.5, Page 3-82.
The parameter correction_type specifies when the correction is effective and can be one of the following values.
0: It becomes effective at the next call to erGET_NEXT_STEP()
1: It becomes effective for the next target supplied by erSET_NEXT_TARGET()
See also erSET_OVERRIDE_SPEED_EX() More...
 
DLLAPI long ER_STDCALL erSET_OVERRIDE_ACCELERATION (ER_HND er_hnd, double correction_value, long accel_type, long correction_type)
 Sets correction values for scaling the robot acceleration.
Opcode 155, Chapter 3.4.5, Page 3-83.
The accel_type specifies the type of acceleration and can be one of the following values.
1: Acceleration, 2: Deceleration, 3: Acceleration and deceleration.
The parameter correction_type specifies when the correction is effective and can be one of the following values.
0: It becomes effective at the next call to erGET_NEXT_STEP()
1: It becomes effective for the next target supplied by erSET_NEXT_TARGET()
See also erSET_OVERRIDE_ACCELERATION_EX() More...
 
DLLAPI long ER_STDCALL erSET_OVERRIDE_SPEED_EX (ER_HND er_hnd, ER_HND er_hnd_slave, double speed_override, double tcp_speed_max=0)
 Sets override for scaling the programmed speed during program execution.
If er_hnd_slave is NULL, speed_override and tcp_speed_max set for the kinematics with handle er_hnd for the next call to erSET_NEXT_TARGET().
If er_hnd_slave is equal to er_hnd, speed_override and tcp_speed_max set for the kinematics with handle er_hnd and becomes effective immediatly, erGET_NEXT_STEP().
If er_hnd_slave is set and NOT equal to er_hnd, speed_override and tcp_speed_max set for the kinematics with handle er_hnd_slave and becomes effective immediatly, erGET_NEXT_STEP().
See also erSET_OVERRIDE_SPEED() More...
 
DLLAPI long ER_STDCALL erSET_OVERRIDE_ACCELERATION_EX (ER_HND er_hnd, ER_HND er_hnd_slave, double accel_override, double tcp_accel_max=0)
 Sets override for scaling the programmed acceleration during program execution.
If er_hnd_slave is NULL, speed_override and tcp_speed_max set for the kinematics with handle er_hnd for the next call to erSET_NEXT_TARGET().
If er_hnd_slave is equal to er_hnd, accel_override and tcp_accel_max set for the kinematics with handle er_hnd and becomes effective immediatly, erGET_NEXT_STEP().
If er_hnd_slave is set and NOT equal to er_hnd, accel_override and tcp_accel_max set for the kinematics with handle er_hnd_slave and becomes effective immediatly, erGET_NEXT_STEP().
See also erSET_OVERRIDE_ACCELERATION() More...
 
DLLAPI long ER_STDCALL erSetAutoAccel (ER_HND er_hnd, long autoaccel)
 Enables automatic calculation of acceleration depending on programmed speed.
Using AutoAccel is a proper way to come close to real cycle times.
The parameter autoaccel specifies the effect when planning a new motion and can be one of the following values.
0: ER_AUTOACCEL_MODE_OFF disables auto accel calculation for all motions
1: ER_AUTOACCEL_MODE_POS calculation for CP motions for position
2: ER_AUTOACCEL_MODE_ORI calculation for CP motions
4: ER_AUTOACCEL_MODE_AX Calculation for PTP motions
3: ER_AUTOACCEL_MODE_DEF calculation for CP motions for position and for orientation
7: ER_AUTOACCEL_MODE_ON enables calculation for all motions
Remarks
If auto accel is enabled, other acceleration functions such as erSET_JOINT_ACCELERATIONS(), erSET_CARTESIAN_POSITION_ACCELERATION() and erSET_CARTESIAN_ORIENTATION_ACCELERATION() will have no effect. More...
 
DLLAPI long ER_STDCALL erGetAutoAccel (ER_HND er_hnd, long *autoaccel)
 Get status for automatic calculation of acceleration depending on programmed speed.
Using AutoAccel is a proper way to come close to real cycle times.
The parameter autoaccel specifies the effect when planning a new motion and can be one of the following values.
0: ER_AUTOACCEL_MODE_OFF disables auto accel calculation for all motions
1: ER_AUTOACCEL_MODE_POS calculation for CP motions for position
2: ER_AUTOACCEL_MODE_ORI calculation for CP motions
4: ER_AUTOACCEL_MODE_AX Calculation for PTP motions
3: ER_AUTOACCEL_MODE_DEF calculation for CP motions for position and for orientation
7: ER_AUTOACCEL_MODE_ON enables calculation for all motions
Remarks
If auto accel is enabled, other acceleration functions such as erSET_JOINT_ACCELERATIONS(), erSET_CARTESIAN_POSITION_ACCELERATION() and erSET_CARTESIAN_ORIENTATION_ACCELERATION() will have no effect. More...
 
DLLAPI long ER_STDCALL erSetAccSet (ER_HND er_hnd, double acc, double ramp)
 Set lagging of accelerations.
Using AccSet is a proper way to come close to real cycle times when the robot carries high payloads for example.
The parameter acc and ramp are given in percentage values in the range from 20% to 100%.
acc: Acceleration and Deceleration as percentage value of normal values.
ramp: Change of Acceleration and Deceleration as percentage value of normal values. More...
 
DLLAPI long ER_STDCALL erGetAccSet (ER_HND er_hnd, double *acc, double *ramp)
 Get lagging of accelerations.
Using AccSet is a proper way to come close to real cycle times when the robot carries high payloads for example.
The parameter acc and ramp are given in percentage values in the range from 20% to 100%.
acc: Acceleration and Deceleration as percentage value of normal values.
ramp: Change of Acceleration and Deceleration as percentage value of normal values. More...
 
DLLAPI long ER_STDCALL erSET_INTERPOLATION_TIME (ER_HND er_hnd, double InterpolationTime)
 Sets the interpolation time.
Opcode 119, Chapter 3.4.3, Page 3-56 Set the interpolation time step. This has an effect when calling erGET_NEXT_STEP()
Per default the interpolation time is set to 50ms. More...
 
DLLAPI long ER_STDCALL erSELECT_ORIENTATION_INTERPOLATION_MODE (ER_HND er_hnd, long interpolation_mode, long ori_const)
 Set orientation interpolation mode.
Opcode 123, Chapter 3.4.4, Page 3-63
The interpolation_mode is per default =1 one angle (QUATERNION)
The ori_const is 0: Orientation is variant or 1: Orientation is constant. More...
 
DLLAPI long ER_STDCALL erSELECT_CIRCULAR_ORIENTATION_INTERPOLATION_MODE (ER_HND er_hnd, long circ_orientation_interpolation_mode)
 Selects the circular orientation interpolation mode.
The parameter circ_orientation_interpolation_mode specifies how the orientation is interpolated during a circle motion and can be one of the following values.
0: ER_CIRC_ORI_INTERPOLATION_START_END, 1: ER_CIRC_ORI_INTERPOLATION_START_VIA_END, 2: ER_CIRC_ORI_INTERPOLATION_START_VIAORI_END
3: ER_CIRC_ORI_INTERPOLATION_TANGENTIAL, 4: ER_CIRC_ORI_INTERPOLATION_FIX. More...
 
DLLAPI long ER_STDCALL erSELECT_DOMINANT_INTERPOLATION (ER_HND er_hnd, long dominant_int_type, long dominant_int_param=0)
 Sets the interplation space defining the movement.
Opcode 124, Chapter 3.4.4, Page 3-66
The parameter dominant_int_type specifies the dominant interpolation type and can be one of the following values.
ER_DOMINANT_INTERPOLATION_POS, ER_DOMINANT_INTERPOLATION_ORI, ER_DOMINANT_INTERPOLATION_AXIS, ER_DOMINANT_INTERPOLATION_AUTO
The parameter dominant_int_param ( not supported) specifies an extra parameter for certain interpolation types and can be one of the following values.
2: specifies which orientation component is master.
3: specifies which axis is master.
If dominant_int_param is 0 then the controller will select an axis. More...
 
DLLAPI long ER_STDCALL erSET_JOINT_SPEEDS (ER_HND er_hnd, long all_joint_flags, long joint_flags, double speed_percent)
 sets the joint speed expressed as percentage of the maximal joint speed.
Opcode 131, Chapter 3.4.5, Page 3-74.
Remarks
If all_joint_flags is 1, the value in speed_percent is in [rad/s] for rotational joint type and in [m/s] for prismatic joint type.
It is recommended to set all_joint_flags =0 and use joint_flags, where speed_percent is a percentage value.
The maximum joint speeds can be changed with erSetVqMax() and erGetVqMax(). More...
 
DLLAPI long ER_STDCALL erSET_CARTESIAN_POSITION_SPEED (ER_HND er_hnd, double speed_value)
 Sets the speed for Cartesian motion.
Opcode 133, Chapter 3.4.5, Page 3-75. More...
 
DLLAPI long ER_STDCALL erSET_CARTESIAN_ORIENTATION_SPEED (ER_HND er_hnd, long rotation_no, double speed_ori_value)
 Sets the speed for the orientation during Cartesian motion.
Opcode 134, Chapter 3.4.5, Page 3-76.
The rotation_no should be 1. More...
 
DLLAPI long ER_STDCALL erSET_JOINT_ACCELERATIONS (ER_HND er_hnd, long all_joint_flags, long joint_flags, double accel_percent, long accel_type)
 Sets the joint accelerations expressed as percentage of the maximal joint acceleration.
Opcode 135, Chapter 3.4.5, Page 3-77.
Remarks
If all_joint_flags is 1, the value in accel_percent is in [rad/s^2] for rotational joint type and in [m/s^2] for prismatic joint type.
It is recommended to set all_joint_flags =0 and use joint_flags, where accel_percent is a percentage value.
The maximum joint accelerations can be changed with erSetAqMax() and erGetAqMax().
The accel_type specifies the type of acceleration and can be one of the following values.
1: Acceleration, 2: Deceleration, 3: Acceleration and deceleration. More...
 
DLLAPI long ER_STDCALL erSET_CARTESIAN_POSITION_ACCELERATION (ER_HND er_hnd, double accel_value, long accel_type)
 Sets acceleration for cartesian motion [m/sec^2].
Opcode 137, Chapter 3.4.5, Page 3-78.
The accel_type specifies the type of acceleration and can be one of the following values.
1: Acceleration, 2: Deceleration, 3: Acceleration and deceleration. More...
 
DLLAPI long ER_STDCALL erSET_CARTESIAN_ORIENTATION_ACCELERATION (ER_HND er_hnd, long rotation_no, double accel_ori_value, long accel_type)
 Sets acceleration for the orientation during cartesian motion [m/sec^2].
Opcode 138, Chapter 3.4.5, Page 3-79.
The rotation_no should be 1.
The accel_type specifies the type of acceleration and can be one of the following values.
1: Acceleration, 2: Deceleration, 3: Acceleration and deceleration. More...
 
DLLAPI long ER_STDCALL erGET_CARTESIAN_POSITION_ACCELERATION (ER_HND er_hnd, double *accel_value, long accel_type)
 Gets acceleration for cartesian motion [m/sec^2].
The accel_type specifies the type of acceleration and can be one of the following values.
1: Acceleration, 2: Deceleration. More...
 
DLLAPI long ER_STDCALL erGET_CARTESIAN_ORIENTATION_ACCELERATION (ER_HND er_hnd, long rotation_no, double *accel_ori_value, long accel_type)
 Gets acceleration for the orientation during cartesian motion [m/sec^2].
The rotation_no should be 1.
The accel_type specifies the type of acceleration and can be one of the following values.
1: Acceleration, 2: Deceleration. More...
 
DLLAPI long ER_STDCALL erSET_JOINT_JERKS (ER_HND er_hnd, long all_joint_flags, long joint_flags, double jerk_percent, long jerk_type)
 Sets the joint jerk expressed as a percentage of the maximal joint jerk for each specified joint.
Opcode 162, Chapter 3.4.5, Page 3-80.
Remarks
If all_joint_flags is 1, the value in jerk_percent is in [rad/s^3] for rotational joint type and in [m/s^3] for prismatic joint type.
It is recommended to set all_joint_flags =0 and use joint_flags, where jerk_percent is a percentage value.
The jerk_type specifies the type of jerk and can be one of the following values.
1: Jerk during acceleration, 2: Jerk during deceleration, 3: Jerk during acceleration and deceleration. More...
 
DLLAPI long ER_STDCALL erSET_MOTION_TIME (ER_HND er_hnd, double time_value)
 Specifies the motion time for the next motion.
Opcode 156, Chapter 3.4.5, Page 3-81. More...
 
DLLAPI long ER_STDCALL erSELECT_FLYBY_MODE (ER_HND er_hnd, long flyby_on)
 Defines rounding / flyby condition.
Opcode 140, Chapter 3.4.6, Page 3-85
Per default Flyby is disabled
In case of flyby, the robot moves through a CP target with programmed speeds and will not decelerate. Disbable flyby, to reach the target with zero speed (fine position). More...
 
DLLAPI long ER_STDCALL erSET_FLYBY_CRITERIA_PARAMETER (ER_HND er_hnd, long param_number, long joint_nr, double param_value)
 Sets the value of a flyby parameter.
Opcode 141, Chapter 3.4.6, Page 3-86
Function not supported More...
 
DLLAPI long ER_STDCALL erSELECT_FLYBY_CRITERIA (ER_HND er_hnd, long param_number)
 Selects a flyby criterion (parameter).
Opcode 142, Chapter 3.4.6, Page 3-87
Function not supported More...
 
DLLAPI long ER_STDCALL erCANCEL_FLYBY_CRITERIA (ER_HND er_hnd, long param_number)
 Cancels (unselects) a fly-by criterion.
Opcode 143, Chapter 3.4.6, Page 3-88
Function not supported More...
 
DLLAPI long ER_STDCALL erSELECT_POINT_ACCURACY (ER_HND er_hnd, long accuracy_type)
 Selects a criterion for when a target is reached.
Opcode 144, Chapter 3.4.6, Page 3-89
Function not supported More...
 
DLLAPI long ER_STDCALL erSET_POINT_ACCURACY_PARAMETER (ER_HND er_hnd, long accuracy_type, double accuracy_value)
 Sets the value of a parameter determining point accuracy.
Opcode 145, Chapter 3.4.6, Page 3-90
Function not supported More...
 
DLLAPI long ER_STDCALL erSET_NEXT_TARGET (ER_HND er_hnd, NEXT_TARGET_DATA *p_next_target_data)
 Sends the next target position. This may include intermediate position, radius and angle for circular motion.
Opcode 117, Chapter 3.4.3, Page 3-52
This function prepares the next motion based on givin target data in NEXT_TARGET_DATA.
If the return is OK, the TrajectoryTime in [sec] is calculated
Remarks
The function may pass a position and a further TargetParamValue at the same time. For some motion types the Kernel may require more than one call of erSET_NEXT_TARGET() before it can start the motion (e.g. ER_CIRC). Function erGET_NEXT_STEP() reports this as normal, returning Status = 1 (need more data) and ElapsedTime = 0. Use erSET_NEXT_TARGET_ADVANCE() to define data for the about next target. More...
 
DLLAPI long ER_STDCALL erSET_NEXT_TARGET_ADVANCE (ER_HND er_hnd, NEXT_TARGET_DATA_ADVANCE *p_next_target_data_advance)
 Sends about next target data
The function gives information about the next target, stored in NEXT_TARGET_DATA_ADVANCE
Remarks
This function should be called once, just before calling erSET_NEXT_TARGET()
Parameter AdvanceParam=2 sets all data in NEXT_TARGET_DATA_ADVANCE to default values. More...
 
DLLAPI long ER_STDCALL erSTOP_MOTION (ER_HND er_hnd)
 Stops the on-going motion toward the target.
Opcode 151, Chapter 3.4.8, Page 3-101
See also erCONTINUE_MOTION(), erCANCEL_MOTION()
Remarks
After calling this function, the erGET_NEXT_STEP() should be called repeatedly until its Status is 2 (speed is zero) in order to get the deceleration steps. More...
 
DLLAPI long ER_STDCALL erCONTINUE_MOTION (ER_HND er_hnd)
 Continues a motion that was stopped with the erSTOP_MOTION() function.
Opcode 152, Chapter 3.4.8, Page 3-102
See also erSTOP_MOTION(), erCANCEL_MOTION()
Remarks
After calling this function, the erGET_NEXT_STEP() should be called repeatedly in order to get the acceleration steps. More...
 
DLLAPI long ER_STDCALL erCANCEL_MOTION (ER_HND er_hnd)
 Cancel a motion that was stopped with erSTOP_MOTION() function.
Opcode 153, Chapter 3.4.8, Page 3-103
See also erSTOP_MOTION(), erCONTINUE_MOTION()
Remarks
This function clears any remaining target positions in the Kernel. More...
 
DLLAPI long ER_STDCALL erGET_NEXT_STEP (ER_HND er_hnd, long output_format, NEXT_STEP_DATA *p_next_step_data, double time)
 Returns the next interpolated position step
the elapsed time and supplementary information like events, joint limits and messages.
Opcode 118, Chapter 3.4.3, Page 3-54
The output_format specifies the format desired as output and can be one of the following values.
1: Joint encoder, 2: Joint angle/distance, 4: Cartesian ( w/orientation ), 5: Cartesian and joint encoder, 6: Cartesian and joint angle/distance
Per default, output_format should be set = 2
Remarks
After the target position has been set (using the erSET_NEXT_TARGET()), this function should be called repeatedly until the Status is 1 or 2, specifying that the Host-Application interpreter can continue. If Status is 1 and the Host-Application interpreter finds more target positions it should send the next one to this Kernel using the erSET_NEXT_TARGET() function before erGET_NEXT_STEP() is called again. If the Status is 1 and the Host-Application interpreter finds no more target positions it can continue to call this function until Status is 2. More...
 
DLLAPI long ER_STDCALL erGetCurrentStepData (ER_HND er_hnd, CURRENT_STEP_DATA *p_current_step_data)
 Returns interpolation data for the current interpolated step
Remarks
After the next step data are calculated, calling erGET_NEXT_STEP() , this function return additional interpolated data,
such as motion type, distance to Target, time to Target, Target ID, Override, ... More...
 
DLLAPI long ER_STDCALL erSET_OVERRIDE_POSITION (ER_HND er_hnd, DFRAME *PosOffset)
 Sets a correction offset which will be added to the path during program execution.
Opcode 129, Chapter 3.4.4, Page 3-69
This function can be used for sensor-compensated motion. It is effective at each time step. The passed value is valid until the function is called again. More...
 
DLLAPI TErTargetID ER_STDCALL erGET_CURRENT_TARGETID (ER_HND er_hnd)
 Returns the TargetID of the motion in execution.
Opcode 163, Chapter 3.4.6, Page 3-91. More...
 
DLLAPI long ER_STDCALL erInitToolPath (ER_HND er_hnd, ER_TOOLPATH_HND *er_tpth_hnd)
 Create a unique tool path handle for a kinematics. More...
 
DLLAPI long ER_STDCALL erUnloadToolPath (ER_TOOLPATH_HND *er_tpth_hnd)
 Unload an instance of a kinematics tool path. More...
 
DLLAPI long ER_STDCALL erInsertToolPath (ER_HND er_hnd, ER_TOOLPATH_HND *er_tpth_hnd, ER_TOOLPATH_HND er_tpth_hnd_ref)
 Create and insert a unique tool path handle.
The created tool path handle er_tpth_hnd is inserted before the tool path handle er_tpth_hnd_ref
Remarks
If parameter er_tpth_hnd_ref is NULL, the new tool path is appended. More...
 
DLLAPI long ER_STDCALL erSwapToolPath (ER_TOOLPATH_HND er_tpth_hnd1, ER_TOOLPATH_HND er_tpth_hnd2)
 Swap two tool pathes.
Swaps the position of two tool path handles. More...
 
DLLAPI long ER_STDCALL erToolPathGetTargetLocationNumber (ER_TOOLPATH_HND er_tpth_hnd)
 Get the number of target locations in tool path. More...
 
DLLAPI char *ER_STDCALL erToolPathName (ER_TOOLPATH_HND er_tpth_hnd)
 Device Handle belonging to tool path. More...
 
DLLAPI long ER_STDCALL erToolPathEnable (ER_TOOLPATH_HND er_tpth_hnd, long enable)
 Enable or disable tool path
Parameter enable is one of ER_ONOFF_DISABLE, ER_ONOFF_ENABLE, ER_ONOFF_STATUS. More...
 
DLLAPI ER_HND ER_STDCALL erToolPathGetRobotHandle (ER_TOOLPATH_HND er_tpth_hnd)
 Get device robot handle belonging to tool path handle. More...
 
DLLAPI ER_HND ER_STDCALL erToolPathGetTrackMotionHandle (ER_TOOLPATH_HND er_tpth_hnd)
 Get device track motion handle belonging to tool path handle. More...
 
DLLAPI ER_HND ER_STDCALL erToolPathGetPositionerHandle (ER_TOOLPATH_HND er_tpth_hnd)
 Get device positioner handle belonging to tool path handle. More...
 
DLLAPI ER_HND ER_STDCALL erToolPathGetConveyorHandle (ER_TOOLPATH_HND er_tpth_hnd)
 Get device conveyor handle belonging to tool path handle. More...
 
DLLAPI long ER_STDCALL erToolPathSetTrackMotionHandle (ER_TOOLPATH_HND er_tpth_hnd, ER_HND hnd_TrackMotion=NULL)
 Set track motion handle belonging to tool path handle.
The tool path handles the track motion device as external axis, see erConnectTrackMotion()
hnd_TrackMotion=NULL will remove track motion handle from the tool path. More...
 
DLLAPI long ER_STDCALL erToolPathSetPositionerHandle (ER_TOOLPATH_HND er_tpth_hnd, ER_HND hnd_Positioner=NULL)
 Set positioner handle belonging to tool path handle.
The tool path handles the positioner device as external axis, see erConnectPositioner()
hnd_Positioner=NULL will remove positioner handle from the tool path. More...
 
DLLAPI long ER_STDCALL erToolPathSetConveyorHandle (ER_TOOLPATH_HND er_tpth_hnd, ER_HND hnd_Conveyor=NULL)
 Set conveyor handle belonging to tool path handle.
The tool path handles the conveyor device as external axis, see erConnectConveyor()
hnd_Conveyor=NULL will remove conveyor handle from the tool path. More...
 
DLLAPI char *ER_STDCALL erToolPathLogFileName (ER_TOOLPATH_HND er_tpth_hnd)
 Name log file. More...
 
DLLAPI char *ER_STDCALL erToolPathPrgFileName (ER_TOOLPATH_HND er_tpth_hnd)
 Name program file. More...
 
DLLAPI ER_TARGET_LOCATION_HND
ER_STDCALL 
erToolPathGetTargetLocationFirst (ER_TOOLPATH_HND er_tpth_hnd)
 Get the first 'target location handle' in the tool path. More...
 
DLLAPI ER_TARGET_LOCATION_HND
ER_STDCALL 
erToolPathGetTargetLocationLast (ER_TOOLPATH_HND er_tpth_hnd)
 Get the last 'target location handle' in the tool path. More...
 
DLLAPI long ER_STDCALL CpyMotionAttributesTemplate (ER_TOOLPATH_HND er_tpth_hnd, ER_TARGET_ATTRIBUTES_HND hnd)
 Copy attributes to template data.
The attributes defined with attribute handle hnd are copied to the attribute template belonging to the tool path handle er_tpth_hnd. More...
 
DLLAPI
ER_TARGET_ATTRIBUTES_HND
ER_STDCALL 
GetMotionAttributesTemplateHnd (ER_TOOLPATH_HND er_tpth_hnd)
 Get attributes template data from tool path.
Get the attributes template data belonging to the tool path er_tpth_hnd. More...
 
DLLAPI long ER_STDCALL CpyMoveJointTemplate (ER_TOOLPATH_HND er_tpth_hnd, ER_TARGET_MOVE_JOINT_HND hnd)
 Copy move joint data to template data.
The move joint data defined with move joint handle hnd are copied to the move joint template belonging to the tool path handle er_tpth_hnd. More...
 
DLLAPI
ER_TARGET_MOVE_JOINT_HND
ER_STDCALL 
GetMoveJointTemplate (ER_TOOLPATH_HND er_tpth_hnd)
 Get move joint template data from tool path.
Get the move joint template data belonging to the tool path er_tpth_hnd. More...
 
DLLAPI long ER_STDCALL CpyMoveCPTemplate (ER_TOOLPATH_HND er_tpth_hnd, ER_TARGET_MOVE_CP_HND hnd)
 Copy move cp data to template data.
The move cp data defined with move cp handle hnd are copied to the move cp template belonging to the tool path handle er_tpth_hnd. More...
 
DLLAPI ER_TARGET_MOVE_CP_HND
ER_STDCALL 
GetMoveCPTemplate (ER_TOOLPATH_HND er_tpth_hnd)
 Get move cp template data from tool path.
Get the move cp template data belonging to the tool path er_tpth_hnd. More...
 
DLLAPI long ER_STDCALL CpyExtAxTrackMotionTemplate (ER_TOOLPATH_HND er_tpth_hnd, ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND hnd)
 Copy external axis track motion data to template data.
The external axis track motion data defined with external axis track motion handle hnd are copied to the external axis track motion template belonging to the tool path handle er_tpth_hnd. More...
 
DLLAPI
ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND
ER_STDCALL 
GetExtAxTrackMotionTemplate (ER_TOOLPATH_HND er_tpth_hnd)
 Get external axis track motion template data from tool path.
Get the external axis track motion template data belonging to the tool path er_tpth_hnd. More...
 
DLLAPI long ER_STDCALL CpyExtAxPositionerTemplate (ER_TOOLPATH_HND er_tpth_hnd, ER_TARGET_EXTAX_DEVICE_POSITIONER_HND hnd)
 Copy external axis positioner data to template data.
The external axis positioner data defined with external axis positioner handle hnd are copied to the external axis positioner template belonging to the tool path handle er_tpth_hnd. More...
 
DLLAPI
ER_TARGET_EXTAX_DEVICE_POSITIONER_HND
ER_STDCALL 
GetExtAxPositionerTemplate (ER_TOOLPATH_HND er_tpth_hnd)
 Get external axis positioner template data from tool path.
Get the external axis positioner template data belonging to the tool path er_tpth_hnd. More...
 
DLLAPI long ER_STDCALL CpyExtAxConveyorTemplate (ER_TOOLPATH_HND er_tpth_hnd, ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND hnd)
 Copy external axis conveyor data to template data.
The external axis conveyor data defined with external axis conveyor handle hnd are copied to the external axis conveyor template belonging to the tool path handle er_tpth_hnd. More...
 
DLLAPI
ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND
ER_STDCALL 
GetExtAxConveyorTemplate (ER_TOOLPATH_HND er_tpth_hnd)
 Get external axis conveyor template data from tool path.
Get the external axis conveyor template data belonging to the tool path er_tpth_hnd. More...
 
DLLAPI long ER_STDCALL erToolPathReset (ER_TOOLPATH_HND er_tpth_hnd)
 Reset all tool path target locations.
All target locations defined in tool path er_tpth_hnd are resetted to default values and set to invalid. More...
 
DLLAPI long ER_STDCALL erToolPathResetInitRobot (ER_TOOLPATH_HND er_tpth_hnd, double *q_start=NULL)
 Set initial joint start location for the robot.
Remarks
Read current joint data from loaded robot. This method must be called before the interpolation starts. More...
 
DLLAPI long ER_STDCALL erToolPathResetInitTrackMotion (ER_TOOLPATH_HND er_tpth_hnd, double *q_start=NULL)
 Set initial joint start location for the TrackMotion.
Remarks
Read current joint data from loaded TrackMotion. This method must be called before the interpolation starts. More...
 
DLLAPI long ER_STDCALL erToolPathResetInitPositioner (ER_TOOLPATH_HND er_tpth_hnd, double *q_start=NULL)
 Set initial joint start location for the Positioner.
Remarks
Read current joint data from loaded Positioner. This method must be called before the interpolation starts. More...
 
DLLAPI long ER_STDCALL erToolPathResetInitConveyor (ER_TOOLPATH_HND er_tpth_hnd, double *q_start=NULL)
 Set initial joint start location for the Conveyor.
Remarks
Read current joint data from loaded Conveyor. This method must be called before the interpolation starts. More...
 
DLLAPI long ER_STDCALL erToolPathSetInitPos (ER_TOOLPATH_HND er_tpth_hnd, double InterpolationTime=0)
 Initializes the Trajectory Planner based on current settings.
Remarks
This method must be called before the interpolation starts, see erGET_NEXT_TOOLPATH_STEP() More...
 
DLLAPI long ER_STDCALL erGET_NEXT_TOOLPATH_STEP_INIT (ER_TOOLPATH_HND er_tpth_hnd, long cntrl=ER_MOP_GNTPS_CNTRL_INIT)
 Initializes the interpolation through a complete tool path
Parameter cntrl must be set to ER_MOP_GNTPS_CNTRL_INIT
and can be extended by an individual bitwise-inclusive-OR operator (|) of. More...
 
DLLAPI long ER_STDCALL erGET_NEXT_TOOLPATH_STEP (ER_TOOLPATH_HND er_tpth_hnd, long cntrl, NEXT_STEP_DATA *p_next_step_data=NULL, double time=0)
 Interpolation through a complete tool path
Parameter cntrl is an individual bitwise-inclusive-OR operator (|) of ER_MOP_GNTPS_CNTRL_NEXT_STEP, ER_MOP_GNTPS_CNTRL_UPDATE_GEO, ER_MOP_GNTPS_CNTRL_STEPDATA_OUT
Remarks
Before using this method, call erGET_NEXT_TOOLPATH_STEP_INIT(), see also erGET_NEXT_STEP() More...
 
DLLAPI ER_TARGET_LOCATION_HND
ER_STDCALL 
erGET_NEXT_TOOLPATH_STEP_cTargetLocation (ER_TOOLPATH_HND er_tpth_hnd)
 Get the current 'target location handle' while interpolation through a complete tool path. More...
 
DLLAPI long ER_STDCALL erGET_NEXT_TOOLPATH_STEP_TERMINATE (ER_TOOLPATH_HND er_tpth_hnd)
 Terminates interpolation
Remarks
This method must be called after the interpolation of a tool path, see erGET_NEXT_TOOLPATH_STEP() More...
 
DLLAPI long ER_STDCALL erTargetLocationReset (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Reset Target location to default values
Remarks
The target location is marked as invalid.
See ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid() to set, unset the validity of a target location or request the validity status. More...
 
DLLAPI long ER_STDCALL erAddTargetLocation (ER_TOOLPATH_HND er_tpth_hnd, ER_TARGET_LOCATION_HND *er_tarloc_hnd)
 Add a new target location to a tool path
Remarks
The new target location is reset to default values and marked as invalid, use erGetTargetLocationNumber() to receive the number of target locations in the tool path.
See ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid() to set, unset the validity of a target location or request the validity status. More...
 
DLLAPI long ER_STDCALL erInsertTargetLocation (ER_TOOLPATH_HND er_tpth_hnd, ER_TARGET_LOCATION_HND *er_tarloc_hnd, ER_TARGET_LOCATION_HND er_tarloc_hnd_ref=NULL)
 Insert a new target location to a tool path before an existing target location
Remarks
The new target location is inserted before the target location with handle er_tarloc_hnd_ref.
If parameter er_tarloc_hnd_ref is NULL, the new target location is appended, see erAddTargetLocation().
The new target location is reset to default values and marked as invalid, use erGetTargetLocationNumber() to receive the number of target locations in the tool path.
See ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid() to set, unset the validity of a target location or request the validity status. More...
 
DLLAPI long ER_STDCALL erUnloadTargetLocation (ER_TARGET_LOCATION_HND *er_tarloc_hnd)
 Unload/delete a target location from a tool path
Remarks
Use erGetTargetLocationNumber() to receive the number of remaining target locations in the tool path. More...
 
DLLAPI long ER_STDCALL erSwapTargetLocation (ER_TARGET_LOCATION_HND er_tarloc_hnd1, ER_TARGET_LOCATION_HND er_tarloc_hnd2)
 Swap the order of two target location in a tool path
Remarks
Both target location handle must be in the same tool path.
Use erGetTargetLocationIdx() to get the belonging index for each target location. More...
 
DLLAPI long ER_STDCALL erGetTargetLocationNumber (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Number of target locations in a tool path. More...
 
DLLAPI ER_HND ER_STDCALL erhGetTargetLocationER_HND (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Device handle belonging to target location. More...
 
DLLAPI ER_TARGET_LOCATION_HND
ER_STDCALL 
erGetTargetLocationFirst (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Get first target location in a tool path. More...
 
DLLAPI ER_TARGET_LOCATION_HND
ER_STDCALL 
erGetTargetLocationLast (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Get last target location in a tool path. More...
 
DLLAPI ER_TARGET_LOCATION_HND
ER_STDCALL 
erGetTargetLocationNext (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Get next target location in a tool path. More...
 
DLLAPI ER_TARGET_LOCATION_HND
ER_STDCALL 
erGetTargetLocationPrev (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Get previous target location in a tool path. More...
 
DLLAPI long ER_STDCALL erSetTargetLocation_Move_JointAbs (ER_TARGET_LOCATION_HND er_tarloc_hnd, double *JointPos, double speed_percent=0, double override_speed=0, double *Tool=0)
 Move_JointAbs, full synchronized PTP, motion definition for target location
Remarks
Use erAddTargetLocation() to create a valid target location handle er_tarloc_hnd
The target location will be set to valid after successful motion definition, see ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid() More...
 
DLLAPI long ER_STDCALL erSetTargetLocation_Move_Joint (ER_TARGET_LOCATION_HND er_tarloc_hnd, double *CartPosVec, long configuration=0, long ptp_target_calculation_mode=ER_PTP_TARGET_CALC_MODE_UNDEF, double speed_percent=0, double override_speed=0, double *Tool=0, double *Base=0)
 Move_Joint, full synchronized PTP, motion definition for target location
Remarks
Use erAddTargetLocation() to create a valid target location handle er_tarloc_hnd
The target location will be set to valid after successful motion definition, see ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid() More...
 
DLLAPI long ER_STDCALL erSetTargetLocation_Move_SlewAbs (ER_TARGET_LOCATION_HND er_tarloc_hnd, double *JointPos, double speed_percent=0, double override_speed=0, double *Tool=0)
 Move_SlewAbs, not synchronized PTP, motion definition for target location
Remarks
Use erAddTargetLocation() to create a valid target location handle er_tarloc_hnd
The target location will be set to valid after successful motion definition, see ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid() More...
 
DLLAPI long ER_STDCALL erSetTargetLocation_Move_Slew (ER_TARGET_LOCATION_HND er_tarloc_hnd, double *CartPosVec, long configuration=0, long ptp_target_calculation_mode=ER_PTP_TARGET_CALC_MODE_UNDEF, double speed_percent=0, double override_speed=0, double *Tool=0, double *Base=0)
 Move_Slew, not synchronized PTP, motion definition for target location
Remarks
Use erAddTargetLocation() to create a valid target location handle er_tarloc_hnd
The target location will be set to valid after successful motion definition, see ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid() More...
 
DLLAPI long ER_STDCALL erSetTargetLocation_Move_LIN (ER_TARGET_LOCATION_HND er_tarloc_hnd, double *CartPosVec, double speed_cp=0, double speed_ori=0, double override_speed=0, long flyby_on=-1, double *Tool=0, double *Base=0)
 Move_LIN, continious path motion definition for target location
Remarks
Use erAddTargetLocation() to create a valid target location handle er_tarloc_hnd
The target location will be set to valid after successful motion definition, see ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid() More...
 
DLLAPI long ER_STDCALL erSetTargetLocation_Move_CIRC (ER_TARGET_LOCATION_HND er_tarloc_hnd, double *CartPosVecVia, double *CartPosVec, double speed_cp=0, double speed_ori=0, double override_speed=0, long flyby_on=-1, double *Tool=0, double *Base=0)
 Move_CIRC, continious path motion definition for target location
Remarks
Use erAddTargetLocation() to create a valid target location handle er_tarloc_hnd
The target location will be set to valid after successful motion definition, see ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid() More...
 
DLLAPI ER_TARGET_HEAD_HND
ER_STDCALL 
erGetTargetLocationHeaderDataHnd (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Handle for target header data. More...
 
DLLAPI ER_TOOLPATH_HND ER_STDCALL erGetTargetLocationToolPathHnd (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Tool path handle belonging to target location handle. More...
 
DLLAPI long ER_STDCALL erGetTargetLocationIdx (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Index of target location. More...
 
DLLAPI char *ER_STDCALL erGetTargetLocationName (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Name of target location. More...
 
DLLAPI char *ER_STDCALL erGetTargetLocationNameVia (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Name of target Via location, in case of circular motion. More...
 
DLLAPI long ER_STDCALL erTargetLocationValid (ER_TARGET_LOCATION_HND er_tarloc_hnd, long valid)
 Validity of a target location
A target location is per default invalid when created e.g. ERK_CAPI_TOOLPATH_TARGETS::erAddTargetLocation() and set to valid when a motion e.g. ERK_CAPI_TOOLPATH_TARGETS::erSetTargetLocation_Move_LIN() is defined.
This method allows to ask the validity of this target location valid=2,
to set the validity of this target location valid=1,
or to unset the validity of this target location valid=0. More...
 
DLLAPI
ER_TARGET_INSTRUCTIONS_HND
ER_STDCALL 
erGetTargetLocationInstructionsHnd (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Handle for target instruction data
Remarks
Instructions are individual command or information attached to a target location. They don't influence in the calculated trajectory.
Instructions are very useful when creating a robot program using the API post processing function ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc(). More...
 
DLLAPI char *ER_STDCALL erGetInstructions_information (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Get information target instruction data for target location.
For further explanations see GetInstructionsHnd(), erSetInstructions(). More...
 
DLLAPI char *ER_STDCALL erGetInstructions_LeadInstructions (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Get LeadInstructions target instruction data for target location.
For further explanations see GetInstructionsHnd(), erSetInstructions(). More...
 
DLLAPI char *ER_STDCALL erGetInstructions_LagInstructions (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Get LagInstructions target instruction data for target location.
For further explanations see GetInstructionsHnd(), erSetInstructions(). More...
 
DLLAPI int ER_STDCALL erSetInstructions (ER_TARGET_LOCATION_HND er_tarloc_hnd, char *InfoTxt=NULL, char *LeadInst=NULL, char *LagInst=NULL)
 Set target instruction data for information, leading- and lagging instruction.
For further explanations see GetInstructionsHnd(). More...
 
DLLAPI
ER_TARGET_ATTRIBUTES_AUX_HND
ER_STDCALL 
erGetTargetLocationMotionAttributesAuxHnd (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Handle for target attributes auxiliary data. More...
 
DLLAPI
ER_TARGET_ATTRIBUTES_HND
ER_STDCALL 
erGetTargetLocationMotionAttributesHnd (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Handle for target attributes data
Typical attributes belonging to a target location are:
e.g. target_id, external TCP, Base data, Tool data , motion type, override speed, velocity profile, flyby, autoaccel, lead- and lag time, etc.
Remarks
The returned handle ER_TARGET_ATTRIBUTES_HND is used to access target attributes data. More...
 
DLLAPI long *ER_STDCALL erGetMotionAttributes_enabled (ER_TARGET_ATTRIBUTES_HND hnd)
 Enables/disables a target location
If the target location is disabled, the trajectory interpolator will skip this target. More...
 
DLLAPI TErTargetID *ER_STDCALL erGetMotionAttributes_target_id (ER_TARGET_ATTRIBUTES_HND hnd)
 unique target ID of a target location More...
 
DLLAPI double *ER_STDCALL erGetMotionAttributes_WobjCartPosVec (ER_TARGET_ATTRIBUTES_HND hnd)
 WorkObject valid for all cartesian target locations such as CartPosVec, CartPosVecVia
Using this transformation, all cartesian targets 'T' are modified to T' = WorkObj * T
see e.g. ERK_CAPI_TOOLPATH_TARGETS::erSetTargetLocation_Move_LIN() More...
 
DLLAPI long *ER_STDCALL erGetMotionAttributes_ext_tcp_mode (ER_TARGET_ATTRIBUTES_HND hnd)
 Enables/disables external TCP for a target location
IPO_MODE_BASE (tool guided) or IPO_MODE_TOOL (work object guided) More...
 
DLLAPI double *ER_STDCALL erGetMotionAttributes_BaseVec (ER_TARGET_ATTRIBUTES_HND hnd)
 Program shift Base for a target location
Base '$BASE, $UFrame' has only if IPO_MODE_BASE is set and external TCP disabled
All targets are defined w.r.t to this BASE frame (program shifting)
see inq_BaseIdx(), inq_BaseName() More...
 
DLLAPI long *ER_STDCALL erGetMotionAttributes_BaseIdx (ER_TARGET_ATTRIBUTES_HND hnd)
 Idx for program shift Base for a target location
see inq_BaseVec(), inq_BaseName()
This BaseIdx could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc() More...
 
DLLAPI char *ER_STDCALL erGetMotionAttributes_BaseName (ER_TARGET_ATTRIBUTES_HND hnd)
 Name for program shift Base for a target location
see inq_BaseVec(), inq_BaseIdx()
This BaseName could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc() More...
 
DLLAPI double *ER_STDCALL erGetMotionAttributes_extTcpBaseVec (ER_TARGET_ATTRIBUTES_HND hnd)
 external Tool (TCP) w.r.t. Robot Base or flange of positioner, for a target location
Transformation from RobotBase or from flange of positioner to external TCP
see inq_extTcpBaseIdx(), inq_extTcpBaseName() More...
 
DLLAPI long *ER_STDCALL erGetMotionAttributes_extTcpBaseIdx (ER_TARGET_ATTRIBUTES_HND hnd)
 Idx for external Tool (TCP) w.r.t. Robot Base or flange of positioner, for a target location
see inq_extTcpBaseVec(), inq_extTcpBaseName()
This extTcpBaseIdx could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc() More...
 
DLLAPI char *ER_STDCALL erGetMotionAttributes_extTcpBaseName (ER_TARGET_ATTRIBUTES_HND hnd)
 Name for external Tool (TCP) w.r.t. Robot Base or flange of positioner, for a target location
see inq_extTcpBaseVec(), inq_extTcpBaseIdx()
This extTcpBaseName could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc() More...
 
DLLAPI double *ER_STDCALL erGetMotionAttributes_extTcpWorldVec (ER_TARGET_ATTRIBUTES_HND hnd)
 external Tool (TCP) w.r.t. Robot World or flange of positioner, for a target location
Transformation from RobotWorld or from flange of positioner to external TCP
see inq_extTcpWorldIdx(), inq_extTcpWorldName() More...
 
DLLAPI long *ER_STDCALL erGetMotionAttributes_extTcpWorldIdx (ER_TARGET_ATTRIBUTES_HND hnd)
 Idx for external Tool (TCP) w.r.t. Robot World or flange of positioner, for a target location
see inq_extTcpWorldVec(), inq_extTcpWorldName()
This extTcpWorldIdx could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc() More...
 
DLLAPI char *ER_STDCALL erGetMotionAttributes_extTcpWorldName (ER_TARGET_ATTRIBUTES_HND hnd)
 Name for external Tool (TCP) w.r.t. Robot World or flange of positioner, for a target location
see inq_extTcpWorldVec(), inq_extTcpWorldIdx()
This extTcpWorldName could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc() More...
 
DLLAPI double *ER_STDCALL erGetMotionAttributes_extTcpOffsetVec (ER_TARGET_ATTRIBUTES_HND hnd)
 external Tool/TCP offset data w.r.t. extTcpBase, extTcpWorld, for a target location
Transformation from extTcpBase or extTcpWorld
see inq_extTcpOffsetIdx(), inq_extTcpOffsetName() More...
 
DLLAPI long *ER_STDCALL erGetMotionAttributes_extTcpOffsetIdx (ER_TARGET_ATTRIBUTES_HND hnd)
 Idx for external Tool/TCP offset data w.r.t. extTcpBase, extTcpWorld, for a target location
see inq_extTcpOffsetVec(), inq_extTcpOffsetName()
This extTcpOffsetIdx could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc() More...
 
DLLAPI char *ER_STDCALL erGetMotionAttributes_extTcpOffsetName (ER_TARGET_ATTRIBUTES_HND hnd)
 Name for external Tool/TCP offset data w.r.t. extTcpBase, extTcpWorld, for a target location
see inq_extTcpOffsetVec(), inq_extTcpOffsetIdx()
This extTcpOffsetName could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc() More...
 
DLLAPI double *ER_STDCALL erGetMotionAttributes_ToolVec (ER_TARGET_ATTRIBUTES_HND hnd)
 Tool (TCP) for a target location
Transformation from Tip to TCP
see inq_ToolIdx(), inq_ToolName() More...
 
DLLAPI long *ER_STDCALL erGetMotionAttributes_ToolIdx (ER_TARGET_ATTRIBUTES_HND hnd)
 Idx for Tool for a target location
see inq_ToolVec(), inq_ToolName()
This ToolIdx could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc() More...
 
DLLAPI char *ER_STDCALL erGetMotionAttributes_ToolName (ER_TARGET_ATTRIBUTES_HND hnd)
 Name for Tool for a target location
see inq_ToolVec(), inq_ToolIdx()
This ToolName could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc() More...
 
DLLAPI double *ER_STDCALL erGetMotionAttributes_ToolOffsetVec (ER_TARGET_ATTRIBUTES_HND hnd)
 ToolOffset (TCP) for a target location
Offset Transformation from TCP
see inq_ToolOffsetIdx(), inq_ToolOffsetName() More...
 
DLLAPI long *ER_STDCALL erGetMotionAttributes_ToolOffsetIdx (ER_TARGET_ATTRIBUTES_HND hnd)
 Idx for ToolOffset for a target location
see inq_ToolOffsetVec(), inq_ToolOffsetName()
This ToolOffsetIdx could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc() More...
 
DLLAPI char *ER_STDCALL erGetMotionAttributes_ToolOffsetName (ER_TARGET_ATTRIBUTES_HND hnd)
 Name for ToolOffset for a target location
see inq_ToolOffsetVec(), inq_ToolOffsetIdx()
This ToolOffsetName could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc() More...
 
DLLAPI long *ER_STDCALL erGetMotionAttributes_motype (ER_TARGET_ATTRIBUTES_HND hnd)
 Motion Type for a target location
The motion type can be one of the following values
ER_JOINT = ER_PTP = 1, ER_LIN = 2, ER_SLEW = 3, ER_CIRC = 4
Remarks
Methods such as. More...
 
DLLAPI long *ER_STDCALL erGetMotionAttributes_dom_type (ER_TARGET_ATTRIBUTES_HND hnd)
 Dominant interpolation type for a target location
The dominant interpolation type can be one of the following values.
ER_DOMINANT_INTERPOLATION_POS, ER_DOMINANT_INTERPOLATION_ORI, ER_DOMINANT_INTERPOLATION_AXIS, ER_DOMINANT_INTERPOLATION_AUTO
Remarks
Default setting is ER_DOMINANT_INTERPOLATION_AUTO. More...
 
DLLAPI long *ER_STDCALL erGetMotionAttributes_advance_motion (ER_TARGET_ATTRIBUTES_HND hnd)
 Number of motions, the motion planner may run in advance of the interpolator (look_ahead) for a target location
Remarks
Default value: 1. More...
 
DLLAPI double *ER_STDCALL erGetMotionAttributes_override_speed (ER_TARGET_ATTRIBUTES_HND hnd)
 Correction values as percentage value for scaling the programmed speed for a target location
Remarks
Default value: 100%. More...
 
DLLAPI double *ER_STDCALL erGetMotionAttributes_acc (ER_TARGET_ATTRIBUTES_HND hnd)
 Acceleration and deceleration as percentage value in the range from 20% to 100% of normal values for a target location
Remarks
Default value: 100%
Smaller values results in a smoother acceleration and deceleratio nwhen the robot carries high payloads for example. More...
 
DLLAPI double *ER_STDCALL erGetMotionAttributes_ramp (ER_TARGET_ATTRIBUTES_HND hnd)
 Change of acceleration and deceleration as percentage value in the range from 20% to 100% of normal values for a target location
Remarks
Default value: 100%
Smaller values results in a smoother acceleration and deceleration when the robot carries high payloads for example. More...
 
DLLAPI long *ER_STDCALL erGetMotionAttributes_filter_factor (ER_TARGET_ATTRIBUTES_HND hnd)
 Filter factor for smoothing velocity profiles of motions
The filter_factor is one of ER_MOTION_FILTER_GEO or ER_MOTION_FILTER_C2
Remarks
Per default ER_MOTION_FILTER_C2 is set
It makes sense to keep one filter_factor for the complete tool path. More...
 
DLLAPI long *ER_STDCALL erGetMotionAttributes_flyby_on (ER_TARGET_ATTRIBUTES_HND hnd)
 Rounding / flyby condition for a target location
In case of flyby enabled, the robot moves through a target location with programmed speeds and will not decelerate
flyby_on is one of ER_FLYBY_OFF, ER_FLYBY_ON
Remarks
Default value: ER_FLYBY_OFF. More...
 
DLLAPI double *ER_STDCALL erGetMotionAttributes_flyby_speed_percent (ER_TARGET_ATTRIBUTES_HND hnd)
 flyby by speed [%] for a target location
In case of flyby by speed, the robot starts moving into the next segment when the current speed is less then the flyby_speed_percent value.
flyby_speed_percent has only an effect if flyby is enabled and if set > 0%, see inq_flyby_on(), inq_flyby_dist()
Remarks
Default value: 0% More...
 
DLLAPI double *ER_STDCALL erGetMotionAttributes_flyby_dist (ER_TARGET_ATTRIBUTES_HND hnd)
 flyby by distance [m] for a target location
In case of flyby by distance, the robot starts moving into the next segment when the distance to the target is less then the flyby_dist value.
flyby_dist has only an effect if flyby is enabled and if set > 0 [m], see inq_flyby_on(), inq_flyby_speed_percent()
Remarks
Default value: 0 [m] More...
 
DLLAPI long *ER_STDCALL erGetMotionAttributes_autoaccel (ER_TARGET_ATTRIBUTES_HND hnd)
 Automatic calculation of acceleration depending on programmed speed for a target location
Using AutoAccel is a proper way to come close to real cycle times.
Autoaccel can be one of the following values.
0: ER_AUTOACCEL_MODE_OFF disables auto accel calculation for all motions
1: ER_AUTOACCEL_MODE_POS calculation for CP motions for position
2: ER_AUTOACCEL_MODE_ORI calculation for CP motions
4: ER_AUTOACCEL_MODE_AX Calculation for PTP motions
3: ER_AUTOACCEL_MODE_DEF calculation for CP motions for position and for orientation
7: ER_AUTOACCEL_MODE_ON enables calculation for all motions
Remarks
Default value: ER_AUTOACCEL_MODE_OFF. More...
 
DLLAPI double *ER_STDCALL erGetMotionAttributes_LeadWaitTime (ER_TARGET_ATTRIBUTES_HND hnd)
 Leading time [s] before robot will start moving to target location
Remarks
Default value: 0
Has only an effect when flyby is disabled, see inq_LagWaitTime() More...
 
DLLAPI double *ER_STDCALL erGetMotionAttributes_LagWaitTime (ER_TARGET_ATTRIBUTES_HND hnd)
 Lagging time [s] after robot reaches its target location
Remarks
Default value: 0
Has only an effect when flyby is disabled, see inq_LeadWaitTime() More...
 
DLLAPI
ER_TARGET_MOVE_JOINT_HND
ER_STDCALL 
erGetTargetLocationMoveJointHnd (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Handle for target move joint data
Typical data belonging to a move joint target location are:
target_type, speed_percent, accel_percent, JointPos , CartPosVec, configuration, ptp_target_calculation_mode, turn_value
Remarks
The returned handle ER_TARGET_MOVE_JOINT_HND is used to access target move joint data. More...
 
DLLAPI long *ER_STDCALL erGetMoveJoint_target_type (ER_TARGET_MOVE_JOINT_HND hnd)
 Target type for joint move for target location
is one of. More...
 
DLLAPI double *ER_STDCALL erGetMoveJoint_speed_percent (ER_TARGET_MOVE_JOINT_HND hnd)
 Speed_percent percentage speed definition [>0-1000%] for joint move for target location. More...
 
DLLAPI double *ER_STDCALL erGetMoveJoint_accel_percent (ER_TARGET_MOVE_JOINT_HND hnd)
 Accel_percent percentage acceleration definition [>0-1000%] for joint move for target location. More...
 
DLLAPI double *ER_STDCALL erGetMoveJoint_JointPos (ER_TARGET_MOVE_JOINT_HND hnd)
 Joint position for joint move for target location
Remarks
Use for. More...
 
DLLAPI double *ER_STDCALL erGetMoveJoint_CartPosVec (ER_TARGET_MOVE_JOINT_HND hnd)
 Cartesian position w.r.t. Base for joint move for target location
Remarks
Use for. More...
 
DLLAPI long *ER_STDCALL erGetMoveJoint_configuration (ER_TARGET_MOVE_JOINT_HND hnd)
 configuration Robot configuration [1-ER_KIN_CONFIGS] for target location
More...
 
DLLAPI long *ER_STDCALL erGetMoveJoint_ptp_target_calculation_mode (ER_TARGET_MOVE_JOINT_HND hnd)
 Ptp_target_calculation_mode for target location
is one of
ER_PTP_TARGET_CALC_MODE_SHORTEST_ANGLE, ER_PTP_TARGET_CALC_MODE_TURNS, ER_PTP_TARGET_CALC_MODE_MATH, ER_PTP_TARGET_CALC_MODE_IN_TRAVEL_RANGE, ER_PTP_TARGET_CALC_MODE_VAR_CONFIG. More...
 
DLLAPI long *ER_STDCALL erGetMoveJoint_turn_value (ER_TARGET_MOVE_JOINT_HND hnd)
 Turn value for each robot joint for joint move for target location
The turn value determine the desired Turn in the target for the inverse kinematics calculation and for the trajectory planning
It takes effect if ER_PTP_TARGET_CALC_MODE_TURNS is set, see inq_ptp_target_calculation_mode() More...
 
DLLAPI ER_TARGET_MOVE_CP_HND
ER_STDCALL 
erGetTargetLocationMoveCPHnd (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Handle for target move CP data
Typical data belonging to a move CP target location are:
target_type, speed_cp, speed_ori, accel_cp, accel_ori, CartPosVec, CartPosVecVia, interpolation_mode, orientation_interpolation_mode
Remarks
The returned handle ER_TARGET_MOVE_CP_HND is used to access target move CP data. More...
 
DLLAPI long *ER_STDCALL erGetMoveCP_target_type (ER_TARGET_MOVE_CP_HND hnd)
 Target type for CP move for target location
is always. More...
 
DLLAPI double *ER_STDCALL erGetMoveCP_speed_cp (ER_TARGET_MOVE_CP_HND hnd)
 Cartesian speed [m/s], for CP move for target location. More...
 
DLLAPI double *ER_STDCALL erGetMoveCP_speed_ori (ER_TARGET_MOVE_CP_HND hnd)
 Cartesian orientation speed [rad/s], for CP move for target location. More...
 
DLLAPI double *ER_STDCALL erGetMoveCP_accel_cp (ER_TARGET_MOVE_CP_HND hnd)
 Cartesian acceleration [m/s^2], for CP move for target location. More...
 
DLLAPI double *ER_STDCALL erGetMoveCP_accel_ori (ER_TARGET_MOVE_CP_HND hnd)
 Cartesian orientation acceleration [rad/s^2], for CP move for target location. More...
 
DLLAPI double *ER_STDCALL erGetMoveCP_CartPosVec (ER_TARGET_MOVE_CP_HND hnd)
 Cartesian position w.r.t. Base for CP move for target location
Remarks
Use for. More...
 
DLLAPI double *ER_STDCALL erGetMoveCP_CartPosVecVia (ER_TARGET_MOVE_CP_HND hnd)
 Cartesian position at VIA location w.r.t. Base for CP move for target location
Remarks
Use for. More...
 
DLLAPI long *ER_STDCALL erGetMoveCP_interpolation_mode (ER_TARGET_MOVE_CP_HND hnd)
 Orientation interpolation mode for CP move for target location
The interpolation_mode is one of =1 one angle (QUATERNION), =2 two angle (QUATERNION), =3 three angle (VARIABLE)
per default =1 one angle (QUATERNION) More...
 
DLLAPI long *ER_STDCALL erGetMoveCP_circ_orientation_interpolation_mode (ER_TARGET_MOVE_CP_HND hnd)
 Circular orientation interpolation mode for CP move for target location
The circular orientation interpolation_mode is one of. More...
 
DLLAPI
ER_TARGET_MOTION_EXEC_HND
ER_STDCALL 
erGetTargetLocationMotionExecHnd (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Handle for target execution data
Target execution data are calculated while interpolation trough the complete tool path, if the robot has reached the target
see also. More...
 
DLLAPI long ER_STDCALL erGetMotionExec_motion_success (ER_TARGET_MOTION_EXEC_HND hnd)
 Motion success is true when the robot has reached the target location successfully
Remarks
ERK_CAPI_TOOLPATH::erGET_NEXT_TOOLPATH_STEP_INIT() at the beginning of interpolation will reset motion_success for each targat location. More...
 
DLLAPI double ER_STDCALL erGetMotionExec_time_stamp (ER_TARGET_MOTION_EXEC_HND hnd)
 Time stamp - total execution time [s] at the target location, while interpolation trough the complete tool path
Remarks
ERK_CAPI_TOOLPATH::erGET_NEXT_TOOLPATH_STEP_INIT() sets the time_stamp = 0. More...
 
DLLAPI double ER_STDCALL erGetMotionExec_trajectory_time (ER_TARGET_MOTION_EXEC_HND hnd)
 Trajectory time [s], elapsed time to reach the target location, while interpolation trough the complete tool path. More...
 
DLLAPI long ER_STDCALL erGetMotionExec_configuration (ER_TARGET_MOTION_EXEC_HND hnd)
 Robot configuration, when reaching the target, while interpolation trough the complete tool path
Remarks
Normally a robot configuration will
NOT change during a CP (ER_LIN, ER_CIRC) move
Valid robot configurations are between 1 and number of possible configurations depending on robot, maximum ER_KIN_CONFIGS
A valid robot configuration can be specified with. More...
 
DLLAPI double *ER_STDCALL erGetMotionExec_JointPos (ER_TARGET_MOTION_EXEC_HND hnd)
 Joint position at target location, while interpolation trough the complete tool path. More...
 
DLLAPI double *ER_STDCALL erGetMotionExec_ExtAxValues (ER_TARGET_MOTION_EXEC_HND hnd)
 External axis values at target location, while interpolation trough the complete tool path. More...
 
DLLAPI
ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND
ER_STDCALL 
erGetTargetLocationExtAxTrackHnd (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Handle for external axis of a Track/Slider-Motion
Typical data belonging to external axis data are:
number of external axis used, synchonization type, external axis data
Remarks
External axis data should be specified after the move definition of a target location The returned handle ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND is used to access external axis data for Track/Slider-Motion
see example SetExtAxTrackMotionIdx() More...
 
DLLAPI long *ER_STDCALL erGetExtAxTrack_number_extax_used (ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND hnd)
 Number of external axis used for Track/Slider
see example GetExtAxTrackMotionHnd() More...
 
DLLAPI long *ER_STDCALL erGetExtAxTrack_sync_type (ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND hnd)
 Synchonization for Track/Slider
For a Track/Slider motion, the synchonization should be always ER_SYNC_ON
see example GetExtAxTrackMotionHnd() More...
 
DLLAPI ER_EXTAX_KIN_DATA
*ER_STDCALL 
erGetExtAxTrack_extax_data (ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND hnd, long extax_idx)
 External axis values for Track/Slider
Values ER_EXTAX_KIN_DATA are:
. More...
 
DLLAPI long ER_STDCALL erSetExtAxTrackIdx (ER_TARGET_LOCATION_HND er_tarloc_hnd, long extax_idx, double axis_value, double speed_value=0, long sync_type=ER_SYNC_UNDEF, ER_HND er_hnd_connect=0)
 Set external axis values for Track/Slider for target location
see example GetExtAxTrackMotionHnd()
Remarks
Use ERK_CAPI_TOOLPATH::erToolPathSetTrackMotionHandle() to set the Track/Slider device, belonging to this tool path. More...
 
DLLAPI
ER_TARGET_EXTAX_DEVICE_POSITIONER_HND
ER_STDCALL 
erGetTargetLocationExtAxPositionerHnd (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Handle for external axis of a Positioner/TurnTable-Motion
Typical data belonging to external axis data are:
number of external axis used, synchonization type, external axis data
Remarks
External axis data should be specified after the move definition of a target location The returned handle ER_TARGET_EXTAX_DEVICE_POSITIONER_HND is used to access external axis data for Positioner/TurnTable-Motion
see example SetExtAxPositionerIdx() More...
 
DLLAPI long *ER_STDCALL erGetExtAxPositioner_number_extax_used (ER_TARGET_EXTAX_DEVICE_POSITIONER_HND hnd)
 Number of external axis used for Positioner/TurnTable
see example GetExtAxPositionerHnd() More...
 
DLLAPI long *ER_STDCALL erGetExtAxPositioner_sync_type (ER_TARGET_EXTAX_DEVICE_POSITIONER_HND hnd)
 Synchonization for Positioner/TurnTable
For a Positioner/TurnTable motion, the synchonization can be one of ER_SYNC_ON, ER_SYNC_OFF
see example GetExtAxPositionerHnd() More...
 
DLLAPI ER_EXTAX_KIN_DATA
*ER_STDCALL 
erGetExtAxPositioner_extax_data (ER_TARGET_EXTAX_DEVICE_POSITIONER_HND hnd, long extax_idx)
 External axis values for Positioner/TurnTable
Values ER_EXTAX_KIN_DATA are:
. More...
 
DLLAPI long ER_STDCALL erSetExtAxPositionerIdx (ER_TARGET_LOCATION_HND er_tarloc_hnd, long extax_idx, double axis_value, double speed_value=0, long sync_type=ER_SYNC_UNDEF, ER_HND er_hnd_connect=0)
 Set external axis values for Positioner/TurnTable for target location
see example GetExtAxPositionerHnd() Remarks
Use ERK_CAPI_TOOLPATH::erToolPathSetPositionerHandle() to set the Positioner/TurnTable device, belonging to this tool path. More...
 
DLLAPI
ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND
ER_STDCALL 
erGetTargetLocationExtAxConveyorHnd (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Handle for external axis of a Conveyor-Motion
Typical data belonging to external axis data are:
number of external axis used, synchonization type, external axis data
Remarks
External axis data should be specified after the move definition of a target location The returned handle ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND is used to access external axis data for Conveyor-Motion
see example erGetExtAxConveyor_sync_type() More...
 
DLLAPI long *ER_STDCALL erGetExtAxConveyor_number_extax_used (ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND hnd)
 Number of external axis used for Conveyor
see example GetExtAxConveyorHnd() More...
 
DLLAPI long *ER_STDCALL erGetExtAxConveyor_sync_type (ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND hnd)
 Synchonization for Conveyor
For a Conveyor motion, the synchonization can be one of ER_SYNC_ON, ER_SYNC_OFF
see example GetExtAxConveyorHnd() More...
 
DLLAPI ER_EXTAX_KIN_DATA
*ER_STDCALL 
erGetExtAxConveyor_extax_data (ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND hnd, long extax_idx)
 External axis values for Conveyor
Values ER_EXTAX_KIN_DATA are:
. More...
 
DLLAPI long ER_STDCALL erSetExtAxConveyorIdx (ER_TARGET_LOCATION_HND er_tarloc_hnd, long extax_idx, double axis_value, double speed_value=0, long sync_type=ER_SYNC_UNDEF, ER_HND er_hnd_connect=0)
 Set external axis values for Conveyor for target location
see example GetExtAxConveyorHnd() Remarks
Use ERK_CAPI_TOOLPATH::erToolPathSetConveyorHandle() to set the Conveyor device, belonging to this tool path. More...
 
DLLAPI long ER_STDCALL erSetConveyorTrackingWindow (ER_TARGET_LOCATION_HND er_tarloc_hnd, long active, double up, double down, TErTrackingWindowID id_tw, char *name=NULL)
 Activates and deactivates the boundaries for a Tracking Window.
This function enables a tracking window (typical for a painting applications) and defines the boudary Up- and Down-Stream values.
This function works in conjunction with erConnectConveyor(), erConnectConveyorSetSync() and erSetconveyorStartCondition()
Remarks
Connect the robot first with a conveyor, using erConnectConveyor(), and set the synchronization to ER_SYNC_ON, using erConnectConveyorSetSync(), before activating the tracking window.
A tracking window can have one of the following status:
0: TRK_WND_NOT_ACTIVE, 1: TRK_WND_WAITING, 2: TRK_WND_INSIDE or 3: TRK_WND_OUT_OF_BOUNDARY
and will be obtained with the NEXT_STEP_DATA when calling erGET_NEXT_STEP()
Activating a tracking window sets the status to TRK_WND_WAITING.
Deactivating a tracking window sets the status to TRK_WND_NOT_ACTIVE. More...
 
DLLAPI long ER_STDCALL erSetConveyorStartOffsetCondition (ER_TARGET_LOCATION_HND er_tarloc_hnd, double tx0)
 Sets the conveyor start offset condition.
This function set the conveyor start condition for the Tracking Window (typical for a painting applications).
The tx0 in units [m] is an offset position in X-direction and is defined w.r.t. to the flange of the conveyor device.
This function works in conjunction with erSetTrackingWindow() More...
 
DLLAPI long ER_STDCALL erTPth_TBox_Fct (int FctIdx, int FctSubIdx, ER_TOOLPATH_HND er_tpth_hnd, int constraint_param, char *svalues=NULL)
 Method for miscellaneous tool path calculations Requires DLL EasySimKernel_tboxx64.dll. More...
 
DLLAPI long ER_STDCALL erTPth_PostProc (char *ApiPP_Dll_Name, int FctIdx, int FctSubIdx, ER_TOOLPATH_HND er_tpth_hnd, char *program_name, char *target_path=NULL, int pp_param=0, char *svalues=NULL)
 Method for post processing, creating a robot program for a tool path
An example Visual Studio Project is available, creating a robot program for KUKA Controller.
The name of the DLL is user defined, e.g. 'EasySimKernel_apippx64.dll'
Remarks
The DLL is loaded and linked will calling this method. Thus, the DLL can be generated again without restarting the Host application.
This allows quick changes and adjustments in the shop floor. More...
 
DLLAPI long ER_STDCALL erTPth_Fct (ER_TOOLPATH_HND er_tpth_hnd)
 Do Fct. ... tbd. More...
 
DLLAPI long ER_STDCALL erColl_BeginModel (ER_COLLISION_HND *er_coll_hnd, long n_tris)
 Creates a collision handle for one Model and preallocate memory for n_tris triangles. More...
 
DLLAPI long ER_STDCALL erColl_AddTri (ER_COLLISION_HND er_coll_hnd, double *p1, double *p2, double *p3, long id)
 Adds a triangle to a Model.
call erColl_BeginModel() once to create a new unique model handle. More...
 
DLLAPI long ER_STDCALL erColl_EndModel (ER_COLLISION_HND er_coll_hnd)
 Stop building a Model. More...
 
DLLAPI long ER_STDCALL erColl_ChkCollision (ER_COLLISION_HND er_coll_hnd_1, DFRAME *iT_1, ER_COLLISION_HND er_coll_hnd_2, DFRAME *iT_2, long query_type=ER_COLL_QUERY_TYPE_COLLIDE, long contact_type=ER_COLL_FIRST_CONTACT, double rel_err=0, double abs_err=0, double tolerance=0)
 Perform the collision check of two Models.
See also erColl_ChkCollision_res() to get the collision results immediately
The query type query_type can be one of the following values.
0: ER_COLL_QUERY_TYPE_UNDEF skip collision checks
1: ER_COLL_QUERY_TYPE_COLLIDE detects collision between two Models
2: ER_COLL_QUERY_TYPE_DISTANCE computes the distance between two Models
3: ER_COLL_QUERY_TYPE_TOLERANCE checks if distance between Models is <= tolerance
The contact type contact_type is used for query type ER_COLL_QUERY_TYPE_COLLIDE and can be one of the following values.
1: ER_COLL_ALL_CONTACTS , the erColl_GetResults_Collide() contains an array with all colliding triangle pairs ER_CollideResult.
2: ER_COLL_FIRST_CONTACT , the erColl_GetResults_Collide() array will only get the first colliding triangle pair found.
Collide
Detects collsion. This is the fastest method.
Distance
Computes minimum distance between two Models. This method takes the most time !!!
Tolerances
Specify tolerance for query type ER_COLL_QUERY_TYPE_DISTANCE or ER_COLL_QUERY_TYPE_TOLERANCE
Checks if distance between Models is <= tolerance.
Remarks
If erColl_ChkCollision() returns with ER_COLL_DETECTED call, depending on the query type, one of the collision result functions erColl_GetResults_Collide(), erColl_GetResults_Distance() or erColl_GetResults_Tolerance() to receive more detailed information about the collision status. More...
 
DLLAPI long ER_STDCALL erColl_ChkCollision_res (ER_COLLISION_HND er_coll_hnd_1, DFRAME *iT_1, ER_COLLISION_HND er_coll_hnd_2, DFRAME *iT_2, long query_type=ER_COLL_QUERY_TYPE_COLLIDE, long contact_type=ER_COLL_FIRST_CONTACT, double rel_err=0, double abs_err=0, double tolerance=0, void *pres=NULL)
 Perform the collision check of two Models.
Collision results returned immediately by parameter pres compared to erColl_ChkCollision()
The query type query_type can be one of the following values.
0: ER_COLL_QUERY_TYPE_UNDEF skip collision checks
1: ER_COLL_QUERY_TYPE_COLLIDE detects collision between two Models
2: ER_COLL_QUERY_TYPE_DISTANCE computes the distance between two Models
3: ER_COLL_QUERY_TYPE_TOLERANCE checks if distance between Models is <= tolerance
The contact type contact_type is used for query type ER_COLL_QUERY_TYPE_COLLIDE and can be one of the following values.
1: ER_COLL_ALL_CONTACTS , the erColl_GetResults_Collide() contains an array with all colliding triangle pairs ER_CollideResult.
2: ER_COLL_FIRST_CONTACT , the erColl_GetResults_Collide() array will only get the first colliding triangle pair found.
Collide
Detects collsion. This is the fastest method.
Distance
Computes minimum distance between two Models. This method takes the most time !!!
Tolerances
Specify tolerance for query type ER_COLL_QUERY_TYPE_DISTANCE or ER_COLL_QUERY_TYPE_TOLERANCE
Checks if distance between Models is <= tolerance.
Remarks
If erColl_ChkCollision_res() returns with ER_COLL_DETECTED, get more detailed information about the collision status by parameter pres. More...
 
DLLAPI long ER_STDCALL erColl_ChkCollision_res_free (long query_type, void *pres)
 Frees allocated memory for Collision results for parameter pres
The query type query_type can be one of the following values.
0: ER_COLL_QUERY_TYPE_UNDEF skip operation
1: ER_COLL_QUERY_TYPE_COLLIDE frees allocated data in ER_CollideResult
2: ER_COLL_QUERY_TYPE_DISTANCE frees allocated data in ER_DistanceResult
3: ER_COLL_QUERY_TYPE_TOLERANCE frees allocated data in ER_ToleranceResult
Remarks
Note that the allocated memory in the Collision results structures must be administrated by the Kernel and not in the host application. More...
 
DLLAPI long ER_STDCALL erColl_UnloadModel (ER_COLLISION_HND *er_coll_hnd)
 Unload a Model. Free all allocated memory. More...
 
DLLAPI long ER_STDCALL erColl_GetResults_Collide (ER_CollideResult *er_cres)
 Get Collision result for query ER_COLL_QUERY_TYPE_COLLIDE. Remarks
Call erColl_ChkCollision() first, before calling this function
Call erColl_ChkCollision_res() to receive the collision result immediately. More...
 
DLLAPI long ER_STDCALL erColl_GetResults_Distance (ER_DistanceResult *er_dres)
 Get Collision result for query ER_COLL_QUERY_TYPE_DISTANCE. Remarks
Call erColl_ChkCollision() first, before calling this function
Call erColl_ChkCollision_res() to receive the collision result immediately. More...
 
DLLAPI long ER_STDCALL erColl_GetResults_Tolerance (ER_ToleranceResult *er_tres)
 Get Collision result for query ER_COLL_QUERY_TYPE_TOLERANCE. Remarks
Call erColl_ChkCollision() first, before calling this function
Call erColl_ChkCollision_res() to receive the collision result immediately. More...
 
DLLAPI long ER_STDCALL erUpdateGeo (ER_HND er_hnd)
 Updates all geometry location for each robot joint. This function causes the call of callback function TerUpdateGeometryProc().
The resulted geometry location w.r.t. robot base is the product of
KinMat and GeoMat. More...
 
DLLAPI int ER_STDCALL erGeoMngr_GetVersion ()
 GeoMngr Version. More...
 
DLLAPI TErGeoHandle ER_STDCALL erGeoMngr_LoadGeometry (ER_HND er_hnd, LOAD_GEOMETRY_DATA *p_load_geometry_data)
 Load a geometry. More...
 
DLLAPI int ER_STDCALL erGeoMngr_FreeGeometry (ER_HND er_hnd, TErGeoHandle GeoHandle)
 Free or delete a geometry. More...
 
DLLAPI int ER_STDCALL erGeoMngr_GetNumGeometries (ER_HND er_hnd)
 Get number of loaded geometries for specified device. More...
 
DLLAPI int ER_STDCALL erGeoMngr_GetGeometry (ER_HND er_hnd, int geometryIndex, LOAD_GEOMETRY_DATA *p_load_geometry_data, DFRAME *kinMat)
 
DLLAPI int ER_STDCALL erGeoMngr_GetNumAxisGeometries (ER_HND er_hnd, int axis_nr)
 
DLLAPI int ER_STDCALL erGeoMngr_GetAxisGeometry (ER_HND er_hnd, int axis_nr, int geometryIndex, LOAD_GEOMETRY_DATA *p_load_geometry_data, DFRAME *kinMat)
 
DLLAPI const double *ER_STDCALL erGeoMngr_GetGeometryBBox (TErGeoHandle geometryHandle)
 
DLLAPI const double *ER_STDCALL erGeoMngr_GetAxisBBox (ER_HND er_hnd, int axis_id)
 
DLLAPI const double *ER_STDCALL erGeoMngr_GetDeviceBBox (ER_HND er_hnd)
 
DLLAPI int ER_STDCALL erGeoMngr_GetGeometryNumObjs (TErGeoHandle geometryHandle)
 
DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumPoints (TErGeoHandle geometryHandle, int objidx)
 
DLLAPI double *ER_STDCALL erGeoMngr_GetGeometryObjPoint (TErGeoHandle geometryHandle, int objidx, int index)
 
DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumPointNormals (TErGeoHandle geometryHandle, int objidx)
 
DLLAPI double *ER_STDCALL erGeoMngr_GetGeometryObjPointNormal (TErGeoHandle geometryHandle, int objidx, int index)
 
DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumLines (TErGeoHandle geometryHandle, int objidx)
 
DLLAPI size_t *ER_STDCALL erGeoMngr_GetGeometryObjLine (TErGeoHandle geometryHandle, int objidx, int index)
 
DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumPolygons (TErGeoHandle geometryHandle, int objidx)
 
DLLAPI size_t *ER_STDCALL erGeoMngr_GetGeometryObjPolygon (TErGeoHandle geometryHandle, int objidx, int index)
 
DLLAPI double *ER_STDCALL erGeoMngr_GetGeometryObjColor (TErGeoHandle geometryHandle, int objidx)
 
DLLAPI long ER_STDCALL erGeoMngr_GetGeometryObjColorCode (TErGeoHandle geometryHandle, int objidx)
 
DLLAPI int ER_STDCALL erGeoMngr_GetGeometryCloneCount (TErGeoHandle geometryHandle)
 
DLLAPI TErGeoHandle ER_STDCALL erGeoMngr_GetGeometryCloneHandle (TErGeoHandle geometryHandle)
 
DLLAPI int ER_STDCALL erGeoMngr_SetGeometryCollisionHandle (TErGeoHandle geometryHandle, ER_COLLISION_HND collisionHandle)
 
DLLAPI ER_COLLISION_HND *ER_STDCALL erGeoMngr_GetGeometryCollisionHandle (TErGeoHandle geometryHandle)
 
DLLAPI int ER_STDCALL erGeoMngr_SetGeometryIsCollided (TErGeoHandle geometryHandle, int isCollided)
 
DLLAPI int *ER_STDCALL erGeoMngr_GetGeometryIsCollided (TErGeoHandle geometryHandle)
 
DLLAPI int ER_STDCALL erGeoMngr_CheckBoundingBoxCollision (DFRAME *T1, const double *bbox1, DFRAME *T2, const double *bbox2, double tolerance)
 
DLLAPI long ER_STDCALL erMath_FrameToVecIdx (DFRAME *T, double *vec, long rotation_idx=ER_ROT_XYZ)
 Converts a frame into an euler vector or quaternion. Frame T is converted into a vector vec
A frame DFRAME is a homogeneous 4x4 transformation matrix.
Depending on the rotation index rotation_idx, which is one of
ER_ROT_XYZ = RotX * RotY' * RotZ'' default,
ER_ROT_XYZ, ER_ROT_ZYX, ER_ROT_YXZ, ER_ROT_ZYZ,ER_ROT_XYX, ER_ROT_RPY, ER_ROT_QUAT, ER_ROT_CA, ER_ROT_ZYpZ,
ER_ROT_Y9XZ, ER_ROT_Z9XY, ER_ROT_Z9XZ, ER_ROT_Z9YX, ER_ROT_IJK, ER_ROT_ANGLE_1
See also erMath_VecToFrameIdx() More...
 
DLLAPI long ER_STDCALL erMath_VecToFrameIdx (double *vec, DFRAME *T, long rotation_idx=ER_ROT_XYZ)
 Converts an euler vector or quaternion into a frame. Vector vec is converted into a frame T
A frame DFRAME is a homogeneous 4x4 transformation matrix.
Depending on the rotation index rotation_idx, which is one of
ER_ROT_XYZ = RotX * RotY' * RotZ'' default,
ER_ROT_XYZ, ER_ROT_ZYX, ER_ROT_YXZ, ER_ROT_ZYZ,ER_ROT_XYX, ER_ROT_RPY, ER_ROT_QUAT, ER_ROT_CA, ER_ROT_ZYpZ,
ER_ROT_Y9XZ, ER_ROT_Z9XY, ER_ROT_Z9XZ, ER_ROT_Z9YX, ER_ROT_IJK, ER_ROT_ANGLE_1
See also erMath_FrameToVecIdx() More...
 
DLLAPI long ER_STDCALL erMath_PxyzRxyzToFrame (double x, double y, double z, double Rx, double Ry, double Rz, DFRAME *T)
 Converts an euler represented location with rotation index ER_ROT_XYZ into a frame.
Location x, y, z, Rx, Ry, Rz are converted into a frame T
A frame DFRAME is a homogeneous 4x4 transformation matrix.
See also erMath_VecToFrameIdx(), erMath_FrameToVecIdx() More...
 
DLLAPI long ER_STDCALL erMath_Frame_Ident (DFRAME *T)
 Set the homogeneous 4x4 transformation matrix T to identity.
T = Ident
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_Frame_Trans (DFRAME *T, double x, double y, double z)
 Set position of homogeneous 4x4 transformation matrix.
T.p[] = [x,y,z]
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_Frame_Rot (DFRAME *T, double q, long rotation_idx=ER_ROT_IDENT)
 Set orientation of homogeneous 4x4 transformation matrix.
T = f(q,rotation_idx)
The rotation index rotation_idx, is one of
ER_ROT_IDENT=default, ER_ROT_X, ER_ROT_Y or ER_ROT_Z
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_AngleBetween (DFRAME *Ts, DFRAME *Te, double *angle, double *k=NULL)
 Calculates the angle and the equivalent angle axis between two homogeneous 4x4 transformation matrices.
Rotation from start frame Ts into end frame Te by angle of rotation angle about the equivalent angle axis k
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_DistBetween (DFRAME *Ts, DFRAME *Te, double *dist, double *dv=NULL)
 Calculates the distance and direction between two homogeneous 4x4 transformation matrices.
Translation from start frame Ts into end frame Te by the distance dist in direction vd
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_invT (DFRAME *To, DFRAME *Ti)
 Builds the inverse of a homogeneous 4x4 transformation matrix T.
To = inv(Ti) = ( Ri' , -Ri'*pi ), Ri' is transpose of Ri
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_invR (DFRAME *Ro, DFRAME *Ri)
 Builds the inverse of the 3x3 orientation matrix from a homogeneous 4x4 transformation matrix T.
Ro = inv(Ri) = transpose(Ri) = Ri', with Ti = ( Ri , pi )
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_R_R (DFRAME *Ro, DFRAME *Ri1, DFRAME *Ri2)
 Orientation multiplication of two homogeneous 4x4 transformation matrices.
Ro = Ri1 * Ri2
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_T_T (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2)
 Multiplication of two homogeneous 4x4 transformation matrices.
To = Ti1 * Ti2
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_T_invT (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2)
 Multiplication of two homogeneous 4x4 transformation matrices.
To = Ti1 * inv(Ti2)
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_invT_T (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2)
 Multiplication of two homogeneous 4x4 transformation matrices.
To = inv(Ti1) * Ti2
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_invT_invT (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2)
 Multiplication of two homogeneous 4x4 transformation matrices.
To = inv(Ti1) * inv(Ti2)
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_T_pos (double *po, DFRAME *T, double *pi)
 Multiplication of a 3x1 position with a homogeneous 4x4 transformation matrices.
po = T * pi, pi is vector of size ER_DIM
po = R*pi + p, with T = ( R , p) A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_invT_pos (double *po, DFRAME *T, double *pi)
 Multiplication of a 3x1 position with the inverse of a homogeneous 4x4 transformation matrices.
po = inv(T) * pi, pi is vector of size ER_DIM
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_R_pos (double *po, DFRAME *R, double *pi)
 Multiplication of a 3x1 position with the 3x3 orientation of a homogeneous 4x4 transformation matrices.
po = R * pi, pi is vector of size ER_DIM
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_invR_pos (double *po, DFRAME *R, double *pi)
 Multiplication of a 3x1 position with the transpose of a 3x3 orientation of a homogeneous 4x4 transformation matrices.
po = R' * pi, pi is vector of size ER_DIM
Remarks
R' = inv(R) is the transpose of R, see erMath_invR()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_T_T_T (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2, DFRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = Ti1 * Ti2 * Ti3
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_T_T_invT (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2, DFRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = Ti1 * Ti2 * inv(Ti3)
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_T_invT_T (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2, DFRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = Ti1 * inv(Ti2) * Ti3
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_T_invT_invT (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2, DFRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = Ti1 * inv(Ti2) * inv(Ti3)
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_invT_T_T (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2, DFRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = inv(Ti1) * Ti2 * Ti3
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_invT_T_invT (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2, DFRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = inv(Ti1) * Ti2 * inv(Ti3)
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_invT_invT_T (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2, DFRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = inv(Ti1) * inv(Ti2) * Ti3
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_invT_invT_invT (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2, DFRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = inv(Ti1) * inv(Ti2) * inv(Ti3)
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI double *ER_STDCALL erMath_SetVec6 (double *vec, double q1, double q2, double q3, double q4, double q5, double q6)
 Cpy six values to a vector. More...
 
DLLAPI double *ER_STDCALL erMath_SetVec6PosOri (double *vec, double x, double y, double z, double Rx, double Ry, double Rz)
 Cpy and convert a target location (position+orientation) to a vector
position x,y,z in [mm] converted to [m] by ER_mm2m
orientation Rx,Ry,Rz in [deg] converted to [rad] by ER_RAD
. More...
 
DLLAPI double *ER_STDCALL erMath_SetVec_n (double *vec, int n, double q1, double q2, double q3, double q4, double q5, double q6)
 Cpy n values to a vector. More...
 
DLLAPI double *ER_STDCALL erMath_CpyVec (double *dst, double *src, int n)
 Cpy vector dst = src. More...
 
DLLAPI double *ER_STDCALL erMath_ResetVec (double *dst, int n)
 Reset vector dst = 0. More...
 

Function Documentation

DLLAPI long ER_STDCALL CpyExtAxConveyorTemplate ( ER_TOOLPATH_HND  er_tpth_hnd,
ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND  hnd 
)

Copy external axis conveyor data to template data.
The external axis conveyor data defined with external axis conveyor handle hnd are copied to the external axis conveyor template belonging to the tool path handle er_tpth_hnd.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[in]hndexternal axis conveyor handle ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND
Return values
0- Ok
1- Error
DLLAPI long ER_STDCALL CpyExtAxPositionerTemplate ( ER_TOOLPATH_HND  er_tpth_hnd,
ER_TARGET_EXTAX_DEVICE_POSITIONER_HND  hnd 
)

Copy external axis positioner data to template data.
The external axis positioner data defined with external axis positioner handle hnd are copied to the external axis positioner template belonging to the tool path handle er_tpth_hnd.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[in]hndexternal axis positioner handle ER_TARGET_EXTAX_DEVICE_POSITIONER_HND
Return values
0- Ok
1- Error
DLLAPI long ER_STDCALL CpyExtAxTrackMotionTemplate ( ER_TOOLPATH_HND  er_tpth_hnd,
ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND  hnd 
)

Copy external axis track motion data to template data.
The external axis track motion data defined with external axis track motion handle hnd are copied to the external axis track motion template belonging to the tool path handle er_tpth_hnd.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[in]hndexternal axis track motion handle ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND
Return values
0- Ok
1- Error
DLLAPI long ER_STDCALL CpyMotionAttributesTemplate ( ER_TOOLPATH_HND  er_tpth_hnd,
ER_TARGET_ATTRIBUTES_HND  hnd 
)

Copy attributes to template data.
The attributes defined with attribute handle hnd are copied to the attribute template belonging to the tool path handle er_tpth_hnd.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[in]hndattribute handle ER_TARGET_ATTRIBUTES_HND
Return values
0- Ok
1- Error
DLLAPI long ER_STDCALL CpyMoveCPTemplate ( ER_TOOLPATH_HND  er_tpth_hnd,
ER_TARGET_MOVE_CP_HND  hnd 
)

Copy move cp data to template data.
The move cp data defined with move cp handle hnd are copied to the move cp template belonging to the tool path handle er_tpth_hnd.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[in]hndmove cp handle ER_TARGET_MOVE_CP_HND
Return values
0- Ok
1- Error
DLLAPI long ER_STDCALL CpyMoveJointTemplate ( ER_TOOLPATH_HND  er_tpth_hnd,
ER_TARGET_MOVE_JOINT_HND  hnd 
)

Copy move joint data to template data.
The move joint data defined with move joint handle hnd are copied to the move joint template belonging to the tool path handle er_tpth_hnd.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[in]hndmove joint handle ER_TARGET_MOVE_JOINT_HND
Return values
0- Ok
1- Error
DLLAPI long ER_STDCALL erAddTargetLocation ( ER_TOOLPATH_HND  er_tpth_hnd,
ER_TARGET_LOCATION_HND er_tarloc_hnd 
)

Add a new target location to a tool path
Remarks
The new target location is reset to default values and marked as invalid, use erGetTargetLocationNumber() to receive the number of target locations in the tool path.
See ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid() to set, unset the validity of a target location or request the validity status.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[out]er_tarloc_hnda new unique target location handle ER_TARGET_LOCATION_HND
Return values
0- Ok
1- Error
DLLAPI long ER_STDCALL erCANCEL_EVENT ( ER_HND  er_hnd,
long  event_id 
)

This function makes it possible to cancel an event previously defined in the Kernel by the erDEFINE_EVENT() function.
Opcode 149, Chapter 3.4.8, Page 3-99
Function not supported

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]event_id
Return values
0- OK
1- Error, invalid handle
-1- not supported
DLLAPI long ER_STDCALL erCANCEL_FLYBY_CRITERIA ( ER_HND  er_hnd,
long  param_number 
)

Cancels (unselects) a fly-by criterion.
Opcode 143, Chapter 3.4.6, Page 3-88
Function not supported

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]param_numberspecifies which parameter to cancel
Return values
0- OK
1- Error, invalid handle
-1- not supported
DLLAPI long ER_STDCALL erCANCEL_MOTION ( ER_HND  er_hnd)

Cancel a motion that was stopped with erSTOP_MOTION() function.
Opcode 153, Chapter 3.4.8, Page 3-103
See also erSTOP_MOTION(), erCONTINUE_MOTION()
Remarks
This function clears any remaining target positions in the Kernel.

Parameters
[in]er_hndunique kinematics handle ER_HND
Return values
0- OK
1- Error, invalid handle
-55- the function is not performed. Motion in progress
DLLAPI long ER_STDCALL erColl_AddTri ( ER_COLLISION_HND  er_coll_hnd,
double *  p1,
double *  p2,
double *  p3,
long  id 
)

Adds a triangle to a Model.
call erColl_BeginModel() once to create a new unique model handle.

Parameters
[in]er_coll_hnda valid unique Collision handle ER_COLLISION_HND
[in]p11st point of triangle
[in]p22nd point of triangle
[in]p33rd point of triangle
[in]idunique identifier for this triangle
Return values
0- ER_COLL_OK - OK
1- ER_COLL_ERROR - Error, kernel not initialized
2- ER_COLL_HND_INVALID - Collision handle invalid
DLLAPI long ER_STDCALL erColl_BeginModel ( ER_COLLISION_HND er_coll_hnd,
long  n_tris 
)

Creates a collision handle for one Model and preallocate memory for n_tris triangles.

Parameters
[out]er_coll_hndunique Collision handle ER_COLLISION_HND
[in]n_trisnumber of model triangles
Return values
0- ER_COLL_OK - OK
1- ER_COLL_ERROR - Error, kernel not initialized
2- ER_COLL_HND_INVALID - Collision handle invalid
-1- ER_COLL_ERR_MODEL_OUT_OF_MEMORY - not enough memory
DLLAPI long ER_STDCALL erColl_ChkCollision ( ER_COLLISION_HND  er_coll_hnd_1,
DFRAME iT_1,
ER_COLLISION_HND  er_coll_hnd_2,
DFRAME iT_2,
long  query_type = ER_COLL_QUERY_TYPE_COLLIDE,
long  contact_type = ER_COLL_FIRST_CONTACT,
double  rel_err = 0,
double  abs_err = 0,
double  tolerance = 0 
)

Perform the collision check of two Models.
See also erColl_ChkCollision_res() to get the collision results immediately
The query type query_type can be one of the following values.
0: ER_COLL_QUERY_TYPE_UNDEF skip collision checks
1: ER_COLL_QUERY_TYPE_COLLIDE detects collision between two Models
2: ER_COLL_QUERY_TYPE_DISTANCE computes the distance between two Models
3: ER_COLL_QUERY_TYPE_TOLERANCE checks if distance between Models is <= tolerance
The contact type contact_type is used for query type ER_COLL_QUERY_TYPE_COLLIDE and can be one of the following values.
1: ER_COLL_ALL_CONTACTS , the erColl_GetResults_Collide() contains an array with all colliding triangle pairs ER_CollideResult.
2: ER_COLL_FIRST_CONTACT , the erColl_GetResults_Collide() array will only get the first colliding triangle pair found.
Collide
Detects collsion. This is the fastest method.
Distance
Computes minimum distance between two Models. This method takes the most time !!!
Tolerances
Specify tolerance for query type ER_COLL_QUERY_TYPE_DISTANCE or ER_COLL_QUERY_TYPE_TOLERANCE
Checks if distance between Models is <= tolerance.
Remarks
If erColl_ChkCollision() returns with ER_COLL_DETECTED call, depending on the query type, one of the collision result functions erColl_GetResults_Collide(), erColl_GetResults_Distance() or erColl_GetResults_Tolerance() to receive more detailed information about the collision status.

// Example:
// Collision Model
//
// A Collision Model stores geometry to be used in a proximity query.
// The geometry is loaded with a call to erColl_BeginModel(), at least one call to
// erColl_AddTri(), and then a call to erColl_EndModel().
//
// create a two triangle models
//
ER_COLLISION_HND er_coll_hnd_1 = NULL; // unique Collision handle for the 1st Model
ER_COLLISION_HND er_coll_hnd_2 = NULL; // unique Collision handle for the 2nd Model
ER_COLLISION_HND *er_coll_hnd; // points to er_coll_hnd_1 or er_coll_hnd_2
long id; // tri identifier
long number_of_tris_1 = 6; // number of tris for the 1st Model
long number_of_tris_2 = 4; // number of tris for the 2nd Model
//~~~~~~~~~~~~~~~~~~~~~~~~~
// erColl_BeginModel
//~~~~~~~~~~~~~~~~~~~~~~~~~
// 1st Model
er_coll_hnd = &er_coll_hnd_1;
ret=erColl_BeginModel(er_coll_hnd,number_of_tris_1);
// 2nd Model
er_coll_hnd = &er_coll_hnd_2;
ret=erColl_BeginModel(er_coll_hnd,number_of_tris_2);
//~~~~~~~~~~~~~~~~~~~~~~~~~
// erColl_AddTri
//~~~~~~~~~~~~~~~~~~~~~~~~~
// define 5 points for a pyramide
double p1[ER_DIM] = { 0.5, 0, 0.0};
double p2[ER_DIM] = { 0.0, 0.5, 0.0};
double p3[ER_DIM] = {-0.5, 0.0, 0.0};
double p4[ER_DIM] = { 0.0,-0.5, 0.0};
double p5[ER_DIM] = { 0.0, 0.0, 0.5};
// 1st Model
er_coll_hnd = &er_coll_hnd_1;
id=0;
ret=erColl_AddTri(*er_coll_hnd,p1,p2,p5,id++);
ret=erColl_AddTri(*er_coll_hnd,p2,p3,p5,id++);
ret=erColl_AddTri(*er_coll_hnd,p3,p4,p5,id++);
ret=erColl_AddTri(*er_coll_hnd,p4,p1,p5,id++);
ret=erColl_AddTri(*er_coll_hnd,p1,p4,p3,id++); // with a bottom
ret=erColl_AddTri(*er_coll_hnd,p3,p2,p1,id++); // with a bottom
if (ret==ER_COLL_OK)
erColl_EndModel(*er_coll_hnd);
// 2nd Model
er_coll_hnd = &er_coll_hnd_2;
id=0;
ret=erColl_AddTri(*er_coll_hnd,p1,p2,p5,id++);
ret=erColl_AddTri(*er_coll_hnd,p2,p3,p5,id++);
ret=erColl_AddTri(*er_coll_hnd,p3,p4,p5,id++);
ret=erColl_AddTri(*er_coll_hnd,p4,p1,p5,id++);
if (ret==ER_COLL_OK)
erColl_EndModel(*er_coll_hnd);
//~~~~~~~~~~~~~~~~~~~~~~~~~
// erColl_ChkCollision
//~~~~~~~~~~~~~~~~~~~~~~~~~
long collision = 0; // ER_COLL_DETECTED- collision, 0- no collision
DFRAME T_1; // location of 1st Model
DFRAME T_2; // location of 2nd Model
// translate 2nd Model to z=1.5 and rotate about y-axis by 180 deg
erMath_PxyzRxyzToFrame( 0.1, 0.1, 1.5, 0.0, 180.0*ER_RAD, 0.0, &T_2);
long query_type = ER_COLL_QUERY_TYPE_DISTANCE; // or one of ER_COLL_QUERY_TYPE_COLLIDE , ER_COLL_QUERY_TYPE_DISTANCE, ER_COLL_QUERY_TYPE_TOLERANCE
long contact_type = ER_COLL_ALL_CONTACTS; // or one of ER_COLL_FIRST_CONTACT, if query_type is ER_COLL_QUERY_TYPE_COLLIDE
// if query_type is one of ER_COLL_QUERY_TYPE_DISTANCE, ER_COLL_QUERY_TYPE_TOLERANCE
double rel_err = 0; // the relative error margin from actual distance
double abs_err = 0; // the absolute error margin from actual distance
double tolerance = 100 * ER_mm2m; // 100 [mm]
collision = erColl_ChkCollision(
er_coll_hnd_1, // unique Collision handle for the 1st Model
&T_1, // location of 1st object
er_coll_hnd_2, // unique Collision handle for the 2nd Model
&T_2, // location of 2nd object
query_type, // ER_COLL_QUERY_TYPE_COLLIDE, ER_COLL_QUERY_TYPE_DISTANCE, ER_COLL_QUERY_TYPE_TOLERANCE
contact_type, // ER_COLL_FIRST_CONTACT, ER_COLL_ALL_CONTACTS
rel_err, // the relative error margin from actual distance
abs_err, // the absolute error margin from actual distance
tolerance // Tolerance [m]
);
//~~~~~~~~~~~~~~~~~~~~~~~~~
// Get collision results
//~~~~~~~~~~~~~~~~~~~~~~~~~
if (collision==ER_COLL_DETECTED ||
{
switch (query_type) {
// ....
break;
// ....
break;
// ....
break;
};
}
// ....
Parameters
[in]er_coll_hnd_1unique Collision handle for the 1st Model ER_COLLISION_HND
[in]iT_1a location of the 1st Model w.r.t. inertia DFRAME
[in]er_coll_hnd_2unique Collision handle for the 2nd Model ER_COLLISION_HND
[in]iT_2a location of the 2nd Model w.r.t. inertia DFRAME
[in]query_typecollision query type
[in]contact_typecollision contact type
[in]rel_errrelative error margin from actual distance
[in]abs_errabsolute error margin from actual distance
[in]toleranceTolerance value
Return values
3- ER_COLL_DETECTED - Collision detected
1- ER_COLL_ERROR - Error, kernel not initialized
2- ER_COLL_HND_INVALID - Collision handle invalid
DLLAPI long ER_STDCALL erColl_ChkCollision_res ( ER_COLLISION_HND  er_coll_hnd_1,
DFRAME iT_1,
ER_COLLISION_HND  er_coll_hnd_2,
DFRAME iT_2,
long  query_type = ER_COLL_QUERY_TYPE_COLLIDE,
long  contact_type = ER_COLL_FIRST_CONTACT,
double  rel_err = 0,
double  abs_err = 0,
double  tolerance = 0,
void *  pres = NULL 
)

Perform the collision check of two Models.
Collision results returned immediately by parameter pres compared to erColl_ChkCollision()
The query type query_type can be one of the following values.
0: ER_COLL_QUERY_TYPE_UNDEF skip collision checks
1: ER_COLL_QUERY_TYPE_COLLIDE detects collision between two Models
2: ER_COLL_QUERY_TYPE_DISTANCE computes the distance between two Models
3: ER_COLL_QUERY_TYPE_TOLERANCE checks if distance between Models is <= tolerance
The contact type contact_type is used for query type ER_COLL_QUERY_TYPE_COLLIDE and can be one of the following values.
1: ER_COLL_ALL_CONTACTS , the erColl_GetResults_Collide() contains an array with all colliding triangle pairs ER_CollideResult.
2: ER_COLL_FIRST_CONTACT , the erColl_GetResults_Collide() array will only get the first colliding triangle pair found.
Collide
Detects collsion. This is the fastest method.
Distance
Computes minimum distance between two Models. This method takes the most time !!!
Tolerances
Specify tolerance for query type ER_COLL_QUERY_TYPE_DISTANCE or ER_COLL_QUERY_TYPE_TOLERANCE
Checks if distance between Models is <= tolerance.
Remarks
If erColl_ChkCollision_res() returns with ER_COLL_DETECTED, get more detailed information about the collision status by parameter pres.

// Example
//
// Erk_CollisionResult_Init(...) to initialize collision result structures depending on query_type
// Erk_CollisionResult_Output(...) to store collision results into file stream 'fp'
// Erk_Do_Collisions() performe collision check of two Models
//
int Erk_CollisionResult_Init(long query_type, void *pres)
// Initialize collision result structures depending on query_type
// Note that the Kernel will administrate the memory for p->pairs, p->p1, p->p2
// Make sure that these pointers are set to NULL here
{
if (!pres)
return 1;
switch (query_type) {
{
p->num_pairs = 0;
p->pairs = NULL;
}
break;
{
p->rel_err = 0;
p->abs_err = 0;
p->distance = 0;
p->p1 = NULL;
p->p2 = NULL;
}
break;
{
p->tolerance = 0;
p->distance = 0;
p->p1 = NULL;
p->p2 = NULL;
}
break;
};
return 0;
}
int Erk_CollisionResult_Output(long collision, long query_type, int step, void *pres)
// Store collision results into file stream 'fp'
// Pointer 'pres' points to one collision result structure: ER_CollideResult, ER_DistanceResult or ER_ToleranceResult
{
if (!pres)
return 1;
if (collision==ER_COLL_DETECTED ||
{
switch (query_type) {
{
fprintf(fp,"i=%d erColl_GetResults_Collide() num_pairs_alloced %d num_pairs %ld time %.6lf\n",step,
DFRAME *pT = &p->m1Tm2;
out_frame(fp,"m1Tm2",pT);
ER_CollisionPair *pa = p->pairs; // is NULL if no num_pairs
for (int j=0;j<p->num_pairs;j++)
{
fprintf(fp," pairs[%d] id ( %d , %d )\n",j,pa->id1,pa->id2);
pa++;
}
}
break;
{
fprintf(fp,"i=%d erColl_GetResults_Distance() rel_err %.3lf abs_err %.3lf distance %.3lf time %.6lf\n",step,
p->rel_err*100,
DFRAME *pT = &p->m1Tm2;
out_frame(fp,"m1Tm2",pT);
if (p->distance>0)
{
double *v;
v = p->p1;
fprintf(fp," p1 %.3lf %.3lf %.3lf\n",v[0]*ER_m2mm,v[1]*ER_m2mm,v[2]*ER_m2mm);
v = p->p2;
fprintf(fp," p2 %.3lf %.3lf %.3lf\n",v[0]*ER_m2mm,v[1]*ER_m2mm,v[2]*ER_m2mm);
}
}
break;
{
fprintf(fp,"i=%d erColl_GetResults_Tolerance() closer_than_tolerance %s tolerance %.3lf distance %.3lf time %.6lf\n",step,
DFRAME *pT = &p->m1Tm2;
out_frame(fp,"m1Tm2",pT);
if (p->distance>0)
{
double *v;
v = p->p1;
fprintf(fp," p1 %.3lf %.3lf %.3lf\n",v[0]*ER_m2mm,v[1]*ER_m2mm,v[2]*ER_m2mm);
v = p->p2;
fprintf(fp," p2 %.3lf %.3lf %.3lf\n",v[0]*ER_m2mm,v[1]*ER_m2mm,v[2]*ER_m2mm);
}
}
break;
};
}
return 0;
}
int Erk_Do_Collisions()
// do some collisions
{
// Collision Model
//
// A Collision Model stores geometry to be used in a proximity query.
// The geometry is loaded with a call to erColl_BeginModel(), at least one call to
// erColl_AddTri(), and then a call to erColl_EndModel().
//
// create a two triangle models
//
int ret=ER_COLL_OK;
long collision = ER_COLL_OK; // ER_COLL_DETECTED - collision, ER_COLL_OK - no collision
//~~~~~~~~~~~~~~~~~~~~~~~~~
// erColl_BeginModel
//~~~~~~~~~~~~~~~~~~~~~~~~~
ER_COLLISION_HND er_coll_hnd_1 = NULL; // unique Collision handle for the 1st Model
ER_COLLISION_HND er_coll_hnd_2 = NULL; // unique Collision handle for the 2nd Model
ER_COLLISION_HND *er_coll_hnd; // points to er_coll_hnd_1 or er_coll_hnd_2
long id; // tri identifier
long number_of_tris_1 = 6; // number of tris for the 1st Model
long number_of_tris_2 = 4; // number of tris for the 2nd Model
// 1st Model
er_coll_hnd = &er_coll_hnd_1;
ret=erColl_BeginModel(er_coll_hnd,number_of_tris_1);
// 2nd Model
er_coll_hnd = &er_coll_hnd_2;
ret=erColl_BeginModel(er_coll_hnd,number_of_tris_2);
//~~~~~~~~~~~~~~~~~~~~~~~~~
// erColl_AddTri
//~~~~~~~~~~~~~~~~~~~~~~~~~
// define 5 points for a pyramide
double p1[ER_DIM] = { 0.5, 0, 0.0};
double p2[ER_DIM] = { 0.0, 0.5, 0.0};
double p3[ER_DIM] = {-0.5, 0.0, 0.0};
double p4[ER_DIM] = { 0.0,-0.5, 0.0};
double p5[ER_DIM] = { 0.0, 0.0, 0.5};
// 1st Model
er_coll_hnd = &er_coll_hnd_1;
id=0;
ret=erColl_AddTri(*er_coll_hnd,p1,p2,p5,id++);
ret=erColl_AddTri(*er_coll_hnd,p2,p3,p5,id++);
ret=erColl_AddTri(*er_coll_hnd,p3,p4,p5,id++);
ret=erColl_AddTri(*er_coll_hnd,p4,p1,p5,id++);
ret=erColl_AddTri(*er_coll_hnd,p1,p4,p3,id++); // bottom
ret=erColl_AddTri(*er_coll_hnd,p3,p2,p1,id++); // bottom
if (ret==ER_COLL_OK)
erColl_EndModel(*er_coll_hnd);
// 2nd Model
er_coll_hnd = &er_coll_hnd_2;
id=0;
ret=erColl_AddTri(*er_coll_hnd,p1,p2,p5,id++);
ret=erColl_AddTri(*er_coll_hnd,p2,p3,p5,id++);
ret=erColl_AddTri(*er_coll_hnd,p3,p4,p5,id++);
ret=erColl_AddTri(*er_coll_hnd,p4,p1,p5,id++);
if (ret==ER_COLL_OK)
erColl_EndModel(*er_coll_hnd);
//~~~~~~~~~~~~~~~~~~~~~~~~~
// erColl_ChkCollision
//~~~~~~~~~~~~~~~~~~~~~~~~~
DFRAME T_1; // location of 1st Model
DFRAME T_2; // location of 2nd Model
// translate 2nd Model to z=1.5 and rotate about y-axis by 180
erMath_PxyzRxyzToFrame( 0.1, 0.1, 1.5, 0.0, 180.0*ER_RAD, 0.0, &T_2);
// Choose query_type
long query_type = ER_COLL_QUERY_TYPE_DISTANCE; // or one of ER_COLL_QUERY_TYPE_COLLIDE , ER_COLL_QUERY_TYPE_DISTANCE, ER_COLL_QUERY_TYPE_TOLERANCE
// Set contact_type
// Note: Only relevant for query_type = ER_COLL_QUERY_TYPE_COLLIDE
long contact_type = ER_COLL_ALL_CONTACTS; // or one of ER_COLL_FIRST_CONTACT, if query_type is ER_COLL_QUERY_TYPE_COLLIDE
// Set rel_err, abs_err and tolerance
// Note: Only relevant for query_type = ER_COLL_QUERY_TYPE_DISTANCE or ER_COLL_QUERY_TYPE_TOLERANCE
double rel_err = 0; // the relative error margin from actual distance
double abs_err = 0; // the absolute error margin from actual distance
double tolerance = 100 * ER_mm2m; // 100 [mm]
// Initialize collision result structures
// depending on query_type
void *pres=NULL;
pres = query_type==ER_COLL_QUERY_TYPE_COLLIDE ? (void *)&er_cres :
query_type==ER_COLL_QUERY_TYPE_DISTANCE ? (void *)&er_dres :
query_type==ER_COLL_QUERY_TYPE_TOLERANCE ? (void *)&er_tres :
NULL;
// Initialize collision result structures depending on query_type
Erk_CollisionResult_Init(query_type,pres);
// make some collision tests,
// while moving 2nd Model down by 100 mm step
for (int i=0;ret==ER_COLL_OK && i<20;i++)
{
T_2.p[2] -= 100 * ER_mm2m; // move 2nd Model in -z direction
er_coll_hnd_1, // unique Collision handle for the 1st Model
&T_1, // location of 1st object
er_coll_hnd_2, // unique Collision handle for the 2nd Model
&T_2, // location of 2nd object
query_type, // ER_COLL_QUERY_TYPE_COLLIDE, ER_COLL_QUERY_TYPE_DISTANCE, ER_COLL_QUERY_TYPE_TOLERANCE
contact_type, // ER_COLL_FIRST_CONTACT, ER_COLL_ALL_CONTACTS
rel_err, // the relative error margin from actual distance
abs_err, // the absolute error margin from actual distance
tolerance, // Tolerance [m]
pres // pres collision result depending on query type is ::ER_CollideResult, ::ER_DistanceResult or ::ER_ToleranceResult
);
fprintf(fp,"i=%d erColl_ChkCollision() T_2.p[2]=%.5lf , collision = %ld\n",i,T_2.p[2],collision);
if (collision==ER_COLL_ERROR || collision==ER_COLL_HND_INVALID)
{
}
//~~~~~~~~~~~~~~~~~~~~~~~~~
// Output of collision results
//~~~~~~~~~~~~~~~~~~~~~~~~~
if (pres) // Pointer 'pres' points to one collision result structure: ER_CollideResult, ER_DistanceResult or ER_ToleranceResult
Erk_CollisionResult_Output(collision,query_type,i,pres); // Store collision results into file stream 'fp'
else
{
//~~~~~~~~~~~~~~~~~~~~~~~~~
// Get collision results
// Using
// erColl_GetResults_Collide()
// erColl_GetResults_Distance()
// erColl_GetResults_Tolerance()
//~~~~~~~~~~~~~~~~~~~~~~~~~
switch (query_type) {
pres = (void*) &er_cres;
break;
pres = (void*) &er_dres;
break;
pres = (void*) &er_tres;
break;
};
if (pres)
Erk_CollisionResult_Output(collision,query_type,i,pres); // Store collision results into file stream 'fp'
}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~
// Free collision result structures depending on query_type
//~~~~~~~~~~~~~~~~~~~~~~~~~
if (pres)
//~~~~~~~~~~~~~~~~~~~~~~~~~
// erColl_UnloadModel
//~~~~~~~~~~~~~~~~~~~~~~~~~
// 1st Model
er_coll_hnd = &er_coll_hnd_1;
erColl_UnloadModel(er_coll_hnd);
// 2nd Model
er_coll_hnd = &er_coll_hnd_2;
erColl_UnloadModel(er_coll_hnd);
return 0;
}
// ....
Parameters
[in]er_coll_hnd_1unique Collision handle for the 1st Model ER_COLLISION_HND
[in]iT_1a location of the 1st Model w.r.t. inertia DFRAME
[in]er_coll_hnd_2unique Collision handle for the 2nd Model ER_COLLISION_HND
[in]iT_2a location of the 2nd Model w.r.t. inertia DFRAME
[in]query_typecollision query type
[in]contact_typecollision contact type
[in]rel_errrelative error margin from actual distance
[in]abs_errabsolute error margin from actual distance
[in]toleranceTolerance value query_type
[out]prespointer to collision result structure ER_CollideResult, ER_DistanceResult or ER_ToleranceResult, depending on query type
Return values
3- ER_COLL_DETECTED - Collision detected
1- ER_COLL_ERROR - Error, kernel not initialized
2- ER_COLL_HND_INVALID - Collision handle invalid
DLLAPI long ER_STDCALL erColl_ChkCollision_res_free ( long  query_type,
void *  pres 
)

Frees allocated memory for Collision results for parameter pres
The query type query_type can be one of the following values.
0: ER_COLL_QUERY_TYPE_UNDEF skip operation
1: ER_COLL_QUERY_TYPE_COLLIDE frees allocated data in ER_CollideResult
2: ER_COLL_QUERY_TYPE_DISTANCE frees allocated data in ER_DistanceResult
3: ER_COLL_QUERY_TYPE_TOLERANCE frees allocated data in ER_ToleranceResult
Remarks
Note that the allocated memory in the Collision results structures must be administrated by the Kernel and not in the host application.

// Example
//
// Erk_CollisionResult_Exit(...) to frees collision result structures depending on query_type
//
int Erk_CollisionResult_Exit(long query_type, void *pres)
// frees collision result structures depending on query_type
{
if (!pres)
return ER_COLL_ERROR;
long ret = erColl_ChkCollision_res_free(query_type,pres);
return ret;
}
// ....
Parameters
[in]query_typecollision query type
[out]prespointer to collision result structure ER_CollideResult, ER_DistanceResult or ER_ToleranceResult, depending on query type
Return values
0- ER_COLL_OK - Ok, free memory done
1- ER_COLL_ERROR - Error, kernel not initialized
DLLAPI long ER_STDCALL erColl_EndModel ( ER_COLLISION_HND  er_coll_hnd)

Stop building a Model.

Parameters
[in]er_coll_hnda valid unique Collision handle ER_COLLISION_HND
Return values
0- ER_COLL_OK - OK
1- ER_COLL_ERROR - Error, kernel not initialized
2- ER_COLL_HND_INVALID - Collision handle invalid
DLLAPI long ER_STDCALL erColl_GetResults_Collide ( ER_CollideResult er_cres)

Get Collision result for query ER_COLL_QUERY_TYPE_COLLIDE. Remarks
Call erColl_ChkCollision() first, before calling this function
Call erColl_ChkCollision_res() to receive the collision result immediately.

Parameters
[out]er_crescollide results ER_CollideResult
Return values
0- OK
1- Error, kernel not initialized
DLLAPI long ER_STDCALL erColl_GetResults_Distance ( ER_DistanceResult er_dres)

Get Collision result for query ER_COLL_QUERY_TYPE_DISTANCE. Remarks
Call erColl_ChkCollision() first, before calling this function
Call erColl_ChkCollision_res() to receive the collision result immediately.

Parameters
[out]er_dresdistance results ER_DistanceResult
Return values
0- OK
1- Error, kernel not initialized
DLLAPI long ER_STDCALL erColl_GetResults_Tolerance ( ER_ToleranceResult er_tres)

Get Collision result for query ER_COLL_QUERY_TYPE_TOLERANCE. Remarks
Call erColl_ChkCollision() first, before calling this function
Call erColl_ChkCollision_res() to receive the collision result immediately.

Parameters
[out]er_trestolerance results ER_ToleranceResult
Return values
0- OK
1- Error, kernel not initialized
DLLAPI long ER_STDCALL erColl_UnloadModel ( ER_COLLISION_HND er_coll_hnd)

Unload a Model. Free all allocated memory.

Parameters
[in]er_coll_hnda valid unique Collision handle ER_COLLISION_HND
Return values
0- ER_COLL_OK - OK
1- ER_COLL_ERROR - Error, kernel not initialized
2- ER_COLL_HND_INVALID - Collision handle invalid
DLLAPI long ER_STDCALL erConnectConveyor ( ER_HND  er_hnd,
ER_HND  er_hnd_connect 
)

Connects a conveyor kinematics with handle er_hnd_connect to the robot kinematics with handle er_hnd.
Remarks
Use erConnectConveyorSetSync() for synchronized motion with a conveyor.
Use erConnectConveyorGetSync() to receive synchronization status between robot and the connected conveyor.

// Example:
long ret;
ER_HND c_er_hnd; // valid robot handle
ret = erInitKin(&c_er_hnd); // Create a unique kinematics handle
ret = erLoadKin(c_er_hnd,"a robot file name"); // Load an EASY-ROB rob file (*.rob) containing a kinematics
ER_HND er_hnd_conveyor; // valid conveyor handle
ret = erInitKin(&er_hnd_conveyor); // Create a unique kinematics handle
ret = erLoadKin(er_hnd_conveyor,"a conveyor file name"); // Load an EASY-ROB rob file (*.rob) containing a kinematics
ret = erConnectConveyor(c_er_hnd,er_hnd_conveyor); // Connects a conveyor to the robot
long sync_type = ER_SYNC_ON; // device synchronization, ER_SYNC_OFF, ER_SYNC_ON
ret = erConnectConveyorSetSync(c_er_hnd,sync_type); // Set robots synchronization flag
...
Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
[in]er_hnd_connectunique kinematics handle for the conveyor ER_HND
Return values
0- OK
1- Error, not licensed option, invalid handle
DLLAPI ER_HND ER_STDCALL erConnectConveyorGetHND ( ER_HND  er_hnd)

Get robots connection handle between robot and conveyor.
See also erConnectConveyor()

Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
Return values
NULL- not connected or error
notNULL - valid handle for connected device
DLLAPI long ER_STDCALL erConnectConveyorGetSync ( ER_HND  er_hnd)

Get robots synchronization flag for synchronization between robot and conveyor.
See also erConnectConveyorSetSync()

Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
Return values
0- ER_SYNC_UNDEF - Error, synchronization not defined, robot is maybe not connected to conveyor
1- ER_SYNC_OFF - synchronization is OFF
2- ER_SYNC_ON - synchronization is ON
-1- Error, not licensed option, invalid handle
DLLAPI long ER_STDCALL erConnectConveyorSetSync ( ER_HND  er_hnd,
long  connect_sync 
)

Set robots synchronization flag for synchronization between robot and conveyor.
The synchronization flag connect_sync can be one of the following values.
1: ER_SYNC_OFF, 2: ER_SYNC_ON
See also erConnectConveyorGetSync()

Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
[in]connect_syncsynchronization flag
Return values
0- OK
1- Error, not licensed option, invalid handle
DLLAPI long ER_STDCALL erConnectPositioner ( ER_HND  er_hnd,
ER_HND  er_hnd_connect 
)

Connects a positioner kinematics with handle er_hnd_connect to the robot kinematics with handle er_hnd.
Remarks
Use erConnectPositionerSetSync() for synchronized motion with a positioner.
Use erConnectPositionerGetSync() to receive synchronization status between robot and the connected positioner.

// Example:
long ret;
ER_HND c_er_hnd; // valid robot handle
ret = erInitKin(&c_er_hnd); // Create a unique kinematics handle
ret = erLoadKin(c_er_hnd,"a robot file name"); // Load an EASY-ROB rob file (*.rob) containing a kinematics
ER_HND er_hnd_positioner; // valid positioner handle
ret = erInitKin(&er_hnd_positioner); // Create a unique kinematics handle
ret = erLoadKin(er_hnd_positioner,"a positioner file name"); // Load an EASY-ROB rob file (*.rob) containing a kinematics
ret = erConnectPositioner(c_er_hnd,er_hnd_positioner); // Connects a positioner to the robot
long sync_type = ER_SYNC_ON; // device synchronization, ER_SYNC_OFF or ER_SYNC_ON
ret = erConnectPositionerSetSync(c_er_hnd,sync_type); // Set robots synchronization flag
...
Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
[in]er_hnd_connectunique kinematics handle for the positioner ER_HND
Return values
0- OK
1- Error, not licensed option, invalid handle
DLLAPI ER_HND ER_STDCALL erConnectPositionerGetHND ( ER_HND  er_hnd)

Get robots connection handle between robot and positioner.
See also erConnectPositioner()

Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
Return values
NULL- not connected or error
notNULL - valid handle for connected device
DLLAPI long ER_STDCALL erConnectPositionerGetSync ( ER_HND  er_hnd)

Get robots synchronization flag for synchronization between robot and positioner.
See also erConnectPositionerSetSync()

Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
Return values
0- ER_SYNC_UNDEF - Error, synchronization not defined, robot is maybe not connected to positioner
1- ER_SYNC_OFF - synchronization is OFF
2- ER_SYNC_ON - synchronization is ON
-1- Error, not licensed option, invalid handle
DLLAPI long ER_STDCALL erConnectPositionerSetSync ( ER_HND  er_hnd,
long  connect_sync 
)

Set robots synchronization flag for synchronization between robot and positioner.
The synchronization flag connect_sync can be one of the following values.
1: ER_SYNC_OFF, 2: ER_SYNC_ON
See also erConnectPositionerGetSync()

Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
[in]connect_syncsynchronization flag
Return values
0- OK
1- Error, not licensed option, invalid handle
DLLAPI long ER_STDCALL erConnectRobot ( ER_HND  er_hnd,
ER_HND  er_hnd_connect 
)

Connects a slave robot kinematics with handle er_hnd_connect to the robot kinematics with handle er_hnd.
Remarks
Use erConnectRobotSetSync() for synchronized motion with a slave robot.
Use erConnectRobotGetSync() to receive synchronization status between robot and the connected slave robot.

// Example:
long ret;
ER_HND c_er_hnd; // valid robot handle
ret = erInitKin(&c_er_hnd); // Create a unique kinematics handle
ret = erLoadKin(c_er_hnd,"a robot file name"); // Load an EASY-ROB rob file (*.rob) containing a kinematics
ER_HND er_hnd_slave_robot; // valid slave robot handle
ret = erInitKin(&er_hnd_slave_robot); // Create a unique kinematics handle
ret = erLoadKin(er_hnd_slave_robot,"a slave robot file name"); // Load an EASY-ROB rob file (*.rob) containing a kinematics
ret = erConnectConveyor(c_er_hnd,er_hnd_slave_robot); // Connects a slave robot to the robot
long sync_type = ER_SYNC_ON; // device synchronization, ER_SYNC_OFF, ER_SYNC_ON
ret = erConnectRobot(c_er_hnd,sync_type); // Set robots synchronization flag
...
Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
[in]er_hnd_connectunique kinematics handle for the slave robot ER_HND
Return values
0- OK
1- Error, not licensed option, invalid handle
DLLAPI ER_HND ER_STDCALL erConnectRobotGetHND ( ER_HND  er_hnd)

Get robots connection handle between robot and slave robot.
See also erConnectRobot()

Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
Return values
NULL- not connected or error
notNULL - valid handle for connected device
DLLAPI long ER_STDCALL erConnectRobotGetSync ( ER_HND  er_hnd)

Get robots synchronization flag for synchronization between robot and slave robot.
See also erConnectRobotSetSync()

Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
Return values
0- ER_SYNC_UNDEF - Error, synchronization not defined, robot is maybe not connected to slave robot
1- ER_SYNC_OFF - synchronization is OFF
2- ER_SYNC_ON - synchronization is ON
-1- Error, not licensed option, invalid handle
DLLAPI long ER_STDCALL erConnectRobotSetSync ( ER_HND  er_hnd,
long  connect_sync 
)

Set robots synchronization flag for synchronization between robot and slave robot.
The synchronization flag connect_sync can be one of the following values.
1: ER_SYNC_OFF, 2: ER_SYNC_ON
See also erConnectRobotGetSync()

Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
[in]connect_syncsynchronization flag
Return values
0- OK
1- Error, not licensed option, invalid handle
DLLAPI long ER_STDCALL erConnectTrackMotion ( ER_HND  er_hnd,
ER_HND  er_hnd_connect 
)

Connects a track motion kinematics with handle er_hnd_connect to the robot kinematics with handle er_hnd.
Remarks
Use erConnectTrackMotionSetSync() for synchronized motion with a track motion.
Use erConnectTrackMotionGetSync() to receive synchronization status between robot and the connected track motion.

// Example:
long ret;
ER_HND c_er_hnd; // valid robot handle
ret = erInitKin(&c_er_hnd); // Create a unique kinematics handle
ret = erLoadKin(c_er_hnd,"a robot file name"); // Load an EASY-ROB rob file (*.rob) containing a kinematics
ER_HND er_hnd_track_motion; // valid track motion handle
ret = erInitKin(&er_hnd_track_motion); // Create a unique kinematics handle
ret = erLoadKin(er_hnd_track_motion,"a track motion file name"); // Load an EASY-ROB rob file (*.rob) containing a kinematics
ret = erConnectTrackMotion(c_er_hnd,er_hnd_track_motion); // Connects a track motion to the robot
long sync_type = ER_SYNC_ON; // device synchronization, ER_SYNC_OFF, ER_SYNC_ON, ER_SYNC_CONVEYOR
ret = erConnectTrackMotion(c_er_hnd,sync_type); // Set robots synchronization flag
...
Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
[in]er_hnd_connectunique kinematics handle for the track motion ER_HND
Return values
0- OK
1- Error, not licensed option, invalid handle
DLLAPI ER_HND ER_STDCALL erConnectTrackMotionGetHND ( ER_HND  er_hnd)

Get robots connection handle between robot and track motion.
See also erConnectTrackMotion()

Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
Return values
NULL- not connected or error
notNULL - valid handle for connected device
DLLAPI long ER_STDCALL erConnectTrackMotionGetSync ( ER_HND  er_hnd)

Get robots synchronization flag for synchronization between robot and track motion.
See also erConnectTrackMotionSetSync()

Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
Return values
0- ER_SYNC_UNDEF - Error, synchronization not defined, robot is maybe not connected to track motion
1- ER_SYNC_OFF - synchronization is OFF
2- ER_SYNC_ON - synchronization is ON
4- ER_SYNC_CONVEYOR - additional synchronization with Conveyor
-1- Error, not licensed option, invalid handle
DLLAPI long ER_STDCALL erConnectTrackMotionSetSync ( ER_HND  er_hnd,
long  connect_sync 
)

Set robots synchronization flag for synchronization between robot and track motion.
The synchronization flag connect_sync can be one of the following values.
1: ER_SYNC_OFF, 2: ER_SYNC_ON, 4: ER_SYNC_CONVEYOR
See also erConnectTrackMotionGetSync()

Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
[in]connect_syncsynchronization flag
Return values
0- OK
1- Error, not licensed option, invalid handle
DLLAPI long ER_STDCALL erCONTINUE_MOTION ( ER_HND  er_hnd)

Continues a motion that was stopped with the erSTOP_MOTION() function.
Opcode 152, Chapter 3.4.8, Page 3-102
See also erSTOP_MOTION(), erCANCEL_MOTION()
Remarks
After calling this function, the erGET_NEXT_STEP() should be called repeatedly in order to get the acceleration steps.

Parameters
[in]er_hndunique kinematics handle ER_HND
Return values
0- OK
1- Error, invalid handle
-55- the function is not performed. Motion in progress
DLLAPI long ER_STDCALL erDEFINE_EVENT ( ER_HND  er_hnd,
long  event_id,
long  target_id,
double  resolution,
long  type_of_event,
double  event_spec 
)

Defines an internal asynchronous event that is to be generated relative to position and/or time in the Kernel.
Opcode 148, Chapter 3.4.8, Page 3-96
Function not supported

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]event_id
[in]target_id
[in]resolution
[in]type_of_event
[in]event_spec
Return values
0- OK
1- Error, invalid handle
-1- not supported
DLLAPI void ER_STDCALL erEnableCallBack_LogProc ( long  onoff)

Enable/Disable Log messages.
This function enables or disables Log Messages used with callback function TerLogProc This function can be called before kernel initialization erKernelInitialize()

// Example:
long m_LogProc; // 1-enable Log Messages for Callback Function, see erSetCallBack_LogProc(); 0-disable
m_LogProc = 1; // enable log messages before kernel initialization
...
char HostPath[LS_MAXSTR]; // HostApplictaionPathPath
getcwd(HostPath,LS_MAXSTR); // get current workinbg directory
char *Sold_To_ID = NULL; // individual customer identifier
erKernelInitialize(HostPath,Sold_To_ID);
...
Parameters
[in]onoff=1 enable, =0 disable
Return values
void
DLLAPI long ER_STDCALL erFindConfig ( ER_HND  er_hnd,
long *  config 
)

Find current robot configuration
Finds current robot configuration, depending on current robot joint location.
The config is valid for 1 to number of possible configurations, see erGetNumConfigs()
Remarks
If the robot configuration cannot be found, a notify message ER_NOTIFY_CODE_FIND_CONFIG_FAILED will be generated.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]configrobot configuration number [1..number of robot configurations]
Return values
0- OK
1- Error, invalid handle
DLLAPI int ER_STDCALL erGeoMngr_CheckBoundingBoxCollision ( DFRAME T1,
const double *  bbox1,
DFRAME T2,
const double *  bbox2,
double  tolerance 
)
DLLAPI int ER_STDCALL erGeoMngr_FreeGeometry ( ER_HND  er_hnd,
TErGeoHandle  GeoHandle 
)

Free or delete a geometry.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]GeoHandleunique geometry handle TErGeoHandle
Return values
0- OK
1- Error
DLLAPI const double* ER_STDCALL erGeoMngr_GetAxisBBox ( ER_HND  er_hnd,
int  axis_id 
)
DLLAPI int ER_STDCALL erGeoMngr_GetAxisGeometry ( ER_HND  er_hnd,
int  axis_nr,
int  geometryIndex,
LOAD_GEOMETRY_DATA p_load_geometry_data,
DFRAME kinMat 
)
DLLAPI const double* ER_STDCALL erGeoMngr_GetDeviceBBox ( ER_HND  er_hnd)
DLLAPI int ER_STDCALL erGeoMngr_GetGeometry ( ER_HND  er_hnd,
int  geometryIndex,
LOAD_GEOMETRY_DATA p_load_geometry_data,
DFRAME kinMat 
)
DLLAPI const double* ER_STDCALL erGeoMngr_GetGeometryBBox ( TErGeoHandle  geometryHandle)
DLLAPI int ER_STDCALL erGeoMngr_GetGeometryCloneCount ( TErGeoHandle  geometryHandle)
DLLAPI TErGeoHandle ER_STDCALL erGeoMngr_GetGeometryCloneHandle ( TErGeoHandle  geometryHandle)
DLLAPI ER_COLLISION_HND* ER_STDCALL erGeoMngr_GetGeometryCollisionHandle ( TErGeoHandle  geometryHandle)
DLLAPI int* ER_STDCALL erGeoMngr_GetGeometryIsCollided ( TErGeoHandle  geometryHandle)
DLLAPI int ER_STDCALL erGeoMngr_GetGeometryNumObjs ( TErGeoHandle  geometryHandle)
DLLAPI double* ER_STDCALL erGeoMngr_GetGeometryObjColor ( TErGeoHandle  geometryHandle,
int  objidx 
)
DLLAPI long ER_STDCALL erGeoMngr_GetGeometryObjColorCode ( TErGeoHandle  geometryHandle,
int  objidx 
)
DLLAPI size_t* ER_STDCALL erGeoMngr_GetGeometryObjLine ( TErGeoHandle  geometryHandle,
int  objidx,
int  index 
)
DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumLines ( TErGeoHandle  geometryHandle,
int  objidx 
)
DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumPointNormals ( TErGeoHandle  geometryHandle,
int  objidx 
)
DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumPoints ( TErGeoHandle  geometryHandle,
int  objidx 
)
DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumPolygons ( TErGeoHandle  geometryHandle,
int  objidx 
)
DLLAPI double* ER_STDCALL erGeoMngr_GetGeometryObjPoint ( TErGeoHandle  geometryHandle,
int  objidx,
int  index 
)
DLLAPI double* ER_STDCALL erGeoMngr_GetGeometryObjPointNormal ( TErGeoHandle  geometryHandle,
int  objidx,
int  index 
)
DLLAPI size_t* ER_STDCALL erGeoMngr_GetGeometryObjPolygon ( TErGeoHandle  geometryHandle,
int  objidx,
int  index 
)
DLLAPI int ER_STDCALL erGeoMngr_GetNumAxisGeometries ( ER_HND  er_hnd,
int  axis_nr 
)
DLLAPI int ER_STDCALL erGeoMngr_GetNumGeometries ( ER_HND  er_hnd)

Get number of loaded geometries for specified device.

Parameters
[in]er_hndunique kinematics handle ER_HND
Return values
0- no geometries loaded or invalid handle
>0- number of loaded geometries
DLLAPI int ER_STDCALL erGeoMngr_GetVersion ( )

GeoMngr Version.

Return values
versionGeoMngr version number
DLLAPI TErGeoHandle ER_STDCALL erGeoMngr_LoadGeometry ( ER_HND  er_hnd,
LOAD_GEOMETRY_DATA p_load_geometry_data 
)

Load a geometry.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]p_load_geometry_dataLOAD_GEOMETRY_DATA
Return values
TErGeoHandleunique geometry handle created by GeoMngr
DLLAPI int ER_STDCALL erGeoMngr_SetGeometryCollisionHandle ( TErGeoHandle  geometryHandle,
ER_COLLISION_HND  collisionHandle 
)
DLLAPI int ER_STDCALL erGeoMngr_SetGeometryIsCollided ( TErGeoHandle  geometryHandle,
int  isCollided 
)
DLLAPI long ER_STDCALL erGET_CARTESIAN_ORIENTATION_ACCELERATION ( ER_HND  er_hnd,
long  rotation_no,
double *  accel_ori_value,
long  accel_type 
)

Gets acceleration for the orientation during cartesian motion [m/sec^2].
The rotation_no should be 1.
The accel_type specifies the type of acceleration and can be one of the following values.
1: Acceleration, 2: Deceleration.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]rotation_noNumber of the rotation axis
[out]accel_ori_valueAcceleration for orientation [rad/^2]
[in]accel_typeType of acceleration.
Return values
0- OK
1- Error
DLLAPI long ER_STDCALL erGET_CARTESIAN_POSITION_ACCELERATION ( ER_HND  er_hnd,
double *  accel_value,
long  accel_type 
)

Gets acceleration for cartesian motion [m/sec^2].
The accel_type specifies the type of acceleration and can be one of the following values.
1: Acceleration, 2: Deceleration.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]accel_valueCartesian speed in [m/s]
[in]accel_typeType of acceleration.
Return values
0- OK
1- Error
DLLAPI TErTargetID ER_STDCALL erGET_CURRENT_TARGETID ( ER_HND  er_hnd)

Returns the TargetID of the motion in execution.
Opcode 163, Chapter 3.4.6, Page 3-91.

Parameters
[in]er_hndunique kinematics handle ER_HND
Return values
0- OK
1- Error, invalid handle
TErTargetID- target identifier that was passed with erSET NEXT TARGET(), TErTargetID
DLLAPI void** ER_STDCALL erGet_erk_kin_usr_ptr ( ER_HND  er_hnd)
DLLAPI long ER_STDCALL erGET_EVENT ( ER_HND  er_hnd,
long  event_nr 
)

This function gets information about an internal asynchronous event that occurred in the Kernel.
Opcode 150, Chapter 3.4.8, Page 3-100
Function not supported

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]event_nrspecifies which of the occurred events to get
Return values
0- OK
1- Error, invalid handle
-1- not supported
DLLAPI long ER_STDCALL erGET_MESSAGE ( ER_HND  er_hnd,
long  message_number 
)

Gives information about controller messages that occurred.
Opcode 154, Chapter 3.4.9, Page 3-104
Function not supported Use notify messages instead TErNotifyData.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]message_numberspecifies which of the reported message to get
Return values
0- OK
1- Error, invalid handle
-1- not supported
DLLAPI long ER_STDCALL erGet_n_Kin ( ER_HND  er_hnd)

Get the number of loaded kinematics.

Parameters
[in]er_hndunique kinematics handle ER_HND
Return values
0- Error, invalid handle
number_of_robots
DLLAPI long ER_STDCALL erGet_n_Kin_IR ( ER_HND  er_hnd)

Get the number of loaded kinematics with more than 3 joints and inverse kinematics.

Parameters
[in]er_hndunique kinematics handle ER_HND
Return values
0- Error, invalid handle
number_of_robots_ir
DLLAPI long ER_STDCALL erGET_NEXT_STEP ( ER_HND  er_hnd,
long  output_format,
NEXT_STEP_DATA p_next_step_data,
double  time 
)

Returns the next interpolated position step
the elapsed time and supplementary information like events, joint limits and messages.
Opcode 118, Chapter 3.4.3, Page 3-54
The output_format specifies the format desired as output and can be one of the following values.
1: Joint encoder, 2: Joint angle/distance, 4: Cartesian ( w/orientation ), 5: Cartesian and joint encoder, 6: Cartesian and joint angle/distance
Per default, output_format should be set = 2
Remarks
After the target position has been set (using the erSET_NEXT_TARGET()), this function should be called repeatedly until the Status is 1 or 2, specifying that the Host-Application interpreter can continue. If Status is 1 and the Host-Application interpreter finds more target positions it should send the next one to this Kernel using the erSET_NEXT_TARGET() function before erGET_NEXT_STEP() is called again. If the Status is 1 and the Host-Application interpreter finds no more target positions it can continue to call this function until Status is 2.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]output_formatformat desired as output
[out]p_next_step_datadata for next interpolation step NEXT_STEP_DATA
[in]timetime [s]
Return values
2- final step, target reached or speed is zero
1- need more data, nothing to do
0- OK, next step is calculated successful
-13- the specified output format is not supported
-17- the specified motion type is not supported
-25- the motion is not possible in the specified time
-42- no target set
-51- no solution is found. One joint is out of range
-52- Cartesian position is out of work range
-68- fatal error, stopped calculating
-76- incomplete or inconsistent motion specification, can't move
-1053- Cartesian position is out of boudary work range
-1059- Cartesian position is singular
DLLAPI long ER_STDCALL erGET_NEXT_TOOLPATH_STEP ( ER_TOOLPATH_HND  er_tpth_hnd,
long  cntrl,
NEXT_STEP_DATA p_next_step_data = NULL,
double  time = 0 
)

Interpolation through a complete tool path
Parameter cntrl is an individual bitwise-inclusive-OR operator (|) of ER_MOP_GNTPS_CNTRL_NEXT_STEP, ER_MOP_GNTPS_CNTRL_UPDATE_GEO, ER_MOP_GNTPS_CNTRL_STEPDATA_OUT
Remarks
Before using this method, call erGET_NEXT_TOOLPATH_STEP_INIT(), see also erGET_NEXT_STEP()

// Example:
int CErERK::ToolPath_erGET_NEXT_TOOLPATH_STEP(ER_TOOLPATH_HND my_tp_hnd, double InterpolationTime, char *folder, char *robfile)
// IN:
// my_tp_hnd - tool path handle
// InterpolationTime - sampling rate for interpolation in [ms]
// folder - folder, loacation of logfiles
// robfile - use for logfile names
//....
//----------------------------------
// Step 0
// 1. Initializes the MotionPlanner based on current settings
//----------------------------------
erk_toolpath.erToolPathSetInitPos(my_tp_hnd,InterpolationTime); // Initializes the Trajectory Planner, InterpolationTime [ms]
//----------------------------------
// Step I
// Initialize Interpolation -> ER_MOP_GNTPS_CNTRL_INIT
//----------------------------------
int res = erk_toolpath.erGET_NEXT_TOOLPATH_STEP_INIT(my_tp_hnd,cntrl);
if (res)
return res; // Error
//----------------------------------
// Step II
// Start Interpolation -> ER_MOP_GNTPS_CNTRL_NEXT_STEP
//----------------------------------
NEXT_STEP_DATA next_step_data;
double *TrajectoryTime = &next_step_data.TrajectoryTime; // resulted trajectory time
double gtime=0;
double dt_ipo = InterpolationTime*0.001; // dt_ipo in [sec]
// call erGET_NEXT_TOOLPATH_STEP() until the end of ToolPath
int gnts_status=ER_MOP_GNS_OK_SUCCESS;
while (gnts_status!=ER_MOP_GNS_ERROR && gnts_status!=ER_MOP_GNT_NO_TARGETS && gnts_status!=ER_MOP_GNS_TOOLPATH_REACHED)
{
gtime += dt_ipo; // time in [sec]
//
// erGET_NEXT_TOOLPATH_STEP returns at each interpolation step a current status 'gnts_status'
//
gnts_status = erk_toolpath.erGET_NEXT_TOOLPATH_STEP(my_tp_hnd,cntrl,&next_step_data,gtime);
switch (gnts_status) {
default:
break;
// Error
if (fp_er_dat) fprintf(fp_er_dat,"Host erGET_NEXT_TOOLPATH_STEP() Error MOP_GNS_ERROR gtime %.3lf TrajectoryTime %.3lf\n",gtime,*TrajectoryTime);
break;
// Error
if (fp_er_dat) fprintf(fp_er_dat,"Host erGET_NEXT_TOOLPATH_STEP() Error MOP_GNS_NO_TARGETS gtime %.3lf TrajectoryTime %.3lf\n",gtime,*TrajectoryTime);
break;
// Interpolates between two target locations
// Get Results ....
break;
// It is one step (<dt_ipo) before reaching the target location
// If Flyby is enabled, the next interpolation step moves to the next target, if exist
if (fp_er_dat) fprintf(fp_er_dat,"Host erGET_NEXT_TOOLPATH_STEP() NEED_MORE_DATA gtime %.3lf TrajectoryTime %.3lf\n",gtime,*TrajectoryTime);
// Get Results ....
break;
// The target location is exactly reached. Flyby disabled normally
if (fp_er_dat) fprintf(fp_er_dat,"Host erGET_NEXT_TOOLPATH_STEP() TARGET_REACHED gtime %.3lf TrajectoryTime %.3lf\n",gtime,*TrajectoryTime);
// Get Results ....
break;
// All target location are interpolated successfully
if (fp_er_dat) fprintf(fp_er_dat,"Host erGET_NEXT_TOOLPATH_STEP() TOOLPATH_REACHED gtime %.3lf TrajectoryTime %.3lf\n",gtime,*TrajectoryTime);
// Get Results ....
break;
}
}
//----------------------------------
// Step III
// Terminate Interpolation -> ER_MOP_GNTPS_CNTRL_TERMINATE
//----------------------------------
// ....
return res;
Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[in]cntrl
[out]p_next_step_datadata for next interpolation step NEXT_STEP_DATA
[in]timetime [s]
Return values
ER_MOP_GNS_OK_SUCCESS- OK, next step is calculated successful
ER_MOP_GNS_NEED_MORE_DATA- need more data, nothing to do
ER_MOP_GNS_TARGET_REACHED- final step, target reached or speed is zero
ER_MOP_GNS_TOOLPATH_REACHED- final step, last toolpath target reached
ER_MOP_GNS_ERROR- Error
ER_MOP_GNT_NO_TARGETS- Error, no targets available
DLLAPI ER_TARGET_LOCATION_HND ER_STDCALL erGET_NEXT_TOOLPATH_STEP_cTargetLocation ( ER_TOOLPATH_HND  er_tpth_hnd)

Get the current 'target location handle' while interpolation through a complete tool path.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
Return values
handlefor target location ER_TARGET_LOCATION_HND
NULL- Error
DLLAPI long ER_STDCALL erGET_NEXT_TOOLPATH_STEP_INIT ( ER_TOOLPATH_HND  er_tpth_hnd,
long  cntrl = ER_MOP_GNTPS_CNTRL_INIT 
)

Initializes the interpolation through a complete tool path
Parameter cntrl must be set to ER_MOP_GNTPS_CNTRL_INIT
and can be extended by an individual bitwise-inclusive-OR operator (|) of.

Remarks
This method must be called before the interpolation starts, see erGET_NEXT_TOOLPATH_STEP()

// Example:
int CErERK::ToolPath_erGET_NEXT_TOOLPATH_STEP(ER_TOOLPATH_HND my_tp_hnd, double InterpolationTime, char *folder, char *robfile)
// IN:
// my_tp_hnd - tool path handle
// InterpolationTime - sampling rate for interpolation in [ms]
// folder - folder, loacation of logfiles
// robfile - use for logfile names
//....
//----------------------------------
// Step I
// Initialize Interpolation -> ER_MOP_GNTPS_CNTRL_INIT
//----------------------------------
// Optional, create output file names and streams
if (folder && robfile)
{
// Create output file names for log_file and prg_file
char *tp_log_fln = erk_toolpath.erToolPathLogFileName(my_tp_hnd);
char *tp_prg_fln = erk_toolpath.erToolPathPrgFileName(my_tp_hnd);
sprintf(tp_log_fln,"%s\\%s-%s",folder,"er_ERK-UDll-Shell-MOP-Positioner-GNS",robfile);
#ifdef _WIN64
sprintf(&tp_log_fln[strlen(tp_log_fln)-4],"x64.dat"); // new extension dat
#else
sprintf(&tp_log_fln[strlen(tp_log_fln)-4],".dat"); // new extension dat
#endif
strcpy(tp_prg_fln,tp_log_fln);
sprintf(&tp_prg_fln[strlen(tp_prg_fln)-4],".prg"); // change extension prg
}
int res = erk_toolpath.erGET_NEXT_TOOLPATH_STEP_INIT(my_tp_hnd,cntrl);
if (res)
return res; // Error
// ....
Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[in]cntrl
Return values
0- Ok
1- Error
DLLAPI long ER_STDCALL erGET_NEXT_TOOLPATH_STEP_TERMINATE ( ER_TOOLPATH_HND  er_tpth_hnd)

Terminates interpolation
Remarks
This method must be called after the interpolation of a tool path, see erGET_NEXT_TOOLPATH_STEP()

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
Return values
0- Ok
1- Error
DLLAPI long ER_STDCALL erGet_num_dofs ( ER_HND  er_hnd)

Get number of active robot joints.

Parameters
[in]er_hndunique kinematics handle ER_HND
Return values
n_dof_activenumber of active robot joints
0Error, invalid handle
DLLAPI long ER_STDCALL erGet_num_dofs_passive ( ER_HND  er_hnd)

Get number of passive robot joints.

Parameters
[in]er_hndunique kinematics handle ER_HND
Return values
n_dof_passivenumber of passive robot joints
0Error, invalid handle
DLLAPI long ER_STDCALL erGetAccSet ( ER_HND  er_hnd,
double *  acc,
double *  ramp 
)

Get lagging of accelerations.
Using AccSet is a proper way to come close to real cycle times when the robot carries high payloads for example.
The parameter acc and ramp are given in percentage values in the range from 20% to 100%.
acc: Acceleration and Deceleration as percentage value of normal values.
ramp: Change of Acceleration and Deceleration as percentage value of normal values.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]accacceleration and deceleration
[out]rampchange of acceleration and deceleration
Return values
0- OK
1- Error
DLLAPI long ER_STDCALL erGetAqMax ( ER_HND  er_hnd,
double *  aq_max 
)

Get maximum of robot joint accelerations.
Robot joint accelerations aq_max are in units [m/s^2] for prismatic joint type and [rad/s^2] for rotational joint type.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]aq_maxmaximum of robot joint accelerations, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetAutoAccel ( ER_HND  er_hnd,
long *  autoaccel 
)

Get status for automatic calculation of acceleration depending on programmed speed.
Using AutoAccel is a proper way to come close to real cycle times.
The parameter autoaccel specifies the effect when planning a new motion and can be one of the following values.
0: ER_AUTOACCEL_MODE_OFF disables auto accel calculation for all motions
1: ER_AUTOACCEL_MODE_POS calculation for CP motions for position
2: ER_AUTOACCEL_MODE_ORI calculation for CP motions
4: ER_AUTOACCEL_MODE_AX Calculation for PTP motions
3: ER_AUTOACCEL_MODE_DEF calculation for CP motions for position and for orientation
7: ER_AUTOACCEL_MODE_ON enables calculation for all motions
Remarks
If auto accel is enabled, other acceleration functions such as erSET_JOINT_ACCELERATIONS(), erSET_CARTESIAN_POSITION_ACCELERATION() and erSET_CARTESIAN_ORIENTATION_ACCELERATION() will have no effect.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]autoacceldefines auto acceleration mode
Return values
0- OK
1- Error
DLLAPI long ER_STDCALL erGetAxis_couplingA2A3 ( ER_HND  er_hnd,
long *  axis_couplingA2A3 
)

Get robot axis coupling between axis 2 and 3
The axis coupling can be one of the following values.
KIN_A2A3_COUPLING_NO=0, KIN_A2A3_COUPLING_YES =1 or KIN_A2A3_COUPLING_UNKNOWN =2
see also erSetAxis_couplingA2A3()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]axis_couplingA2A3axis coupling between axis 2 and 3
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetAxMax ( ER_HND  er_hnd,
double *  ax_max 
)

Get maximum cartesian acceleration.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]ax_maxmaximum cartesian acceleration [m/s^2]
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetAxOriMax ( ER_HND  er_hnd,
double *  ax_ori_max 
)

Get maximum cartesian orientation acceleration.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]ax_ori_maxmaximum cartesian orientation acceleration [rad/s^2]
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetBackLink ( ER_HND  er_hnd,
long *  backlink 
)

Get robot back link status, obsolete function, use erGetBacklink()

DLLAPI long ER_STDCALL erGetBacklink ( ER_HND  er_hnd,
long *  backlink 
)

Get robot back link status
The back link status can be one of the following values.
KIN_BACK_LINK_NO=0, KIN_BACK_LINK_YES =1 or KIN_BACK_LINK_UNKNOWN =2
see also erSetBacklink()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]backlinkrobot back link status
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetBaseRobotBase ( ER_HND  er_hnd,
DFRAME bTbase 
)

Get $BASE (wobj) w.r.t robot base.
The $BASE frame has only effect when IPO_MODE_BASE is set in erSetExtTcpMode()
All targets are defined w.r.t to this BASE frame (program shifting)

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]bTbaseBASE frame w.r.t. to robot base 'b' DFRAME
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetBaseWorld ( ER_HND  er_hnd,
DFRAME iTbase 
)

Get $BASE (wobj) w.r.t inertia (world). The $BASE frame has only effect when IPO_MODE_BASE is set in erSetExtTcpMode()
All targets are defined w.r.t to this BASE frame (program shifting)

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]iTbaseBASE frame w.r.t. to inertia 'i' DFRAME
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetConfig ( ER_HND  er_hnd,
long *  config 
)

Get current robot configuration
Gets current robot configuration. See also erSetConfig().
The config is valid for 1 to number of possible configurations, see erGetNumConfigs().

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]configrobot configuration number [1..number of robot configurations]
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetConfigName ( ER_HND  er_hnd,
long  config_idx,
char *  config_name 
)

Get the name of robot configuration. Get the number of configurations with erGetNumConfigs()
.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]config_idxconfiguration index [1..number of robot configurations]
[out]config_namename of robot configuration, maximum lengths ER_MAXSTR
Return values
NULLinvalid handle
DLLAPI long ER_STDCALL erGetCounter_weight ( ER_HND  er_hnd,
long *  counter_weight 
)

Get robot counter weight
The robot counter weight can be one of the following values.
KIN_COUNTER_WEIGHT_NO=0, KIN_COUNTER_WEIGHT_YES =1 or KIN_COUNTER_WEIGHT_UNKNOWN =2
see also erSetCounter_weight()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]counter_weightrobot counter weight
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetCurrentStepData ( ER_HND  er_hnd,
CURRENT_STEP_DATA p_current_step_data 
)

Returns interpolation data for the current interpolated step
Remarks
After the next step data are calculated, calling erGET_NEXT_STEP() , this function return additional interpolated data,
such as motion type, distance to Target, time to Target, Target ID, Override, ...

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]p_current_step_datadata for current interpolation step CURRENT_STEP_DATA
Return values
0- OK, next step is calculated successful
1- Error, no interpolation data available
DLLAPI ER_EXTAX_KIN_DATA* ER_STDCALL erGetExtAxConveyor_extax_data ( ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND  hnd,
long  extax_idx 
)

External axis values for Conveyor
Values ER_EXTAX_KIN_DATA are:
.

  • ER_HND er_hnd_connect; ///< Handle of connected device
  • long axis_idx; ///< axis idx of controlled joint for connected device [0..ER_EXTAX_KIN_DATA_MAX-1]
  • double axis_value; ///< Target value [m,rad]
  • double speed_value; ///< Target speed [m/s,rad/s]

see example GetExtAxConveyorHnd()

Parameters
[in]hndunique handle for external axis data definition for Conveyor ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND
[in]extax_idx- axis idx of controlled joint for connected device [0..ER_EXTAX_KIN_DATA_MAX-1]
Return values
pointerto ER_EXTAX_KIN_DATA - external axis values
NULL- Error
DLLAPI long* ER_STDCALL erGetExtAxConveyor_number_extax_used ( ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND  hnd)

Number of external axis used for Conveyor
see example GetExtAxConveyorHnd()

Parameters
[in]hndunique handle for external axis data definition for Conveyor ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND
Return values
pointerto long - number of external axis used
NULL- Error
DLLAPI long* ER_STDCALL erGetExtAxConveyor_sync_type ( ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND  hnd)

Synchonization for Conveyor
For a Conveyor motion, the synchonization can be one of ER_SYNC_ON, ER_SYNC_OFF
see example GetExtAxConveyorHnd()

Parameters
[in]hndunique handle for external axis data definition for Conveyor ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND
Return values
pointerto long - synchonization
NULL- Error
DLLAPI ER_EXTAX_KIN_DATA* ER_STDCALL erGetExtAxPositioner_extax_data ( ER_TARGET_EXTAX_DEVICE_POSITIONER_HND  hnd,
long  extax_idx 
)

External axis values for Positioner/TurnTable
Values ER_EXTAX_KIN_DATA are:
.

  • ER_HND er_hnd_connect; ///< Handle of connected device
  • long axis_idx; ///< axis idx of controlled joint for connected device [0..ER_EXTAX_KIN_DATA_MAX-1]
  • double axis_value; ///< Target value [m,rad]
  • double speed_value; ///< Target speed [m/s,rad/s]

see example GetExtAxPositionerHnd()

Parameters
[in]hndunique handle for external axis data definition for Positioner/TurnTable ER_TARGET_EXTAX_DEVICE_POSITIONER_HND
[in]extax_idx- axis idx of controlled joint for connected device [0..ER_EXTAX_KIN_DATA_MAX-1]
Return values
pointerto ER_EXTAX_KIN_DATA - external axis values
NULL- Error
DLLAPI long* ER_STDCALL erGetExtAxPositioner_number_extax_used ( ER_TARGET_EXTAX_DEVICE_POSITIONER_HND  hnd)

Number of external axis used for Positioner/TurnTable
see example GetExtAxPositionerHnd()

Parameters
[in]hndunique handle for external axis data definition for Positioner/TurnTable ER_TARGET_EXTAX_DEVICE_POSITIONER_HND
Return values
pointerto long - number of external axis used
NULL- Error
DLLAPI long* ER_STDCALL erGetExtAxPositioner_sync_type ( ER_TARGET_EXTAX_DEVICE_POSITIONER_HND  hnd)

Synchonization for Positioner/TurnTable
For a Positioner/TurnTable motion, the synchonization can be one of ER_SYNC_ON, ER_SYNC_OFF
see example GetExtAxPositionerHnd()

Parameters
[in]hndunique handle for external axis data definition for Positioner/TurnTable ER_TARGET_EXTAX_DEVICE_POSITIONER_HND
Return values
pointerto long - synchonization
NULL- Error
DLLAPI ER_EXTAX_KIN_DATA* ER_STDCALL erGetExtAxTrack_extax_data ( ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND  hnd,
long  extax_idx 
)

External axis values for Track/Slider
Values ER_EXTAX_KIN_DATA are:
.

  • ER_HND er_hnd_connect; ///< Handle of connected device
  • long axis_idx; ///< axis idx of controlled joint for connected device [0..ER_EXTAX_KIN_DATA_MAX-1]
  • double axis_value; ///< Target value [m,rad]
  • double speed_value; ///< Target speed [m/s,rad/s]

see example GetExtAxTrackMotionHnd()

Parameters
[in]hndunique handle for external axis data definition for Track/Slider ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND
[in]extax_idx- axis idx of controlled joint for connected device [0..ER_EXTAX_KIN_DATA_MAX-1]
Return values
pointerto ER_EXTAX_KIN_DATA - external axis values
NULL- Error
DLLAPI long* ER_STDCALL erGetExtAxTrack_number_extax_used ( ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND  hnd)

Number of external axis used for Track/Slider
see example GetExtAxTrackMotionHnd()

Parameters
[in]hndunique handle for external axis data definition for Track/Slider ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND
Return values
pointerto long - number of external axis used
NULL- Error
DLLAPI long* ER_STDCALL erGetExtAxTrack_sync_type ( ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND  hnd)

Synchonization for Track/Slider
For a Track/Slider motion, the synchonization should be always ER_SYNC_ON
see example GetExtAxTrackMotionHnd()

Parameters
[in]hndunique handle for external axis data definition for Track/Slider ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND
Return values
pointerto long - synchonization
NULL- Error
DLLAPI long ER_STDCALL erGetExtTcpMode ( ER_HND  er_hnd,
long *  ext_tcp_mode 
)

Get external TCP mode.
The external TCP can be IPO_MODE_BASE (tool guided) or IPO_MODE_TOOL (work object guided)

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]ext_tcp_modeexternal TCP mode IPO_MODE_BASE, IPO_MODE_TOOL
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetExtTcpRobotBase ( ER_HND  er_hnd,
DFRAME bText 
)

Get location of external TCP w.r.t robot base.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]bTextlocation of external TCP w.r.t robot base 'b' DFRAME
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetExtTcpWorld ( ER_HND  er_hnd,
DFRAME iText 
)

Get location of external TCP w.r.t inertia (world).

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]iTextlocation of external TCP w.r.t inertia 'i' DFRAME
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetHomepos ( ER_HND  er_hnd,
double *  homepos 
)

Get robot joint homeposition. The kinematics joint homepos are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]homeposrobot joint homeposition, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetIDs ( ER_HND  er_hnd,
long *  kin_id,
long *  inv_id,
long *  inv_sub_id 
)

Get Kinematics ID of the robot.
kin_id represents the kinematics ID. It can be one of the following values.
ER_RRRRRR_ID =1, ER_TTTRRR_ID =2, ER_RRRRRR_BL_ID =3, ER_UNIV_ROB_ID =10, ER_DH_ID =11
Remarks
Most robots are modelled with universal coordinates ER_UNIV_ROB_ID.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]kin_idkinematics ID
[out]inv_idkinematics ID for inverse calculation
[out]inv_sub_idkinematics Sub-ID for inverse calculation
Return values
0- OK
1- Error
DLLAPI char* ER_STDCALL erGetInstructions_information ( ER_TARGET_LOCATION_HND  er_tarloc_hnd)

Get information target instruction data for target location.
For further explanations see GetInstructionsHnd(), erSetInstructions().

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
Return values
pointerto char for target instruction information, maximum lengths ER_HS_MAXSTR
NULL- Error
DLLAPI char* ER_STDCALL erGetInstructions_LagInstructions ( ER_TARGET_LOCATION_HND  er_tarloc_hnd)

Get LagInstructions target instruction data for target location.
For further explanations see GetInstructionsHnd(), erSetInstructions().

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
Return values
pointerto char for target instruction LagInstructions, maximum lengths ER_HS_MAXSTR
NULL- Error
DLLAPI char* ER_STDCALL erGetInstructions_LeadInstructions ( ER_TARGET_LOCATION_HND  er_tarloc_hnd)

Get LeadInstructions target instruction data for target location.
For further explanations see GetInstructionsHnd(), erSetInstructions().

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
Return values
pointerto char for target instruction LeadInstructions, maximum lengths ER_HS_MAXSTR
NULL- Error
DLLAPI long ER_STDCALL erGetInvKinID ( ER_HND  er_hnd,
long *  invkin_id 
)

Inverse kinematics ID for cRobot.
.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]invkin_idinverse kinematics ID
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetInvKinSubID ( ER_HND  er_hnd,
long *  invkinsub_id 
)

Inverse kinematics Sub-ID for cRobot.
.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]invkinsub_idinverse kinematics Sub-ID
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetJointAccels ( ER_HND  er_hnd,
double *  a_solut 
)

Get robot joint accelerations. The kinematics joint accelerations a_solut are in units [m/s^2] for prismatic joint type
and [rad/s^2] for rotational joint type
Get the number of active joints with erGet_num_dofs()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]a_solutrobot joint accelerations, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetJointAttachDof_active ( ER_HND  er_hnd,
long *  jnt_attach_dof_active 
)

Get Attach-Dof of active robot joints. An active joint with chain type JNT_CHAIN_TYPE_CHAIN is attached to an active or passive joint.
A valid Attach-Dof number for such an active joint is [0..num_dof], whereby num_dof represents the number of active joints
A negative Attach-Dof value of -99 means that the active joint has a chain type of JNT_CHAIN_TYPE_NO_CHAIN or JNT_CHAIN_TYPE_SEP_NO_CHAIN.

Parameters
[in]er_hndunique kinematics handle::ER_HND
[out]jnt_attach_dof_activeAttach-Dof of active robot joints, max size::ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetJointAttachDof_passive ( ER_HND  er_hnd,
long *  jnt_attach_dof_passive 
)

Get Attach-Dof of passive robot joints. A passive joint is attached to an active joint. A valid Attach-Dof number number is [0..num_dof], whereby num_dof represents the number of active joints
A negative Attach-Dof represents an error.

Parameters
[in]er_hndunique kinematics handle::ER_HND
[out]jnt_attach_dof_passiveAttach-Dof of passive robot joints, max size::ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetJointChainTypes ( ER_HND  er_hnd,
long *  jnt_chain_type_active 
)

Get chain type of active robot joints. A robot chain type can be JNT_CHAIN_TYPE_CHAIN, JNT_CHAIN_TYPE_NO_CHAIN or JNT_CHAIN_TYPE_SEP_NO_CHAIN
.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]jnt_chain_type_activechain type of active robot joints, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetJointChainTypes_passive ( ER_HND  er_hnd,
long *  jnt_chain_type_passive 
)

Get chain type of passive robot joints. A robot chain type can be JNT_CHAIN_TYPE_CHAIN, JNT_CHAIN_TYPE_NO_CHAIN or JNT_CHAIN_TYPE_SEP_NO_CHAIN
.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]jnt_chain_type_passivechain type of passive robot joints, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetJointDirections ( ER_HND  er_hnd,
long *  jnt_direction_active 
)

Get direction of active robot joints. A robot joint direction can be JNT_DIRECTION_X, JNT_DIRECTION_Y or JNT_DIRECTION_Z
See also erGetJointSign(), erGetJointTypes()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]jnt_direction_activedirection of active robot joints, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetJointDirections_passive ( ER_HND  er_hnd,
long *  jnt_direction_passive 
)

Get direction of passive robot joints. A robot joint direction can be JNT_DIRECTION_X, JNT_DIRECTION_Y or JNT_DIRECTION_Z
See also erGetJointTypes_passive()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]jnt_direction_passivedirection of passive robot joints, max size ER_KIN_PASSIVE_JNTS
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetJointFrameActiveLast ( ER_HND  er_hnd,
long  active_jnt_no,
DFRAME T 
)
DLLAPI long ER_STDCALL erGetJointFrameActiveNext ( ER_HND  er_hnd,
long  active_jnt_no,
DFRAME T 
)
DLLAPI long ER_STDCALL erGetJointFramePassiveLast ( ER_HND  er_hnd,
long  passive_jnt_no,
DFRAME T 
)
DLLAPI long ER_STDCALL erGetJointFramePassiveNext ( ER_HND  er_hnd,
long  passive_jnt_no,
DFRAME T 
)
DLLAPI long ER_STDCALL erGetJointFrameRobotBase ( ER_HND  er_hnd,
long  active_jnt_no,
DFRAME bTax 
)

Get location of active joint coorsys w.r.t robot base.
Get the number of active joints with erGet_num_dofs()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]active_jnt_noactive joint number [1..number of active joints], max active_jnt_no is ER_KIN_DOFS
[out]bTaxlocation of active joint coorsys w.r.t robot base DFRAME
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetJointFrameRobotBase_passive ( ER_HND  er_hnd,
long  passive_jnt_no,
DFRAME bTax 
)

Get location of passive joint coorsys w.r.t robot base.
Get the number of passive joints with erGet_num_dofs_passive()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]passive_jnt_nopassive joint number [1..number of passive joints], max passive_jnt_no is ER_KIN_PASSIVE_JNTS
[out]bTaxlocation of passive joint coorsys w.r.t robot base DFRAME
Return values
0- OK
1- Error, invalid handle, invalid passive_jnt_no
DLLAPI long ER_STDCALL erGetJointFrameWorld ( ER_HND  er_hnd,
long  active_jnt_no,
DFRAME iTax 
)

Get location of active joint coorsys w.r.t innertia (world).
Get the number of active joints with erGet_num_dofs()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]active_jnt_noactive joint number [1..number of active joints], max active_jnt_no is ER_KIN_DOFS
[out]iTaxlocation of active joint coorsys w.r.t innertia DFRAME
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetJointFrameWorld_passive ( ER_HND  er_hnd,
long  passive_jnt_no,
DFRAME iTax 
)

Get location of passive joint coorsys w.r.t innertia (world).
Get the number of passive joints with erGet_num_dofs_passive()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]passive_jnt_nopassive joint number [1..number of passive joints], max passive_jnt_no is ER_KIN_PASSIVE_JNTS
[out]iTaxlocation of passive joint coorsys w.r.t innertia DFRAME
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetJointName ( ER_HND  er_hnd,
long  active_jnt_no,
char *  jnt_name 
)

Get the name of active robot joint.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]active_jnt_noactive joint number [1..ER_KIN_DOFS]
[out]jnt_namename of active robot joint, maximum lengths ER_MAXSTR
Return values
NULLinvalid handle
DLLAPI long ER_STDCALL erGetJointName_passive ( ER_HND  er_hnd,
long  passive_jnt_no,
char *  jnt_name_passive 
)

Get the name of passive robot joint.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]passive_jnt_nopassive joint number [1..ER_KIN_PASSIVE_JNTS]
[out]jnt_name_passivename of passive robot joint, maximum lengths ER_MAXSTR
Return values
NULLinvalid handle
DLLAPI long ER_STDCALL erGetJointOffset ( ER_HND  er_hnd,
double *  joint_offset 
)

Get offset of robot joints.
Robot joint offsets joint_offset are in units [m] for prismatic joint type and [rad] for rotational joint type.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]joint_offsetrobot joint offset, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetJoints ( ER_HND  er_hnd,
double *  q_solut 
)

Get robot joint data. The kinematics joint data q_solut are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of active joints with erGet_num_dofs()
Remarks
Call this function after calling the inverse kinematics transformation, erInvKinRobotBaseTip(), erInvKinWorldTip(), erInvKinRobotBaseTcp(), erInvKinWorldTcp()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]q_solutrobot joint data, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetJoints_passive ( ER_HND  er_hnd,
double *  q_passive 
)

Get passive robot joint data. The kinematics passive joint data q_passive are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of passive joints with erGet_num_dofs_passive()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]q_passivepassive robot joint data, max size ER_KIN_PASSIVE_JNTS
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetJointSign ( ER_HND  er_hnd,
double *  joint_sign 
)

Get sign of robot joints.
A robot joint sign can be positive +1 or negative -1.
See also erGetJointTypes(), erGetJointDirections()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]joint_signsign of a robot joint, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetJointSolutions ( ER_HND  er_hnd,
double *  q_solutions,
long *  q_warnings 
)

Get all robot joint solutions. The kinematics joint data q_solutions are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of active joints with erGet_num_dofs()
Get the number of configurations with erGetNumConfigs()
Remarks
Call this function after calling the inverse kinematics transformation, erInvKinRobotBaseTip(), erInvKinWorldTip(), erInvKinRobotBaseTcp(), erInvKinWorldTcp()

// Example:
double q[ER_KIN_DOFS]; // contains current solution
double q_solutions[ER_KIN_CONFIGS*ER_KIN_DOFS]; // contains all solutions
long q_warnings[ER_KIN_CONFIGS]; // warning for each solution
long ret;
ER_HND c_er_hnd; // valid robot handle
long num_configs;
ret = erGetNumConfigs(c_er_hnd,&num_configs); // Get number of possible robot configurations
long inv_warn = INV_WARN_OK;
inv_warn=erInvKinRobotBaseTcp(c_er_hnd,&bTw); // Calculating the inverse kinematics transformation
erGetJoints(c_er_hnd,q); // Get robot joint data
erGetJointSolutions(c_er_hnd,q_solutions,q_warnings); // Get all robot joint solutions
char *warn_s[] = {"OK" , "SINGULAR" , "UNREACH" , "CNFG" , "INVKIN" , "SWE_EXCEED" , "?"};
for (int i=0;i<num_configs;i++)
{
char s[ER_MAXSTR];
long q_warn = q_warnings[i];
sprintf(s,"q_sol[%d] (%s): ",i,warn_s[q_warn]);
if (q_warn!= INV_WARN_OK && q_warn!= INV_WARN_SINGULAR && q_warn!= INV_WARN_SWE_EXCEED)
{
fprintf(fp,"%s\n",s);
continue;
}
double *dq = &q_solutions[i*ER_KIN_DOFS];
out_vec_joints(fp,s,dq,jointtype,num_dofs);
}
...
Parameters
[in]er_hndunique kinematics handle ER_HND
[out]q_solutionsrobot joint data, max size ER_KIN_CONFIGS * ER_KIN_DOFS
[out]q_warningswarning for each solution, max size ER_KIN_CONFIGS
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetJointSpeeds ( ER_HND  er_hnd,
double *  v_solut 
)

Get robot joint speeds. The kinematics joint speeds v_solut are in units [m/s] for prismatic joint type
and [rad/s] for rotational joint type
Get the number of active joints with erGet_num_dofs()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]v_solutrobot joint speeds, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetJointTypes ( ER_HND  er_hnd,
long *  jnt_type_active 
)

Get active robot joint types. An active robot joint type can be rotational JNT_TYPE_ROT or prismatic JNT_TYPE_TRANS
See also erGetJointSign(), erGetJointDirections()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]jnt_type_activeactive robot joint type, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle
DLLAPI long ER_STDCALL erGetJointTypes_passive ( ER_HND  er_hnd,
long *  jnt_type_passive 
)

Get passive robot joint types. A passive robot joint type can be rotational JNT_TYPE_ROT or prismatic JNT_TYPE_TRANS
See also erGetJointDirections_passive()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]jnt_type_passivepassive robot joint type, max size ER_KIN_PASSIVE_JNTS
Return values
0- OK
1- Error, invalid handle
DLLAPI double* ER_STDCALL erGetMotionAttributes_acc ( ER_TARGET_ATTRIBUTES_HND  hnd)

Acceleration and deceleration as percentage value in the range from 20% to 100% of normal values for a target location
Remarks
Default value: 100%
Smaller values results in a smoother acceleration and deceleratio nwhen the robot carries high payloads for example.

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto double - acc
NULL- Error
DLLAPI long* ER_STDCALL erGetMotionAttributes_advance_motion ( ER_TARGET_ATTRIBUTES_HND  hnd)

Number of motions, the motion planner may run in advance of the interpolator (look_ahead) for a target location
Remarks
Default value: 1.

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto long - advance_motion
NULL- Error
DLLAPI long* ER_STDCALL erGetMotionAttributes_autoaccel ( ER_TARGET_ATTRIBUTES_HND  hnd)

Automatic calculation of acceleration depending on programmed speed for a target location
Using AutoAccel is a proper way to come close to real cycle times.
Autoaccel can be one of the following values.
0: ER_AUTOACCEL_MODE_OFF disables auto accel calculation for all motions
1: ER_AUTOACCEL_MODE_POS calculation for CP motions for position
2: ER_AUTOACCEL_MODE_ORI calculation for CP motions
4: ER_AUTOACCEL_MODE_AX Calculation for PTP motions
3: ER_AUTOACCEL_MODE_DEF calculation for CP motions for position and for orientation
7: ER_AUTOACCEL_MODE_ON enables calculation for all motions
Remarks
Default value: ER_AUTOACCEL_MODE_OFF.

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto double - autoaccel
NULL- Error
DLLAPI long* ER_STDCALL erGetMotionAttributes_BaseIdx ( ER_TARGET_ATTRIBUTES_HND  hnd)

Idx for program shift Base for a target location
see inq_BaseVec(), inq_BaseName()
This BaseIdx could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto long - Base idx
NULL- Error
DLLAPI char* ER_STDCALL erGetMotionAttributes_BaseName ( ER_TARGET_ATTRIBUTES_HND  hnd)

Name for program shift Base for a target location
see inq_BaseVec(), inq_BaseIdx()
This BaseName could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto char - Base name, maximum lengths ER_MAXSTR
NULL- Error
DLLAPI double* ER_STDCALL erGetMotionAttributes_BaseVec ( ER_TARGET_ATTRIBUTES_HND  hnd)

Program shift Base for a target location
Base '$BASE, $UFrame' has only if IPO_MODE_BASE is set and external TCP disabled
All targets are defined w.r.t to this BASE frame (program shifting)
see inq_BaseIdx(), inq_BaseName()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto double - Base vector, definition Pxyz [m] Rxyz [rad] ER_DOF6
NULL- Error
DLLAPI long* ER_STDCALL erGetMotionAttributes_dom_type ( ER_TARGET_ATTRIBUTES_HND  hnd)

Dominant interpolation type for a target location
The dominant interpolation type can be one of the following values.
ER_DOMINANT_INTERPOLATION_POS, ER_DOMINANT_INTERPOLATION_ORI, ER_DOMINANT_INTERPOLATION_AXIS, ER_DOMINANT_INTERPOLATION_AUTO
Remarks
Default setting is ER_DOMINANT_INTERPOLATION_AUTO.

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto long - dominant interpolation type
NULL- Error
DLLAPI long* ER_STDCALL erGetMotionAttributes_enabled ( ER_TARGET_ATTRIBUTES_HND  hnd)

Enables/disables a target location
If the target location is disabled, the trajectory interpolator will skip this target.

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto long - to enable and disable the target location
NULL- Error
DLLAPI long* ER_STDCALL erGetMotionAttributes_ext_tcp_mode ( ER_TARGET_ATTRIBUTES_HND  hnd)

Enables/disables external TCP for a target location
IPO_MODE_BASE (tool guided) or IPO_MODE_TOOL (work object guided)

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto long - to enable and disable external TCP
NULL- Error
DLLAPI long* ER_STDCALL erGetMotionAttributes_extTcpBaseIdx ( ER_TARGET_ATTRIBUTES_HND  hnd)

Idx for external Tool (TCP) w.r.t. Robot Base or flange of positioner, for a target location
see inq_extTcpBaseVec(), inq_extTcpBaseName()
This extTcpBaseIdx could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto long - extTcpBase idx
NULL- Error
DLLAPI char* ER_STDCALL erGetMotionAttributes_extTcpBaseName ( ER_TARGET_ATTRIBUTES_HND  hnd)

Name for external Tool (TCP) w.r.t. Robot Base or flange of positioner, for a target location
see inq_extTcpBaseVec(), inq_extTcpBaseIdx()
This extTcpBaseName could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto char - extTcpBase name, maximum lengths ER_MAXSTR
NULL- Error
DLLAPI double* ER_STDCALL erGetMotionAttributes_extTcpBaseVec ( ER_TARGET_ATTRIBUTES_HND  hnd)

external Tool (TCP) w.r.t. Robot Base or flange of positioner, for a target location
Transformation from RobotBase or from flange of positioner to external TCP
see inq_extTcpBaseIdx(), inq_extTcpBaseName()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto double - extTcpBase vector, definition Pxyz [m] Rxyz [rad] ER_DOF6
NULL- Error
DLLAPI long* ER_STDCALL erGetMotionAttributes_extTcpOffsetIdx ( ER_TARGET_ATTRIBUTES_HND  hnd)

Idx for external Tool/TCP offset data w.r.t. extTcpBase, extTcpWorld, for a target location
see inq_extTcpOffsetVec(), inq_extTcpOffsetName()
This extTcpOffsetIdx could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto long - extTcpOffset idx
NULL- Error
DLLAPI char* ER_STDCALL erGetMotionAttributes_extTcpOffsetName ( ER_TARGET_ATTRIBUTES_HND  hnd)

Name for external Tool/TCP offset data w.r.t. extTcpBase, extTcpWorld, for a target location
see inq_extTcpOffsetVec(), inq_extTcpOffsetIdx()
This extTcpOffsetName could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto char - extTcpOffset name, maximum lengths ER_MAXSTR
NULL- Error
DLLAPI double* ER_STDCALL erGetMotionAttributes_extTcpOffsetVec ( ER_TARGET_ATTRIBUTES_HND  hnd)

external Tool/TCP offset data w.r.t. extTcpBase, extTcpWorld, for a target location
Transformation from extTcpBase or extTcpWorld
see inq_extTcpOffsetIdx(), inq_extTcpOffsetName()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto double - extTcpOffset vector, definition Pxyz [m] Rxyz [rad] ER_DOF6
NULL- Error
DLLAPI long* ER_STDCALL erGetMotionAttributes_extTcpWorldIdx ( ER_TARGET_ATTRIBUTES_HND  hnd)

Idx for external Tool (TCP) w.r.t. Robot World or flange of positioner, for a target location
see inq_extTcpWorldVec(), inq_extTcpWorldName()
This extTcpWorldIdx could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto long - extTcpWorld idx
NULL- Error
DLLAPI char* ER_STDCALL erGetMotionAttributes_extTcpWorldName ( ER_TARGET_ATTRIBUTES_HND  hnd)

Name for external Tool (TCP) w.r.t. Robot World or flange of positioner, for a target location
see inq_extTcpWorldVec(), inq_extTcpWorldIdx()
This extTcpWorldName could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto char - extTcpWorld name, maximum lengths ER_MAXSTR
NULL- Error
DLLAPI double* ER_STDCALL erGetMotionAttributes_extTcpWorldVec ( ER_TARGET_ATTRIBUTES_HND  hnd)

external Tool (TCP) w.r.t. Robot World or flange of positioner, for a target location
Transformation from RobotWorld or from flange of positioner to external TCP
see inq_extTcpWorldIdx(), inq_extTcpWorldName()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto double - extTcpWorld vector, definition Pxyz [m] Rxyz [rad] ER_DOF6
NULL- Error
DLLAPI long* ER_STDCALL erGetMotionAttributes_filter_factor ( ER_TARGET_ATTRIBUTES_HND  hnd)

Filter factor for smoothing velocity profiles of motions
The filter_factor is one of ER_MOTION_FILTER_GEO or ER_MOTION_FILTER_C2
Remarks
Per default ER_MOTION_FILTER_C2 is set
It makes sense to keep one filter_factor for the complete tool path.

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto long - filter_factor
NULL- Error
DLLAPI double* ER_STDCALL erGetMotionAttributes_flyby_dist ( ER_TARGET_ATTRIBUTES_HND  hnd)

flyby by distance [m] for a target location
In case of flyby by distance, the robot starts moving into the next segment when the distance to the target is less then the flyby_dist value.
flyby_dist has only an effect if flyby is enabled and if set > 0 [m], see inq_flyby_on(), inq_flyby_speed_percent()
Remarks
Default value: 0 [m]

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto double - flyby_dist
NULL- Error
DLLAPI long* ER_STDCALL erGetMotionAttributes_flyby_on ( ER_TARGET_ATTRIBUTES_HND  hnd)

Rounding / flyby condition for a target location
In case of flyby enabled, the robot moves through a target location with programmed speeds and will not decelerate
flyby_on is one of ER_FLYBY_OFF, ER_FLYBY_ON
Remarks
Default value: ER_FLYBY_OFF.

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto long - flyby_on
NULL- Error
DLLAPI double* ER_STDCALL erGetMotionAttributes_flyby_speed_percent ( ER_TARGET_ATTRIBUTES_HND  hnd)

flyby by speed [%] for a target location
In case of flyby by speed, the robot starts moving into the next segment when the current speed is less then the flyby_speed_percent value.
flyby_speed_percent has only an effect if flyby is enabled and if set > 0%, see inq_flyby_on(), inq_flyby_dist()
Remarks
Default value: 0%

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto double - flyby_speed_percent
NULL- Error
DLLAPI double* ER_STDCALL erGetMotionAttributes_LagWaitTime ( ER_TARGET_ATTRIBUTES_HND  hnd)

Lagging time [s] after robot reaches its target location
Remarks
Default value: 0
Has only an effect when flyby is disabled, see inq_LeadWaitTime()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto double - LagWaitTime
NULL- Error
DLLAPI double* ER_STDCALL erGetMotionAttributes_LeadWaitTime ( ER_TARGET_ATTRIBUTES_HND  hnd)

Leading time [s] before robot will start moving to target location
Remarks
Default value: 0
Has only an effect when flyby is disabled, see inq_LagWaitTime()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto double - LeadWaitTime
NULL- Error
DLLAPI long* ER_STDCALL erGetMotionAttributes_motype ( ER_TARGET_ATTRIBUTES_HND  hnd)

Motion Type for a target location
The motion type can be one of the following values
ER_JOINT = ER_PTP = 1, ER_LIN = 2, ER_SLEW = 3, ER_CIRC = 4
Remarks
Methods such as.

sets the motion type automatically

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto long - motion type
NULL- Error
DLLAPI double* ER_STDCALL erGetMotionAttributes_override_speed ( ER_TARGET_ATTRIBUTES_HND  hnd)

Correction values as percentage value for scaling the programmed speed for a target location
Remarks
Default value: 100%.

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto double - override_speed
NULL- Error
DLLAPI double* ER_STDCALL erGetMotionAttributes_ramp ( ER_TARGET_ATTRIBUTES_HND  hnd)

Change of acceleration and deceleration as percentage value in the range from 20% to 100% of normal values for a target location
Remarks
Default value: 100%
Smaller values results in a smoother acceleration and deceleration when the robot carries high payloads for example.

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto double - ramp
NULL- Error
DLLAPI TErTargetID* ER_STDCALL erGetMotionAttributes_target_id ( ER_TARGET_ATTRIBUTES_HND  hnd)

unique target ID of a target location

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto TErTargetID - unique target ID
NULL- Error
DLLAPI long* ER_STDCALL erGetMotionAttributes_ToolIdx ( ER_TARGET_ATTRIBUTES_HND  hnd)

Idx for Tool for a target location
see inq_ToolVec(), inq_ToolName()
This ToolIdx could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto long - Tool idx
NULL- Error
DLLAPI char* ER_STDCALL erGetMotionAttributes_ToolName ( ER_TARGET_ATTRIBUTES_HND  hnd)

Name for Tool for a target location
see inq_ToolVec(), inq_ToolIdx()
This ToolName could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto char - Tool name, maximum lengths ER_MAXSTR
NULL- Error
DLLAPI long* ER_STDCALL erGetMotionAttributes_ToolOffsetIdx ( ER_TARGET_ATTRIBUTES_HND  hnd)

Idx for ToolOffset for a target location
see inq_ToolOffsetVec(), inq_ToolOffsetName()
This ToolOffsetIdx could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto long - Tool offset idx
NULL- Error
DLLAPI char* ER_STDCALL erGetMotionAttributes_ToolOffsetName ( ER_TARGET_ATTRIBUTES_HND  hnd)

Name for ToolOffset for a target location
see inq_ToolOffsetVec(), inq_ToolOffsetIdx()
This ToolOffsetName could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto char - Tool offset name, maximum lengths ER_MAXSTR
NULL- Error
DLLAPI double* ER_STDCALL erGetMotionAttributes_ToolOffsetVec ( ER_TARGET_ATTRIBUTES_HND  hnd)

ToolOffset (TCP) for a target location
Offset Transformation from TCP
see inq_ToolOffsetIdx(), inq_ToolOffsetName()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto double - Tool offset vector, definition Pxyz [m] Rxyz [rad] ER_DOF6
NULL- Error
DLLAPI double* ER_STDCALL erGetMotionAttributes_ToolVec ( ER_TARGET_ATTRIBUTES_HND  hnd)

Tool (TCP) for a target location
Transformation from Tip to TCP
see inq_ToolIdx(), inq_ToolName()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto double - Tool vector, definition Pxyz [m] Rxyz [rad] ER_DOF6
NULL- Error
DLLAPI double* ER_STDCALL erGetMotionAttributes_WobjCartPosVec ( ER_TARGET_ATTRIBUTES_HND  hnd)

WorkObject valid for all cartesian target locations such as CartPosVec, CartPosVecVia
Using this transformation, all cartesian targets 'T' are modified to T' = WorkObj * T
see e.g. ERK_CAPI_TOOLPATH_TARGETS::erSetTargetLocation_Move_LIN()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto double - WorkObejct vector, definition Pxyz [m] Rxyz [rad] ER_DOF6
NULL- Error
DLLAPI long ER_STDCALL erGetMotionExec_configuration ( ER_TARGET_MOTION_EXEC_HND  hnd)

Robot configuration, when reaching the target, while interpolation trough the complete tool path
Remarks
Normally a robot configuration will
NOT change during a CP (ER_LIN, ER_CIRC) move
Valid robot configurations are between 1 and number of possible configurations depending on robot, maximum ER_KIN_CONFIGS
A valid robot configuration can be