{"id":"gcode-g02","model_id":"G02","name":"LinuxCNC G02","summary":"G02 is a LinuxCNC G-code that commands a clockwise circular or helical arc at the current feed rate, the direction being viewed from the positive end of the axis about which the motion occurs. The arc is programmed either in center format, giving the endpoint plus I, J, K offsets to the arc centre, or in radius format using the R word. The arc axis and plane are chosen with G17, G18 or G19.","study_notes":["The direction (CW vs CCW) is as viewed from the positive end of the axis about which the circular motion occurs.","Plane selection: G17 (Z-axis, XY-plane), G18 (Y-axis, XZ-plane), G19 (X-axis, YZ-plane). Planes 17.1, 18.1 and 19.1 do not support arcs.","Center format is more accurate than radius format and is the preferred format to use.","G91.1 incremental arc distance mode is the default: center offsets are a relative distance from the start location of the arc. G90.1 makes offsets absolute from the current 0 position of the axis.","The P word must be an integer and defaults to 1; for each P increment above 1 an extra full circle is added to the programmed arc.","Including the axis word perpendicular to the arc plane (for example Z in G17) produces a helix; multi-turn helical arcs are supported.","Rounding errors can result from precision of less than 4 decimal places (0.0000) for inch and less than 3 decimal places (0.000) for millimetres.","In radius format a positive radius means a turn of less than 180 degrees and a negative radius a turn of more than 180 degrees.","Radius format is not good practice for nearly full circles or nearly semicircles because a small change in endpoint location produces a much larger change in the circle centre.","If a line of code makes an arc and includes rotary axis motion, the rotary axes turn at a constant rate so the rotary motion starts and finishes with the XYZ motion.","In center format the radius is not specified; it is the distance from the circle centre to the current point or the end point of the arc."],"safety_notes":["Warning: if the pitch of the helix is very small (less than the naive CAM tolerance) then the helix might be converted into a straight line (bug #222).","It is an error if no feed rate has been set with the F word, or if no offsets are programmed.","It is an error when, projected on the selected plane, the distance from the current point to the centre differs from the distance from the end point to the centre by more than (.05 inch/.5 mm) OR ((.0005 inch/.005mm) AND .1% of radius)."],"sources":[{"url":"https://linuxcnc.org/docs/html/gcode/g-code.html#gcode:g2-g3","title":"G-Codes","accessed":"2026-10-26"}],"verification":{"status":"source_checked","checked_at":"2026-10-26","values":30,"method":"llm_source_check"},"updated_at":"2026-10-26","type":"instruction","spec":{"language":"gcode","code":"G02","group":"Arc Move","syntax":"G2 axes offsets (center format); G2 axes R- (radius format); G2 offsets|R- <P-> (full circles)","parameters":[{"name":"X","data_type":"real","description":"Axis word for the arc end point in the selected plane."},{"name":"Y","data_type":"real","description":"Axis word for the arc end point in the selected plane."},{"name":"Z","data_type":"real","description":"Helix axis word when the G17 plane is active; moves the Z axis during the circular XY motion."},{"name":"I","data_type":"real","description":"X offset to the arc centre from the current location."},{"name":"J","data_type":"real","description":"Y offset to the arc centre from the current location."},{"name":"K","data_type":"real","description":"Z offset to the arc centre from the current location (XZ and YZ planes)."},{"name":"R","data_type":"real","description":"Radius from the current position; positive for a turn of less than 180 degrees, negative for more than 180 degrees."},{"name":"P","data_type":"integer","description":"Number of full turns plus the programmed arc; defaults to 1 when unspecified."},{"name":"F","data_type":"real","description":"Feed rate; an error occurs if no feed rate has been set."}],"dialect":"LinuxCNC","related":[],"standards":[]},"url":"https://machineschema.com/instruction/gcode-g02","license":"https://creativecommons.org/licenses/by/4.0/"}