Fanuc (fresado y torno)
G90 G54 G00 X0. Y0.
Se escribe en el bloque de seguridad de cada herramienta, junto con G90. Para más de seis amarres, Fanuc amplía la lista con G54.1 P1...P48 (hasta P300 según opción).
We use first-party cookies and technical storage to make the site work, Google reCAPTCHA security technology and, only if you accept, Vercel analytics (no cookies, no cross-site tracking). You can accept or reject analytics; both options are equivalent and you can change your choice at any time. More info: Cookie policy, Privacy policy, Legal notice and Terms and conditions.
Search and filter ISO commands by control, machine or function.
The CNC programming language is based on structured code blocks that control toolpaths, feeds and machine-tool functions. In this list of G and M codes you'll find a quick reference to the commands most used in turning and milling. Although an ISO standard exists, the exact execution of a canned cycle or an advanced interpolation can vary depending on the Fanuc, Heidenhain, Siemens or Haas control and the manufacturer's parameters.
G54 selecciona el primer origen de trabajo: a partir de ese bloque todas las cotas X, Y y Z del programa se miden desde el punto de la pieza que el operario ha palpado y guardado en la tabla de orígenes. Es modal, así que queda activo hasta que otro G55-G59 lo sustituya. Lo que se guarda en la tabla es la distancia del cero máquina al cero pieza, normalmente negativa en X e Y.
Ver la ficha completa de la familiaFanuc (fresado y torno)
G90 G54 G00 X0. Y0.
Se escribe en el bloque de seguridad de cada herramienta, junto con G90. Para más de seis amarres, Fanuc amplía la lista con G54.1 P1...P48 (hasta P300 según opción).
Haas
G90 G54 G00 X0. Y0.
Idéntico a Fanuc. Los orígenes adicionales de Haas son G154 P1...P99; en máquinas antiguas se usaban G110-G129 para lo mismo.
Siemens 840D / 828D
G54 G90 G0 X0 Y0
En Siemens G54-G57 son desplazamientos de origen ajustables; G505 a G599 amplían la lista y G500 los desactiva. Además existen los desplazamientos programables TRANS y ATRANS, que se suman al ajustable.
Heidenhain TNC (Klartext)
CYCL DEF 247 FIJAR ORIGEN Q339=1
En Heidenhain el origen sale de la tabla de preset o de la tabla de puntos cero. El ciclo 247 selecciona el número de preset dentro del programa, que es el equivalente práctico de cambiar de G54 a G55.
| Letra | Qué indica | Unidad |
|---|---|---|
| X Y Z (en la tabla) | Valores guardados en la fila del origen: distancia del cero máquina al cero pieza en cada eje. No se escriben en el bloque G54, se cargan en la tabla o con G10. | mm / pulg |
| P (con G54.1 o G154) | Número del origen extendido cuando hay más amarres que los seis clásicos: G54.1 P7 en Fanuc, G154 P7 en Haas. | número entero |
| L2 P1 (con G10) | Forma de escribir el origen desde el propio programa: G10 L2 P1 X... Y... Z..., donde P1 es G54 y P6 es G59. | mm / pulg |
Placa amarrada en mordaza. El operario palpa la esquina delantera izquierda y la cara superior y guarda esos valores en G54; aquí se ven escritos desde el programa con G10 L2 P1 para dejar claro qué significan. Después se planea un escalón con fresa de Ø16.
| O0054 (ESCALON CON ORIGEN G54) | ( Cabecera del programa. ) |
| G21 G17 G40 G49 G80 | ( Milímetros, plano XY y estado limpio. ) |
| G90 G10 L2 P1 X-412.350 Y-215.780 Z0. | ( Escribe el origen G54 (P1) desde el programa: la distancia del cero máquina a la esquina palpada. Con G90 sustituye el valor; con G91 lo sumaría. Muchos talleres prefieren dejarlo solo en la tabla. ) |
| G91 G28 Z0. | ( Z a referencia en incremental antes del cambio. ) |
| T1 M06 | ( Fresa de Ø16. ) |
| G90 G54 G00 X-15. Y10. | ( Activa el origen y se posiciona ya en cotas de pieza: X-15 son 15 mm a la izquierda de la esquina palpada. ) |
| G43 H01 Z50. M03 S2600 | ( Longitud de la T1 y husillo en marcha. Con el Z del G54 a cero, la longitud del corrector es la que sitúa la Z0 en la cara. ) |
| G00 Z2. M08 | ( Aproximación y refrigerante. ) |
| G01 Z-3. F150 | ( Entra 3 mm por debajo de la cara: Z-3 es una cota de la pieza, no de la máquina. ) |
| G01 X95. F600 | ( Pasada del escalón a lo largo de la placa. ) |
| G00 Z50. M09 | ( Retirada y refrigerante fuera. ) |
| G91 G28 Z0. M05 | ( Z a referencia y husillo parado. ) |
| G90 G53 X0. Y-400. | ( G53 trabaja en cotas de máquina e ignora el G54: sirve para llevar la mesa a la posición de carga. ) |
| M30 | ( Fin de programa. ) |
G54 es el origen por defecto y el que se usa cuando hay un solo amarre. Los siguientes, G55 a G59, sirven para más piezas en la mesa, para un amarre en el plato de un cuarto eje o para varias caras de la misma pieza. Con más de seis amarres se pasa a los orígenes extendidos, G54.1 P en Fanuc y G154 P en Haas. La costumbre sana es escribir el origen en el bloque de seguridad de cada herramienta, para que un arranque a mitad de programa no herede el origen de la operación anterior.
G54 dice desde dónde se mide, G90 dice que las cotas son absolutas y G43 dice cuánto sobresale la herramienta: los tres van juntos en el bloque de arranque. G52 y G92 se suman al origen activo y siguen puestos hasta que se cancelan, por lo que conviene evitarlos o limpiarlos con G52 X0 Y0 Z0. G53, en cambio, no se suma a nada: es un salto en coordenadas de máquina que ignora el origen activo, y es la forma limpia de ir a una posición de carga o de descarga.
La fila de G54 guarda un vector: cuánto hay que desplazarse desde el cero máquina hasta el cero pieza en cada eje. Como el cero máquina de una fresadora suele estar en la esquina trasera derecha y arriba, los valores de X e Y salen negativos y el de Z también si se mide contra la cara. Ese vector es lo único que cambia cuando la pieza se mueve unos milímetros: el programa se queda igual. Por eso repalpar y corregir la fila es la operación de reglaje más frecuente del taller.
G54 selecciona una fila de la tabla de orígenes, que es un dato guardado y visible en pantalla. G92 redefine el origen sobre la marcha declarando qué cota tiene la posición actual, y ese desplazamiento queda activo de forma invisible hasta que se cancela. Para trabajo repetible se usa G54.
Los seis clásicos, G54 a G59, más los extendidos: G54.1 P1...P48 en Fanuc (hasta P300 con la opción) y G154 P1...P99 en Haas. En Siemens la lista se amplía con G505 a G599 y en Heidenhain con las filas de la tabla de preset.
La distancia del cero máquina al cero pieza en cada eje, con su signo. En una fresadora con el cero máquina en la esquina trasera derecha, X e Y salen negativos. No es la posición del palpador ni la altura de la herramienta: solo dónde está el cero de la pieza.
No es obligatorio porque es modal, pero sí es buena práctica: si el operario arranca el programa a mitad, desde el bloque de la tercera herramienta, ese bloque tiene que traer su propio G90 G54 y su G43 H para que la máquina no herede el estado del programa anterior.
Sí, y es lo normal cuando hay varias piezas en la mesa: se mecaniza la primera con G54, se llama al subprograma con G55, y así sucesivamente. Cada cambio de origen debe hacerse con la herramienta retirada y en un bloque de posicionamiento seguro.
G00
MovementQuick positioning
Fast movement to a coordinate without controlling cutting advance.
G01
MovementLinear interpolation
Controlled linear movement with programmed advance.
G02
MovementHourly circular interpolation
Circular arc clockwise in the active plane.
G02.1/G03.1
InterpolationSpiral interpolation (circular threading B)
CW/CCW spiral interpolation: continuous helical motion with variable pitch; used in B threading and some lapping operations.
G02.2/G03.2
InterpolationInvolute interpolation
Interpolation along an involute circle (involute interpolation), used in gear manufacturing.
G03
MovementCounterclockwise circular interpolation
Counterclockwise circular arc in the active plane.
G04
Program controlTimed dwell
Temporarily stops execution for a defined time or number of revolutions.
G05/G05.1
High speedHigh speed / AI contour
Enables high-speed machining functions, path look-ahead or advanced contour control.
G5/G5.1/G5.2
Advanced interpolationSplines and NURBS
Interpolations by cubic spline, quadratic spline or NURBS in controls that support it.
G05.4
High speedHRV3/HRV4 on/off
Enables or disables HRV3/HRV4 (High Response Vector) current control to improve servo precision at high speed.
G06.2
High speedNURBS interpolation
Interpolation of NURBS (Non-Uniform Rational B-Spline) curves directly in the control, reducing block points and improving smoothness.
G07
InterpolationHypothetical axis interpolation
Defines a hypothetical (virtual) axis for interpolation; used when machining symmetrical parts or to coordinate non-physical moves.
G7/G8
LatheDiameter/radius mode around lathe
Selects whether lathe X coordinates are read as diameter or radius depending on the control.
G08/G09
ToolpathSmoothing and block-wise exact stop
Functions used to activate/deactivate smoothing or require exact stopping in a specific block according to control.
G10
OffsetsOffset writing
Lets you write tool offsets, work offsets or other data from the program.
G12/G13
Milling cyclesCircular pocket
Circular interpolation cycle to machine pockets or circular patterns according to control.
G15/G16
CoordinatesPolar coordinates
Activates or cancels programming in polar coordinates, usually radius and angle.
G17/G18/G19
DrawingPlane selection
Defines the active plane for arcs and offsets.
G20/G21
UnitsUnits inches/millimeters
Select programming in inches or millimeters.
G22/G23
SafetyProgrammed stroke limits
Activates or deactivates zone checking/stored limits according to control.
G codes prepare and govern tool movement: rapid traverses, linear interpolation, circular interpolation, canned cycles, working planes and compensations. M codes control auxiliary machine functions such as spindle, coolant, stop, tool change or program end.
G00 is used for rapid positioning, G01 for linear cutting feed and G02/G03 for clockwise or counterclockwise circular interpolation. They are the basis of most CNC programs on milling machines and lathes.
Canned cycles simplify repetitive operations such as drilling, tapping, boring or roughing. Their syntax varies a lot between controls, so it's always wise to check the machine manual.
G codes (preparatory) define the geometry and tool movement, such as linear interpolations or roughing cycles. M codes (miscellaneous or auxiliary) control the machine hardware, such as starting the spindle (M03), the coolant (M08) or the end of program (M30).
Not entirely. Although basic moves such as G00, G01, G02 and G03 are universal, complex canned cycles like G71 for roughing or G83 for peck drilling have different syntax and parameters depending on whether you use Fanuc, Haas, Siemens or Heidenhain.
G01 is the linear interpolation code. It tells the tool to move in a straight line to a given coordinate at a controlled cutting feed programmed with the letter F.
G90 sets absolute positioning, where every coordinate is measured from the part zero (origin). G91 activates incremental positioning, where each new move is calculated from the tool's current position.
These codes activate tool or insert radius compensation. G41 offsets the path to the left of the programmed contour relative to the feed direction, G42 to the right. They are used to machine profiles, chamfers and radii to exact size without gouging.
To avoid crashes you must cancel modal functions once they are no longer needed. G80 cancels any active canned cycle, such as drilling cycles. G40 cancels tool radius compensation, and G49 cancels length compensation, widely used on milling machines.
The most standardised hardware codes are M03 (spindle clockwise), M04 (spindle counter-clockwise), M05 (spindle stop), M08 (coolant on), M09 (coolant off) and M30 (end of program, axes stop and rewind).
No. Although interpolation moves (G00 to G03) are a widely adopted ISO standard, the syntax of complex cycles differs. For example, the lathe roughing cycle is G71 on Fanuc, but Siemens requires a different parameter structure such as CYCLE95.
Alongside the G and M codes, the letter F (feed) sets the cutting feed, the letter S (speed) sets the spindle rpm or cutting speed, and the letter T (tool) calls the tool number and its offset in the turret or magazine.
CNC IDE: editing with G/M tooltips, line inspector, conversion between controls and 2D/3D toolpath.
CNC Alarms and Solutions Guide. Enter the error code or symptom to find the cause and how to repair it at the machine.
Estimate the cycle time of a CNC program: cutting, rapids, canned cycles, dwells and tool changes. Parts/hour and breakdown by item.