# G-code for 3-axis arc? GRBL

I see that arcs are done on a two-axis plane.
However, I am curious if it is possible to move from an <x,y,z> position to <x',y',z'> e.g <152, 559, -139> to <905, 279,-145> with an arcing z-axis.

Context: I'm trying to move between the two coordinate points while dodging an obstacle by arcing the Z-axis movement. I am trying to do the motion on command to be able to operate faster. Using GRBL 1.1

• I love the idea of arcs. Common approach in 3d printing is to process triangulated mesh. This leads to slicing only segments. I see that arcs are supported by Marlin, but so far I saw no case of using them... – octopus8 Feb 4 at 3:39

This should be possible in GRBL 1.1, see examples below.

Disclaimer: I have never used neither GRBL nor arcs (G2, G3) in practice.

# Support for arcs in G-code

In general, in IJK variant where the arc is described by three points (starting, end, center) anything seems possible, including the rainbow-like moves. I imagine (I,J,K) coordinates as imaginary arrow's nock for bent bow. By moving it around, you will "reshape" the bow as needed. I actually found similar CNC Arc Programming Exercise, including:

G01 X40 Z-25
G03 X70 Z-75 I-3.335 K-29.25


and very interesting Quick G-Code Arc Tutorial on CNC Cookbook. It presents R variant example of helical moves (tread milling) with Z decreasing in steps (relative positioning):

G03 X0.0939 Y0.0939 Z0.0179 R0.0939
G03 X-0.1179 Y0.1179 Z0.0179 R0.1179
G03 X-0.1185 Y-0.1185 Z0.0179 R0.1185


# Support for acrs in GRBL

I found similar question in Duet3d forum: Caution! - STL Resolution. There is a sentence:

On GRBL you get some planar support (pick any two axes, eg XZ, but not three). (...) Some controllers even implement a helix mode.. but no standards exist.

So the support in GRBL may be limited. However this comment seems to be in condtradiction to the official GRBL README.md, saying:

List of Supported G-Codes in Grbl v1.1: (...)

• Arc IJK Distance Modes: G91.1

I leave a practical proof to you now.