Incremental & decremental circular program

  • I want to make a program in kuka robot - Like let say i have a circle of 100mm diameter, i want shift the 'Z' height at the edges of the circle as the diameter increases (roughly i want to travel & shift the Z height by 10 mm as the dia increases.

    After reaching at the center of the circle, the length of movement should be in decremental order for the lower half portion of the circle.
    Can anyone help me to make the program.

  • 95devils

    Approved the thread.
  • For easy understanding, I want to move kuka robot horizontally towards top to bottom, while each 'z' height shift to be 5 mm but the shift can done slightly (25mm outside) from the outside of the circle.

  • This sounds like it might be a spiral boring action, similar to the red toolpath seen here:

    External Content youtu.be
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.


    I've attached a library I built years ago to generate circular motions as a series of mathematically generated LIN points. It wouldn't be hard to add a Z step.

  • A raster scan of a circle? Hm.... Well, my GeneralEllipsoid module would produce an array of points around the circumference. It would just need an extra step to re-sort the array into a raster rather than a circular motion. Something like:

    That's just off the cuff, and I don't have a way to test it right now. And it would require a second stage to arrange for the small "vertical" move at each end... hm. I'm sure there's a way to do it, but I'm short on time right now.

  • maybe something like this. just an idea - some debugging may be needed...

    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

  • CalcBase is found on forum, for example


    the end result is something like this:

  • CalcBase is found on forum, for example


    the end result is something like this:

    1. Can you show where to teach points on small circle only, as i need to program only 1 circle at a time.
    2. In line no. 17 & 20, into the bracket what is written after - (Xp1, Xp2, Xp3,. ....) because it is not clearly visible in video.


    thanks in advance.


  • in current version raster runs from start point to target point. distance between those two points is diameter of the circle. the aux point is used to set the plane. it just need to be on the circle/disc, as long as it is away from center axis (green line). it does not need to be on the edge.

    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

  • circ_fill() has 4 parameters:

    start point

    aux point

    target point

    distance between raster lines (in millimeters)


    the larger the distance value, the fewer raster lines will be calculated.

    if you watch the video, first it does small circle using 80mm raster,

    then it repeats the same circle using 20mm raster....

    i used large values just to make shorter video (smaller file size)


    you must be watching the video on the phone. if you watch it on computer, you should be able to see more detail. screenshot below is taken from the video and it looks pretty readable to me:


    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

  • Yes i have understood. I just tried this program just for single circle & for 20 mm distance. But Circ_fill(xP1,xP2,xP3,20), treating this line as a subprogram & it gives error. So again i need your help that did you make any subprogram for line no. 20 ?

  • A raster scan of a circle? Hm.... Well, my GeneralEllipsoid module would produce an array of points around the circumference. It would just need an extra step to re-sort the array into a raster rather than a circular motion. Something like:

    That's just off the cuff, and I don't have a way to test it right now. And it would require a second stage to arrange for the small "vertical" move at each end... hm. I'm sure there's a way to do it, but I'm short on time right now.

    Thanks & take your time, i'm looking forward for your help.

  • Yes i have understood. I just tried this program just for single circle & for 20 mm distance. But Circ_fill(xP1,xP2,xP3,20), treating this line as a subprogram & it gives error. So again i need your help that did you make any subprogram for line no. 20 ?

    did you take the code from post #12 and save it as CIRC_FILL.SRC?

    did you put it on the robot?

    did you do the same with CalcBase.src?


    if you need help you need to be a lot more proactive with providing data. "it gives an error" tells me nothing.

    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

  • did you take the code from post #12 and save it as CIRC_FILL.SRC?

    did you put it on the robot?

    did you do the same with CalcBase.src?


    if you need help you need to be a lot more proactive with providing data. "it gives an error" tells me nothing.

    did you take the code from post #12 and save it as CIRC_FILL.SRC? - YES

    did you put it on the robot? - YES

    did you do the same with CalcBase.src? - I DID SIMPLY BASE CALCULATION FROM TOOL/BASE MANAGEMENT SYSTEM. IS IT NECESSARY TOO?

Advertising from our partners