How to make tool Offset?

  • Mmm no i prefer not changing tool..i'd prefer something like this (This is working on the base):


    DEFFCT E6POS BaseOffset(pos:IN,X:IN,Y:IN,Z:IN)
    E6POS pos
    Real X,Y,Z


    Pos.x=Pos.X+X
    Pos.y=Pos.Y+Y
    Pos.z=Pos.Z+Z


    RETURN Pos
    ENDFCT


    This is working for the base but I need something like This but working on the tool...any idea?



    Sent from my iPhone using Tapatalk

  • try this


    tool_data[12] = tool_data[11] : { X 0, Y 0, Z 0, A 0, B 0, C 0}


    replace right tool numbers and 0 to offset you want

  • Two ways:

    Code
    LIN_REL {X 10,Y 25,Z -20} #TOOL ; moves along axes of active Tool
    ;or
    _NextPos = $POS_ACT : {X 10,Y 25,Z -20,A 0,B 0,C 0} ; create new point relative to current position, treating the current position as if it were the Base.  ALL XYZABC values MUST be entered, even 0s
    LIN _NextPos ; move to point


    These two techniques will do exactly the same thing. The advantage to the second method is that you could use a PTP move instead (PTP_REL only works on Axis points, not Cartesian points), and that you can calculate the move in advance and do checks against it.


    LIN_REL, without the #TOOL tag on the end, will perform relative moves along the axes of the active Base.

  • Hello all,

    I'm sorry for re-opening very old topic. I'm looking for a bit universal solution. Above proposals allows to move in tool coordinates but only from current position where the robot is. Is there any possibility to apply tool offset to specific POS but before reaching it?

  • yes... in your program create another tool that includes offset - see post #4.


    to observe influence on one thing, create program that keeps everything else same and just change one thing you are interested in. maybe run it in a loop (offset and no offset).


    for example create test program

    set offset tool as active tool and send robot to your position.

    then set original tool as active tool and send robot to same position.

    as mentioned, only change tool, keep base and point same.

    1) read pinned topic: READ FIRST...

    2) if you have an issue with robot, post question in the correct forum section... do NOT contact me directly

    3) read 1 and 2

  • Hello all,

    I'm sorry for re-opening very old topic. I'm looking for a bit universal solution. Above proposals allows to move in tool coordinates but only from current position where the robot is. Is there any possibility to apply tool offset to specific POS but before reaching it?

    Pos : Shift, where "Pos" is your programmed position, and "Shift" is a FRAME type variable with the 6DOF shifts you want to apply. By definition, this will shift the point along/around its own axes, which are (of course) the axes of the Tool that was used to teach that point. So:

    Code
    DECL FRAME Shift
    Shift = {X 0,Y 0,Z 100,A 0,B 0,C 0}
    PTP PickPosition : Shift ; move to point 100mm from PickPosition along Tool Z+
    LIN PickPosition ; move to PickPosition

    It's a way of getting a "pre-pick" position that is always a fixed relationship to the pick position, without teaching two points.

  • Another universal solution is to use the KUKA provided TOOL_CORR frame and TOOL_CORR_ON defined in system/config.dat. One can set the frame to the required offset values and set TOOL_CORR_ON to true.


    Beware of the advance run. It may be required to stop the advance run to activate the tool correction on intented line.

  • We raised our krc 4 up an inch is there anyway we can set an offset for z for the whole program

    Did you use a Base, or did you program everything in Base 0?


    If you used a Base, then you can simply shift that Base's Z value.


    If you used Base 0 everywhere, you'll need to change all the motion commands to use a Base whose initial values are all 0, then shift that Base's Z value.


    Or, as has been mentioned, you could use the Shift tools on the robot, or in an external tool like OrangeEdit.

Advertising from our partners