---
title: "Why Is G02 Cutting a Straight Line? Common Causes"
description: "G02 cuts a straight line when the arc is not actually defined: missing I and J words, a firmware without arc support, the wrong plane, or a huge radius."
url: https://gcodepractice.com/journal/why-is-g02-cutting-a-straight-line/
canonical: https://gcodepractice.com/journal/why-is-g02-cutting-a-straight-line/
author: "Lawrence Arya"
authorUrl: https://www.linkedin.com/in/vibecoding/
published: 2026-06-04
updated: 2026-06-04
category: "Code reference"
tags: ["g02", "arc", "troubleshooting", "beginner"]
lang: en
---

# Why Is G02 Cutting a Straight Line? Common Causes

> **TL;DR** A G02 that moves in a straight line almost always means the arc was never properly defined for the control executing it. The usual causes: the I and J center words are missing or zero, the firmware does not support arcs and falls back to linear moves, the wrong plane is active so the arc happens in axes you are not watching, the radius is so large the arc looks straight, or the CAM output already converted arcs to short G01 segments.

A `G02` that travels in a straight line is telling you something specific: the control executed a move, but it never had a valid arc to cut. The arc definition got lost somewhere between your intent and the machine, and there are five usual places it goes missing.

## Is the arc missing its center words?

Start with the block itself. A `G02` needs either center offsets (`I`, `J`) or a radius (`R`) to define the circle, per the [LinuxCNC arc requirements](https://linuxcnc.org/docs/html/gcode/g-code.html). A block like `G02 X20. Y10. F150` with no `I`, `J`, or `R` has an endpoint but no curvature. Strict controls alarm on it; permissive firmware and many simulators quietly run the move as a straight line.

Zeroed words cause the same failure as missing ones. `I0 J0` says the center sits exactly on the start point, a circle of zero radius, which degenerates into nothing useful. This is usually a CAM post or hand-typing slip, and the difference between the two center systems is covered in [I, J, K vs R in G02](/journal/difference-between-i-j-k-and-r-in-g02/).

## Does your firmware support arcs at all?

If the same file arcs fine on one machine and draws lines on another, suspect the firmware. Full CNC controls implement `G02` and `G03`, but the [G-code language](https://en.wikipedia.org/wiki/G-code) is implemented in subsets: stripped-down hobby boards, some 3D-printer firmware builds without arc support enabled, and some laser controllers either ignore arc commands or expect the sender software to break arcs into line segments first. The fix is a firmware option, a different sender setting, or posting the file with arcs linearized on purpose.

## Is the wrong plane active?

An arc is drawn in the active plane. With `G18` or `G19` active, a `G02` arcs in the XZ or YZ pair, as the [plane-selection references](https://www.helmancnc.com/plane-selection-g17-g18-g19/) lay out, so the XY motion you are watching can be a straight component of an arc happening in axes you are not watching. If the program never sets `G17` and a previous job left another plane active, this is exactly what you see. The cure is the safety-block habit from [G17, G18, G19 plane selection](/journal/g17-g18-g19-plane-selection-explained/): state the plane at the top of every program.

## Is the radius just very large?

Sometimes the arc is real and correct, and only looks straight. A 2 mm chord on a 500 mm radius deviates from a straight line by about a thousandth of a millimeter, far below anything you can see on screen or measure on the part. Check the numbers before assuming a fault: if the radius is hundreds of times the chord length, the arc is behaving exactly as commanded.

## Did CAM linearize the arcs?

Open the file and search for `G02`. Many CAM posts and slicers output curves as hundreds of tiny `G01` segments instead of true arcs, either by default or because the post was configured for a controller without arc support. If the file contains no `G02` at all, the machine is faithfully cutting the straight segments it was given. Re-post with arc output enabled if the control supports it.

## How to diagnose it in order

| Check | What you look for | Fix |
| --- | --- | --- |
| The block | `I`/`J` or `R` present and non-zero | Add or correct the center words |
| The firmware | Does this board execute `G02`? | Enable arcs or linearize in the sender |
| The plane | `G17` active before the arc | Set the plane in the safety block |
| The geometry | Radius huge relative to chord | No fault; the arc is just flat |
| The file | Any real `G02` lines at all | Re-post CAM with arc output on |

The first row catches most cases. The direction question, why the arc bends the wrong way rather than not at all, is a different failure with its own cause, covered in [G02 vs G03](/journal/g02-vs-g03/).

## Bottom line

A straight-cutting `G02` means the arc definition never reached the control: missing or zero center words, firmware without arc support, the wrong plane, a radius too large to see, or a file that was linearized before it ever got to the machine. Check the block, the firmware, the plane, the geometry, then the file, in that order. Reading an arc block at a glance is a recall skill, and a routine on the [G-code practice hub](/g-code-practice/) builds it.

## Sources

- [LinuxCNC G-code reference (G2/G3 arc requirements)](https://linuxcnc.org/docs/html/gcode/g-code.html)
- [Wikipedia: G-code](https://en.wikipedia.org/wiki/G-code)
- [HelmanCNC: plane selection G17 G18 G19](https://www.helmancnc.com/plane-selection-g17-g18-g19/)

## Frequently asked questions

### Why is G02 cutting a straight line instead of an arc?
The control never received a valid arc definition. Check that `I` and `J` (or `R`) are present and non-zero, that the firmware supports arcs, that `G17` is active for an XY arc, that the radius is not so large the arc only looks straight, and that CAM did not linearize the arcs into `G01` segments.

### What happens if I and J are missing from a G02 block?
Strict controls alarm because the arc has no center. Permissive firmware and some simulators substitute zero offsets or run the move as linear, which turns a commanded arc into a silent straight cut.

### Do all machines support G02 and G03?
No. Stripped-down hobby firmware, some 3D-printer builds without arc support, and some laser boards ignore arc commands or need a sender to convert them to line segments first.

### What is the best way to learn arc codes so this does not happen?
Drill the arc codes and their required words with active recall. A free app like G-Code Sprint quizzes `G02`, `G03`, and the `I`, `J`, `K`, `R` words and repeats whichever ones you miss.

*G-Code Sprint is a study and practice tool only. Always follow your instructor, employer, machine manual, and shop safety procedures.*

---

Source: https://gcodepractice.com/journal/why-is-g02-cutting-a-straight-line/
Author: Lawrence Arya — https://www.linkedin.com/in/vibecoding/
