Lista de Códigos G y M para Programación CNC

Busca y filtra comandos ISO por control, máquina o función.

El lenguaje de programación CNC se basa en bloques de código estructurados para controlar trayectorias, avances y funciones de la máquina herramienta. En esta lista de códigos G y M encontrarás una referencia rápida de los comandos más utilizados en mecanizado para torno y fresadora. Aunque existe un estándar ISO, la ejecución exacta de un ciclo fijo o una interpolación avanzada puede variar según el control numérico Fanuc, Heidenhain, Siemens, Haas y los parámetros del fabricante.

Estos códigos pueden variar según control, postprocesador, máquina y parámetros del fabricante. Antes de ejecutar un programa real, confirma la sintaxis en los manuales oficiales de la máquina/control y simula el recorrido. GetGCode no se hace responsable de daños personales, daños materiales, paradas de producción, errores de programación, errores de diagnóstico ni decisiones tomadas a partir de esta información orientativa. Las marcas citadas pertenecen a sus respectivos titulares (ver Aviso legal).
Agregar mis códigos
Puedes usar la tabla libremente. Guardar tus propios códigos está reservado a las cuentas con acceso Pro.
Código
Nombre
Familia
Ejemplo
Qué hace
Filtros

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 familia

Sintaxis por control

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).

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.

Letras que lo acompañan

LetraQué indicaUnidad
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

Ejemplo comentado

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. )

Cuándo se usa G54 y cuándo otro origen

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.

Cómo se combina con G90, G43 y G53

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.

Qué se guarda realmente en la tabla

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.

Errores que cuestan una pieza (o una herramienta)

  • Palpar la pieza en G54 y dejar activo otro origen en el programa (un G55 heredado de la operación anterior): la máquina mecaniza en el sitio equivocado y en rápido.
  • Arrastrar un G92 o un G52 activo de un programa anterior: el cero pieza queda desplazado sin que la tabla lo muestre. Cancela con G52 X0 Y0 Z0 y evita G92 en programas nuevos.
  • Volver a apretar la mordaza, cambiar el tope o darle la vuelta a la pieza sin repalpar el origen.
  • Meter la altura de la pieza en el Z del G54 y además medir las herramientas contra la mesa: la misma distancia se descuenta dos veces y la herramienta entra de más.
  • Escribir G10 L2 con G91 activo: los valores se suman al origen existente en vez de sustituirlo, y cada arranque del programa desplaza el cero un poco más.
  • Suponer que un G53 vuelve al cero pieza: G53 son cotas de máquina, así que G53 X0. Y0. lleva la mesa al cero máquina, no a la esquina de la pieza.

Preguntas Frecuentes (FAQ)

¿Qué diferencia hay entre G54 y G92?

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.

¿Cuántos orígenes tiene una máquina?

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.

¿Qué valor exactamente se guarda en la fila de G54?

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.

¿Hace falta repetir G54 en cada herramienta?

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.

¿Puedo cambiar de origen a mitad de programa?

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.

Códigos relacionados

G55G59G53G92G90

G00

Movimiento

Posicionamiento rápido

Movimiento rápido hasta una coordenada sin controlar avance de corte.

G01

Movimiento

Interpolación lineal

Movimiento lineal controlado con avance programado.

G02

Movimiento

Interpolación circular horaria

Arco circular en sentido horario en el plano activo.

G02.1/G03.1

Interpolación

Interpolación espiral (circular threading B)

Interpolación espiral CW/CCW: movimiento helicoidal continuo con paso variable; usado en roscado B y algunas operaciones de lapeado.

G02.2/G03.2

Interpolación

Interpolación evolvente

Interpolación a lo largo de una evolvente de círculo (involute interpolation), usada en fabricación de engranajes.

G03

Movimiento

Interpolación circular antihoraria

Arco circular en sentido antihorario en el plano activo.

G04

Control de programa

Pausa temporizada

Detiene temporalmente la ejecución durante un tiempo o número de revoluciones definido.

G05/G05.1

Alta velocidad

Alta velocidad / AI contour

Activa funciones de mecanizado de alta velocidad, anticipación de trayectoria o control avanzado de contorno.

G5/G5.1/G5.2

Interpolación avanzada

Splines y NURBS

Interpolaciones por spline cúbica, spline cuadrática o NURBS en controles que lo soportan.

G05.4

Alta velocidad

HRV3/HRV4 on/off

Activa o desactiva el control de corriente HRV3/HRV4 (High Response Vector) para mejorar la precisión de servo en alta velocidad.

G06.2

Alta velocidad

Interpolación NURBS

Interpolación de curvas NURBS (Non-Uniform Rational B-Spline) directamente en el control, reduciendo puntos de bloque y mejorando la suavidad.

G07

Interpolación

Interpolación eje hipotético

Define un eje hipotético (virtual) para interpolación; usado en mecanizado de piezas con simetría o para coordinar movimientos no físicos.

G7/G8

Torno

Modo diámetro/radio en torno

Selecciona si las coordenadas X de torno se interpretan como diámetro o radio según control.

G08/G09

Trayectoria

Suavizado y parada exacta puntual

Funciones usadas para activar/desactivar suavizado o exigir parada exacta en un bloque concreto según control.

G10

Offsets

Escritura de offsets

Permite escribir offsets de herramienta, trabajo u otros datos desde el programa.

G12/G13

Ciclos fresado

Cajera circular

Ciclo de interpolación circular para mecanizar cajeras o patrones circulares según control.

G15/G16

Coordenadas

Coordenadas polares

Activa o cancela programación en coordenadas polares, normalmente radio y ángulo.

G17/G18/G19

Plano

Selección de plano

Define el plano activo para arcos y compensaciones.

G20/G21

Unidades

Unidades pulgadas / milímetros

Selecciona programación en pulgadas o milímetros.

G22/G23

Seguridad

Límites de carrera programados

Activa o desactiva comprobación de zona/límites almacenados según control.

¿Qué son los códigos preparatorios (G) y auxiliares (M)?

Los códigos G preparan y gobiernan el movimiento de la herramienta: desplazamientos rápidos, interpolación lineal, interpolación circular, ciclos fijos, planos de trabajo y compensaciones. Los códigos M controlan funciones auxiliares de la máquina como husillo, refrigerante, parada, cambio de herramienta o fin de programa.

Categorías principales de programación

Movimiento e interpolación (G00, G01, G02, G03)

G00 se usa para posicionamiento rápido, G01 para avance lineal de corte y G02/G03 para interpolación circular horaria o antihoraria. Son la base de la mayoría de programas CNC en fresadora y torno.

Ciclos fijos y subprogramas

Los ciclos fijos simplifican operaciones repetitivas como taladrado, roscado, mandrinado o desbaste. Su sintaxis cambia mucho entre controles, por lo que conviene validar siempre el manual de máquina.

Preguntas Frecuentes (FAQ)

¿Cuál es la diferencia entre un código G y un código M?

Los códigos G (preparatorios) definen la geometría y el movimiento de la herramienta, como interpolaciones lineales o ciclos de desbaste. Los códigos M (misceláneos o auxiliares) controlan el hardware de la máquina, como el encendido del husillo (M03), el refrigerante (M08) o el fin de programa (M30).

¿Los códigos G son universales para todos los tornos y fresadoras?

No totalmente. Aunque los movimientos básicos como G00, G01, G02 y G03 son universales, los ciclos fijos complejos, como G71 para desbaste o G83 para taladrado profundo, tienen sintaxis y parámetros diferentes según uses Fanuc, Haas, Siemens o Heidenhain.

¿Qué es y cuándo se usa el código G01?

G01 es el código de interpolación lineal. Se utiliza para ordenar a la herramienta que se mueva en línea recta hasta una coordenada específica a un avance de corte controlado y programado por la letra F.

¿Qué diferencia hay entre los códigos G90 y G91?

El código G90 establece el sistema de posicionamiento absoluto, donde todas las coordenadas se miden desde el cero pieza (origen). El G91 activa el posicionamiento incremental, donde cada nuevo movimiento se calcula desde la posición actual de la herramienta.

¿Para qué sirven los códigos G41 y G42 en mecanizado?

Estos códigos activan la compensación del radio de la herramienta o plaquita. G41 compensa la trayectoria hacia la izquierda del contorno programado según el sentido de avance, y G42 hacia la derecha. Se usan para mecanizar perfiles, chaflanes y radios con medidas exactas sin clavar la herramienta.

¿Cómo se cancelan los ciclos fijos y las compensaciones?

Para evitar colisiones, es obligatorio cancelar las funciones modales cuando ya no se necesitan. El código G80 cancela cualquier ciclo fijo activo, como los de taladrado. G40 cancela la compensación de radio de herramienta, y G49 cancela la compensación de longitud, muy usado en fresadora.

¿Cuáles son los códigos M auxiliares imprescindibles?

Los códigos de hardware más estandarizados son M03 (giro del husillo a derechas), M04 (giro a izquierdas), M05 (parada del husillo), M08 (encendido del refrigerante o taladrina), M09 (apagado del refrigerante) y M30 (fin del programa, detención de ejes y rebobinado).

¿Los ciclos fijos de Fanuc funcionan igual en otros controles?

No. Aunque los movimientos de interpolación (G00 a G03) son un estándar ISO muy extendido, la sintaxis de los ciclos complejos cambia. Por ejemplo, el ciclo de desbaste en torno es un G71 en Fanuc, pero en Siemens requiere una estructura de parámetros diferente, como CYCLE95.

¿Qué significa la letra F, S y T en el código CNC?

Acompañando a los códigos G y M, la letra F (Feed) define el avance de corte, la letra S (Speed) establece las revoluciones por minuto o la velocidad de corte del husillo, y la letra T (Tool) llama al número de la herramienta y su corrector en la torreta o cargador.

Herramientas relacionadas