# G2

Controlled Arc Move

Back to the Gcode Dictionary

#### G2 & G3: Controlled Arc Move

Supported by RRF_1.18 and later.

**Usage**

- G2 Xnnn Ynnn Znnn Innn Jnnn Ennn Fnnn
*(Clockwise Arc)* - G3 Xnnn Ynnn Znnn Innn Jnnn Ennn Fnnn
*(Counter-Clockwise Arc)*

**Parameters**

**Xnnn**The position to move to on the X axis.**Ynnn**The position to move to on the Y axis.**Znnn**The position to move to on the Z axis.**Innn**The X coordinate of the arc centre**relative to the current X coordinate**(optional, ignored if R parameter is present).**Jnnn**The Y coordinate of the arc centre**relative to the current Y coordinate**(optional, ignored if R parameter is present).**Ennn**The amount to extrude between the starting point and ending point.^{1}**Fnnn**The feedrate per minute of the move between the starting point and ending point (optional, defaults to the current feed rate).**Rnnn**The radius of the arc (optional, RRF2.03 and later)

Either the R parameter must be provided, or at least one of I and J must be provided. To draw a complete circle, define the position of the centre using I and/or J and make X and Y the same as the current X and Y coordinates.

^{1}Where a tool has more than one extruder drive then Ennn:nnn:nnn etc is supported to allow for the individual movement of each to be controlled directly. This overrides the extruder mix ratio set with M567

**Examples**

G2 X90.6 Y13.8 I5 J10 E22.4; (Move in a Clockwise arc from the current point to point (X=90.6,Y=13.8), with a center point at (X=current_X+5, Y=current_Y+10), extruding 22.4mm of material between starting and stopping) G3 X90.6 Y13.8 I5 J10 E22.4 ;(Move in a Counter-Clockwise arc from the current point to point (X=90.6,Y=13.8), with a center point at (X=current_X+5, Y=current_Y+10), extruding 22.4mm of material between starting and stopping) G2 X100 Y50 R200 ;(draw a clockwise arc with radius 200 from the current position to X=100 Y=50)

## 2 Comments

Fantastic example but does it support full circle output? G2 X100 Y50 R200 , Whilst the current position is X100 Y50 ?

Annette Cash - Reply

RepRapFirmware allows for full circles when radius is

notused, as per NIST guidelines (see https://tsapps.nist.gov/publication/get_... section 3.5.3), and as stated in the description above: “To draw a complete circle, define the position of the centre using I and/or J and make X and Y the same as the current X and Y coordinates.“Your example would not work, and you would get an error; “Error: G2/G3: distance between start and end points must not be zero when specifying a radius“, as the centre point of the circle would be undefined, because it could be anywhere on the circle 200mm from the start/end point, unless assumptions are made about which direction to start the move. G2 X100 Y50 I200 does work, putting the centre of the circle at X300 Y50.

For any further support, please use the forum https://forum.duet3d.com/

Ian A-S -