A global user coordinate system, it's the axis world that will match to a machine station axis world
Create a new USERCOOR if necessary for a new station, make sure to load the manipulator tool in the robot, if there is no manipulator tool, or manipulator has changed, then you need to create it.
First thing need orient USERCOOR to follow the machine coordinate system, you can do that by editing your Global USERCOOR in the variables, by setting the a axis section you can have the robot turn the XY axis around Z, B is rotation around Y and C is rotation around X, the rotations happen around the cartesian axis however they have been oriented by the rotations, mind that to edit your USERCOOR you need to set ref system to World, if current system used it's the current one it won't be possible to edit.
In case of setting up a CNC, for correct alignment of the axis you want to follow the machine with a dial gauge, it is also necessary to have the manipulator tool rotation center to match with the XY position of the delivery machine, this maybe achievable with a rough estimate at first, and then by checking the position of the delivered parts, and adjust USERCOOR according.
For the sawjet pickup position, you only need to match to the flip table vacuums.
Further offsets of alignment need add in the destination position in the offsets in LineServer application, or in parameters.ngc of the calling saw
When you move the destination position, the robot needs to follow the axis of the machine which matches the USERCOOR , and the vacuum angle should match with the vacuums of the machine, or -360.
Take a look in the display position, not the position in world and user position with and without the tool. use the station position offsets to achieve alignment for the sawjet.
The manipulator XYZ tool offsets are similar to ABCD for AitalMAC machine, the rotations are rotation offsets and doesn't turn the cartesian axis, it does not rotate cartesian XYZ of program
A is rotation around Z
B is rotation around Y
C is rotation around X
mind that when moving in user mode, the RA actually moves C, and RC moves A
StationPosR is the position of each station for e7 , the XYZA destination position will be passed by message for pickup, there are offsets for pickup when you call robot to pick parts in parameters.ngc, and in the parameters of LineServer for the drop.
The e7 position is supplied by StationPosR the back of the machine, with the arm in MachCenterSafe
LineServ just supply the Station ID by SimAi9.
Stations ID's are in parameters in LineServer
If the station is not available the StationPosR big, because otherwise robot may think it's near that station
Make sure confdata mode is 0
It's safety where the machine can rotate the part, with a7 position behind the station
Rotary safe should stay behind the machine, and should not be a position that the machine can put parts at, because it's used for range to come back to machine center if Y position is more than it.
This is in world coordinates without tool
Make sure confdata mode is 0
Center of the machine to go to before going to deposit the part, it's reference in X for the X and E7 calculations.
For sawjet centered with the vacuums of flipper, same like X of the USERCOOR, for CNC centered in machine
This is in world coordinates without tool
Put something on the table as a reference point, and figure out where it is in CNC XY position, this is used later to set USERCOOR
Go behind the machine, with the arm in safety, center the vacuum with the machine
note X world position, and E1, with “null tool” loaded.
Find a good rotation position, mind that you need move E1 and X the same amount to counteract each other, as that's how the machine is going to move, write current world position for rotation in MachRotSafe[x] where x is the station ID, if you changed X, the E1 will compensate automatically in the code
Move to safe center of machine, mind that you need move E1 and X the same amount to counteract each other, and write it down in MachCenterSafe[x] where where x is the station ID. The E1 position you need write in StationPos[x] where x is the station ID, all the other positions for E1 will be extracted by this final position
To get approximate coordinate system, see the manipulator offsets, move yourself so that the center of the robot nose is away from your reference point of the manipulator offset, then change the USERCOOR, so that the XY values of user position with the manipulator matches the XY values of the reference point in the CNC, Z should be 0 when touching the vacuums, mind that the normal orientation is with A at -180