Troubleshoot your lathe G71 and G72 roughing cycles quickly – Haas Automation Tip of the Day
2 Video Views·Jun 17, 2026
In our latest Haas Tip of the Day video, Mark demonstrates how to quickly troubleshoot your lathe roughing cycles and avoid those mysterious “Non-Monotonic” alarms. He also explains the difference between Type I and Type II turning cycles, and shows you can get a problem program to run in Graphics, simply by changing one G code.
Bonus content: https://www.haascnc.com/video/Video-B...
Don't miss any "TIP OF THE DAY" videos. Click here (http://ow.ly/s28l30mTiUo) to join our email list!
If you enjoyed this video, please hit the like button and share it with a friend who'll find it helpful . . . and thanks!
Follow Haas:
Facebook – / haasautomationinc
Instagram – / haas_automation
Twitter – / haas_automation
AI Generated·May contain errors
Hello and welcome to another Haas tip of the day. Now if you're a Haas-Lathe programmer,
then today's video is for you. We're going to talk about our G71 and G72 roughing cycles
and give you a few tips on how to troubleshoot those cycles, things you probably haven't heard
of before. I've written an OD roughing cycle program using a G71 and I'm going to run this
in graphics. Now as soon as it reached the G71 line, I got an alarm, a non-monotonic alarm.
What does that mean and how do we fix it? Well, non-monotonic just means that it's not monotone.
A robot speaks in a monotone voice. I am a robot, right? The voice doesn't go up,
it doesn't go down. The pitch is always moving in one direction. If you were speaking in a
not monotone voice, your voice would be going up and down normally. Now as far as machining goes,
we can think of it in the same way. If something is monotone or monotonic, our tool is always going
to move in the same direction. In this example, our tool is always going to move in the Z negative
direction and the X positive direction. It's monotone, monotonic. Now a different type of
roughing cycle would be non-monotonic. It's going to move up and then down and then up again.
You might see this on a part that has lots of grooves or valleys, like a pulley. So we've
gotten a non-monotonic alarm. There might be a few different causes of this. We might be using
the wrong type of cycle. We might be using a type one instead of a type two or we might just have
programmed the part incorrectly, trying to tell the machine to do some impossible feature.
So how do we see what's going on with our program if we can't run graphics? We're getting alarms,
which is stopping the program before we can see anything useful. Here's the trick. You're going
to go into edit mode and we're going to change, just for testing purposes, our G71 into a G70.
G70 is a finished contour cycle and it doesn't have the limitations that G71 and G72 cycles have.
This means that I'm able to run that cycle in graphics. It just ran through fine and,
just like we saw on our board, we can tell that this is a non-monotonic cycle. My tool
is coming up and then down and then back up again as it creates a groove on my part.
Okay, so we can now see that our x-axis is changing direction, which means we need to
tell the control to use a type two roughing cycle. Let's look at the code here. Our G71
P and Q values define the contour subroutine that the roughing cycle is going to use. The P value
refers to the starting block line and our Q value refers to our ending block. So if we only are
using an X or a Z value on our starting block, one or the other, the control is going to default
to a type one cycle. To command a type two cycle, we must command both an X and a Z value
on our starting block. This is what lets the control know that we're going to be changing
directions. So let's make this change to our program and try to run it again. I'm going to
press edit and I'm going to go down to our starting block line, in this case N1, and I'm
going to add a Z.1. Now I chose Z.1 just because that's where the tool was already at. Remember,
the Z value is not important when determining whether we're using a type one or a type two
cycle. What's important is that we use both an X and a Z value on the starting block line.
So we added a Z.1. Let's go ahead and change that G70 back to a G71 roughing cycle,
and we'll run this in graphics. Ah, and there we go. So this program gave us a non-monotonic alarm,
then we changed it from a G71 to a G70 so we could diagnose the problem, so we could see
that contour. Once we realized that our X axis was changing directions, we needed to make sure
that we were running a type two cycle. To force the control into a type two cycle, we added a Z
value to our starting block in our G71 contour. Now what if we are already running a type two
cycle but still getting a non-monotonic alarm? What do we do then? Well, we're going to start
with the same premise. I can't fix what I can't see, so we're going to change that G71 into a
G70 cycle and rerun this in graphics. Okay, I can see my problem right away. I've got a giant Mickey
Mouse ear where there should be a groove. What's happened is I've used a G3 arc instead of a G2 arc.
So let's go ahead and edit our program. I'm going to change this G3 into a G2, fixing my mistake,
and while I'm here, I'm going to change that G70 back into a G71. With those changes made,
we'll run this in graphics and see what we get. So that's it. Problem solved. So remember, if
you're having a problem with your G71 or G72 roughing cycle, switch it over to a G70 temporarily
so you can view this thing in graphics until you can find the problem. If you're getting a
non-monotonic alarm, make sure that you've got both an X and a Z on that starting block to force it
into a type 2 cycle. Now for more information on G71 and G72 cycles, download the Haas lathe
manual. We also have a nice lathe programming workbook. Both of those can be found on the Haas
DIY site, diy.haascnc.com. That's it, and thanks for watching this Haas tip of the day.

