# E axis vs Z axis

When using G1 command in G-code, what is the difference between Z- axis and E- axis?

I see all E, F and Z in

G1 Z0.350 F7800.000
G1 E-2.00000 F2400.00000
G92 E0
G1 X96.753 Y95.367 F7800.000
G1 E2.00000 F2400.00000


G-CODE can be confusing as historically it was developed for machining tools rather than FDM printers, and thus:

• not all available commands make sense for a 3D printer
• some of the command do slightly different things than those one may intuitively think they do.

Typically, Cartesian printers use 4 "axis": X, Y and Z for moving the printhead in space and E for "extruder". The "extruder axis" is not in fact at all an axis in the geometrical sense of the word: it refers to the amount of filament to be moved into (extruded) or out of (retracted) the printing head. The reason why it is considered an "axis" is that it is used in conjunction with the codes G0 and G1 which are for movement.

Confusingly, the letter E is used for the precision feedrate of lathes but in the 3D printing world we rather use F to that purpose. As a non-native English speaker, I was further confused, because for the longest time I thought "feedrate" was referring to the amount of filament fed to the printing head, while in fact it is the speed at which the printing head moves (in mm/minute).

So to summarise, your example code "translated" would look like this:

G1 Z0.350 F7800.000           ; move up 350 microns at 7.8 m/min
G1 E-2.00000 F2400.00000      ; retract 2mm of filament at 2.4 m/min
G92 E0                        ; reset the extruder position
G1 X96.753 Y95.367 F7800.000  ; move to X,Y (without changing Z) at 7.8 m/min


Should you wish to dig deeper into the topic, the RepRap wiki page on gcode is rather comprehensive. Mind that several manufacturers add their own "special codes" to the common ones....

z-axis refers typically to vertical movement

F references are feed rates/movement rates

E references are for the extruder, referencing the amount and speed to eject filament, negative e-values are retraction commands