SchneiderElectricRobotics adapts the origin of the coordinate system automatically, so that the zero-position (0/0/0) fits to the coordinate system described in the chapter Overview drawings of the Lexium P Robot Operating Manual and Lexium T Robot Operating Manual.
To modify the coordinate system, proceed as follows:
1 Read the default values set by SchneiderElectricRobotics:
// Read the coordinate-system, automatically set by SER
stRobotInterface.iq_ifConfiguration.ifAdvanced.GetCoordinateSystem(i_etName := ROB.ET-_CoordinateSystem.CSR,
q_etDiag => etDiag,
q_etDiagExt => etDiagExtRM,
q_sMsg => sMsgBuffer,
q_stOffset => stOffsetSER,
q_stOrientation => stOrientationSER,
q_xInvertDirectionX => ,
q_xInvertDirectionY => ,
q_xInvertDirectionZ => );
2 Add user-offset and user-orientation to the default SchneiderElectricRobotics parameters:
//add your user Offset
stOffsetNew.lrX := stOffsetSER.lrX + stOffsetUser.lrX;
stOffsetNew.lrY := stOffsetSER.lrY + stOffsetUser.lrY;
stOffsetNew.lrZ := stOffsetSER.lrZ + stOffsetUser.lrZ;
3 Modify the coordinate system with the new offset and the new orientation:
// Modify the coordinate system with the new Offset and Orientation
stRobotInterface.iq_ifConfiguration.ifAdvanced.ModifyCoordinateSystem( i_etName := ROB.ET-_CoordinateSystem.CSR,
q_stOffset := stOffsetNew,
q_stOrientation := stOrientationNew,
q_xInvertDirectionX := FALSE,
q_xInvertDirectionY := FALSE,
q_xInvertDirectionZ := FALSE,
q_etDiag => etDiag,
q_etDiagExt => etDiagExtRM,
q_sMsg => sMsgBuffer);
i_xInvertDirectionX, i_xInvertDirectionY, or i_xInvertDirectionZ is not set by SchneiderElectricRobotics and can also be adapted.