It is a frustrating result: you program a straight, cylindrical part on a CNC lathe, and it comes off the machine with a taper, one end a slightly different diameter than the other end. The good news is that an unwanted taper is one of the more diagnosable problems on a lathe, because it has a small number of causes that split cleanly into two families. Either the G-code is telling the machine to cut a taper, or the program is correct and something in the setup, deflection or alignment, is bending the geometry. Knowing which family you are in is the whole battle, and reading the program is how you find out fast.
This guide covers the causes of an unwanted taper in both the code and the setup, in the order you should check them, and how to tell them apart. The aim is to stop you from adjusting the machine when the problem is really in the program, or from rewriting code when the problem is actually mechanical.
Check the code first
Start with the program, because a code cause is quick to confirm and quick to fix. On a lathe, remember that X is usually a diameter, not a radius, which matters for reading the numbers. A straight turning pass should hold the same X value from one end of the cylinder to the other. If the X at the start of the pass differs from the X at the end, even slightly, the program is cutting a taper on purpose, and that is your answer. Reading the G-code for the straight section and confirming X is constant rules the code in or out in seconds.
There are a few specific code causes worth knowing.
| Code cause | What it does | How to spot it |
|---|---|---|
| Different X at each end of a pass | Cuts a straight taper | Compare the X at start and end of the move |
| Leftover taper value in a turning cycle | A turning cycle with a taper amount set | Check the cycle’s taper parameter is zero |
| Wrong tool nose radius compensation | Apparent taper on angled or curved cuts | Check the G41 or G42 and the tool nose radius |
| Changed or wrong tool wear offset | Diameter drifts between passes | Check the wear offset did not change mid-program |
A reliable reference such as the CNCCookbook lathe G-code tutorial explains the turning cycles and how their taper parameters work, which helps when you check that a cycle is not adding a taper you did not intend.
If the code is clean, look at the setup
When the program holds X constant and still produces a taper, the cause is mechanical, and there are a few usual suspects. The most common on slender parts is deflection: the cutting force pushes the tool and the workpiece apart, and on a long thin part held only in the chuck, the free end deflects away from the tool more than the supported end, leaving a taper that is largest where the part is least supported. The same happens with a long, thin tool that flexes under load.
Here are the setup causes, with the clue that points to each.
| Setup cause | Why it tapers | The clue |
|---|---|---|
| Workpiece deflection | Slender part bends away from the tool | Taper grows toward the unsupported end |
| Tool deflection | Long or thin tool flexes under load | Taper changes with depth of cut |
| Tailstock misalignment | Center pushes the part off the spindle axis | Consistent taper along the whole length |
| Worn ways or turret | Machine geometry is off | Repeatable taper across many parts |
| Tool wear | Insert wears during a long cut | Diameter drifts steadily on long parts |
Telling the causes apart
The pattern of the taper tells you a lot. A taper that grows toward the unsupported end of a slender part points to workpiece deflection, which you fix with a steady rest, a tailstock center, lighter cuts, or fewer spring passes. A taper that gets worse with a heavier cut points to tool or part deflection under force. A consistent taper along the whole length, the same on every part, points to tailstock misalignment or machine geometry, which is an alignment job rather than a programming one. And a diameter that drifts steadily over a long cut suggests tool wear. Matching the symptom to the cause keeps you from chasing the wrong fix. A quick way to separate alignment from deflection is to take a much lighter cut and measure again: if the taper shrinks noticeably, deflection under cutting force is involved, whereas a taper that stays the same regardless of cut depth points to a fixed geometry problem like the tailstock or the ways.
The most useful first step in all of this is still reading the program, because it is the fastest cause to eliminate. If you can read the turning pass and confirm the X values, you immediately know whether to reach for the editor or the toolroom.
How a programmed taper sneaks in
It is worth understanding how a taper ends up in the code by accident, since it is more common than people expect. A turning cycle on many controls accepts a taper amount, and a nonzero value left in from a previous program or a typo produces a taper on what should be a straight cut. A hand edit can introduce a different X at the two ends of a pass. And the tool nose radius compensation, with G41 or G42, can create an apparent taper or a wrong dimension on angled and curved features if the nose radius or the tool orientation is set wrong, even though the straight diameters look fine. Knowing these lets you check the right things rather than assuming the machine is at fault.
A worked check: is X constant?
To make the code check concrete, picture a straight turning pass. The tool feeds along Z from one end of the cylinder to the other while X stays the same, because X is the diameter and the diameter should not change on a straight part. So in the program you look for a G1 move where Z changes but X does not, or where X repeats the same value across the pass. If instead you see the X value step from, say, 25.0 at one end to 25.4 at the other, the program is cutting a 0.4 mm taper on the diameter, and there is your cause. The LinuxCNC G-code reference describes how the linear and turning-cycle moves work, which helps when you are confirming exactly what a block does. This single comparison, the X at the start versus the X at the end, settles the code question faster than any machine adjustment.
Fixing each mechanical cause
Once you have confirmed the code is clean, the fix depends on which mechanical cause matches the pattern. For workpiece deflection, support the part better: bring up a tailstock center, add a steady rest for long slender work, reduce the depth of cut, or add a light spring pass. For tool deflection, use a shorter or more rigid tool and lighter cuts. For tailstock misalignment, the lathe needs its tailstock aligned to the spindle axis, which is a setup and adjustment task rather than a programming one. For machine wear, the fix is maintenance, though you can sometimes compensate in the short term. And for tool wear on long cuts, replace or index the insert and consider a wear-compensating strategy. Matching the fix to the confirmed cause is what keeps you from, say, realigning a tailstock when the real problem was a slender part that needed support.
Reading the program to settle it
Because the code is the fastest cause to confirm, build the habit of reading the relevant section before touching the machine. Find the straight turning pass and compare the X at the start and the end. Check any turning cycle for a taper parameter. Check the tool nose radius compensation if angled features are also wrong. If all of that is correct, you have ruled out the code and can focus on deflection and alignment with confidence. This is the same verification mindset that applies whether you hand-edit a program or just read one to diagnose a problem.
The reading skill that speeds diagnosis
Diagnosing an unwanted taper quickly depends on reading the program fluently. If you can scan the turning pass and the cycle parameters at a glance, you eliminate or confirm the code cause in under a minute, instead of spending an afternoon adjusting the machine for a problem that lives in the file. That fluency is recall, built by short practice on the codes.
The free G-Code Sprint app at GCodePractice.com runs 60-second rounds on the common G and M codes and repeats whatever you miss, so reading a lathe program to check for a taper cause becomes quick and natural. It is an educational practice tool for building that fluency, not a machine controller, so the setup checks and alignment work still do the real mechanical fixing. Learn the codes, read the turning pass first, and an unwanted taper becomes a problem you can isolate to the code or the setup in minutes rather than guess at.
Frequently asked questions
Why is my CNC lathe cutting a taper when it should be straight?
Either the G-code is cutting a taper, with a different X at each end of the pass, a leftover taper value in a turning cycle, or a tool offset issue, or the program is correct and the setup is the cause, such as tool or workpiece deflection, tailstock misalignment, or machine wear. Read the program first to rule out a code cause. To read it quickly, the free G-Code Sprint app at GCodePractice.com drills the common G and M codes in 60-second recall rounds.
How do I know if the taper is from the code or the machine?
Read the straight turning pass and compare the X value at the start and the end. If they differ, the code is cutting the taper. If X is constant and the part still tapers, the cause is mechanical, and the pattern of the taper points to deflection, tailstock alignment, or wear.
Why does a thin part come out tapered on a lathe?
Usually workpiece deflection. A long, slender part held only in the chuck bends away from the cutting force at its unsupported end, so that end ends up a larger or smaller diameter, leaving a taper. A steady rest, a tailstock center, or lighter cuts reduce it.
Can tool nose radius compensation cause a taper?
It can cause an apparent taper or wrong dimensions on angled and curved features if the G41 or G42 setting or the tool nose radius value is wrong, even when straight diameters look correct. Check the compensation and the nose radius if angled features are also off.
How does tailstock misalignment cause a taper?
If the tailstock is offset from the spindle axis, it pushes the part slightly off center along its length, so the diameter changes consistently from one end to the other. The clue is a steady taper of the same amount on every part, which points to alignment rather than the program.
What is the fastest way to diagnose a lathe taper?
Read the program first, since it is the quickest cause to confirm or eliminate. Check the X values on the straight pass and any turning cycle’s taper parameter. If the code is clean, move to the setup, using the taper’s pattern to point at deflection, alignment, or wear.