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

G43 aplica en el eje Z la longitud de la herramienta guardada en el corrector H, de modo que la Z0 del programa siga siendo la cara de la pieza aunque cada herramienta sobresalga del cono una longitud distinta. Se programa justo después del cambio de herramienta, en el mismo bloque que una Z de seguridad, y se cancela con G49 o con H0. Sin G43, la máquina se mueve con la longitud de la herramienta anterior o sin ninguna.

Ver la ficha completa de la familia

Sintaxis por control

Fanuc (fresado)

G43 H01 Z50. M03 S1200

La corrección entra al ejecutar el movimiento en Z de ese bloque; por eso se escribe junto a una Z de seguridad y no en un bloque suelto. G49 o G43 H0 la cancelan. G44 aplica la longitud en sentido contrario y hoy apenas se usa.

Haas (fresado)

G43 H01 Z50. M03 S1200

Igual que Fanuc. Haas suma la columna de geometría de longitud y la de desgaste. El ajuste 15 (H & T Code Agreement), si está activado, da alarma cuando el número de H no coincide con el de T.

Siemens 840D / 828D

T3 M6 D1

Siemens no usa G43 ni H: la longitud entra con el número de filo D de la herramienta activa y se anula con D0. Los valores están en la tabla de herramientas, no en una lista de correctores aparte.

Heidenhain TNC (Klartext)

TOOL CALL 3 Z S1200

La longitud L de la tabla TOOL.T se aplica al llamar la herramienta, sin instrucción separada. DL añade una corrección delta puntual (DL+0.15) sin modificar la tabla.

Letras que lo acompañan

LetraQué indicaUnidad
HNúmero del corrector de longitud. Por norma de taller, el mismo número que la herramienta que acaba de entrar (T4 con H04).número entero (H01, H12...)
ZCota de seguridad a la que se aplica la corrección en ese mismo bloque. Debe estar claramente por encima de la pieza y del amarre.mm / pulg
H0Anula la corrección de longitud sin escribir G49. Útil para dejar el estado limpio al final de un subprograma.sin unidad

Ejemplo comentado

Segunda operación de un programa de fresadora: entra la broca de Ø8 (T4) para hacer cuatro agujeros. El corrector H04 lleva la longitud de esa broca referida a la cara superior de la pieza, que es la Z0 del G54.

G00 Z50. M09( Retira la herramienta anterior y corta el refrigerante. )
G40 G80( Cancela la compensación de radio y cualquier ciclo fijo antes del cambio. )
G91 G28 Z0. M05( Z a referencia en incremental, husillo parado. El cambio anula la compensación de longitud que hubiera activa. )
T4 M06( Cambio a la broca de Ø8. )
G90 G54 G00 X20. Y20.( Absoluto, origen de pieza y posicionamiento sobre el primer agujero con la Z todavía arriba. )
G43 H04 Z25. M03 S2400( Aplica la longitud de la T4 y baja a Z25 ya compensado. H04 corresponde a T4: esta línea es la que evita la mayoría de los choques en Z. )
M08( Refrigerante. )
G99 G81 Z-18. R2. F180( Taladra el primer agujero. Con la longitud aplicada, Z-18 es una cota real de la pieza y no una distancia desde el cono. )
X60.( Segundo agujero: el ciclo se repite entero en la posición nueva. )
Y50.( Tercer agujero. )
X20.( Cuarto agujero. )
G80 G00 Z50. M09( Cancela el ciclo antes de mover en rápido y corta el refrigerante. )
G91 G28 Z0. M05( Retirada segura y husillo parado. )
G49( Cancela la corrección de longitud con la máquina ya en referencia, para dejar el control en un estado previsible. )
G90 M30( Vuelve a absoluto y termina. )

Cuándo hay que programar G43

Siempre después de un cambio de herramienta y antes del primer movimiento en Z que se acerque a la pieza. El cambio de herramienta anula la corrección anterior, así que la máquina queda trabajando con longitud cero o con la que le dejara el operario en manual. Se programa en el bloque de aproximación, con una Z de seguridad y normalmente junto al arranque del husillo. También hay que volver a escribirlo si el programa pasa por un subprograma o una operación que haya cancelado la corrección con G49 o con H0.

Cómo se combina con el cambio de herramienta y con el G54

El reparto es sencillo: el G54 lleva dónde está la cara de la pieza y el corrector H lleva cuánto sobresale cada herramienta. Si el taller mide las longitudes tocando la pieza, la Z del G54 suele quedar a cero; si las mide en un reglaje fuera de máquina o contra la mesa, la Z del G54 lleva la altura de la pieza. Lo que no se puede es contar la altura dos veces, en el corrector y en el origen. G43 y G41/G42 son independientes: una compensa en Z y la otra en el plano.

Qué controla y qué no

G43 solo desplaza el eje de la herramienta, así que corrige profundidades y alturas, nunca cotas del plano XY. Es la palanca de ajuste de las profundidades: si un rebaje sale 0,05 mm hondo, se corrige el desgaste del corrector, no el programa. En máquinas de cinco ejes con rotativos, mantener la punta en su sitio mientras la mesa o el cabezal giran es otra cosa, y necesita las funciones de punta de herramienta (G43.4 o G43.5 en Fanuc, TCPM en Heidenhain), disponibles solo si la máquina las lleva.

Errores que cuestan una pieza (o una herramienta)

  • Llamar un H distinto del número de herramienta (T4 con H03): la máquina baja la diferencia de longitud entre las dos herramientas y el resultado es un agujero corto o una broca clavada contra la mesa.
  • Olvidar el G43 después del M06: la máquina se mueve con la longitud de la herramienta anterior y la Z0 del programa deja de ser la cara de la pieza.
  • Escribir G43 H04 en un bloque sin Z: en muchos controles la corrección no se aplica hasta el primer movimiento en Z, y ese movimiento suele ser ya el de aproximación al corte.
  • Medir las herramientas contra la mesa y además meter la altura de la pieza en el Z del G54: la misma distancia se resta dos veces y la herramienta baja de más.
  • Cancelar con G49 y seguir mecanizando: sin corrección la referencia en Z pasa a ser la del cono en el cero máquina y el siguiente movimiento en Z es un choque casi seguro.
  • Reglar la herramienta en la columna de desgaste en vez de en la de geometría: el ajuste fino posterior se pisa y nadie entiende de dónde salen las décimas.

Preguntas Frecuentes (FAQ)

¿H tiene que ser igual que T?

El control no lo exige, pero es la norma de taller que menos accidentes provoca: T4 con H04. En Haas se puede forzar con el ajuste 15 (H & T Code Agreement), que da alarma si los números no coinciden. Numerar herramientas y correctores igual quita un error de encima.

¿Qué diferencia hay entre G43 y G44?

G43 aplica la longitud en el sentido habitual y G44 en el contrario, pensada para tablas con el signo invertido. En la práctica casi todos los talleres trabajan solo con G43; usar G44 sin saber cómo está reglada la máquina lleva la herramienta al doble de la longitud en el sentido equivocado.

¿El valor del corrector es positivo o negativo?

Depende del método de reglaje y del control: hay talleres que guardan la longitud de la herramienta y otros que guardan la distancia del cero máquina a la cara de la pieza, que sale negativa. Lo importante es que todas las herramientas se midan igual y que el criterio esté escrito.

¿G43 H0 es lo mismo que G49?

En la práctica sí: los dos dejan el eje Z sin corrección de longitud. G49 es más explícito y es el que aparece en los bloques de seguridad de cabecera; H0 se usa cuando interesa anular la corrección sin cambiar el estado modal del grupo.

¿Sirve G43 en mecanizado de cinco ejes?

Para la corrección de longitud sí, pero no basta cuando los ejes rotativos giran: ahí hace falta el control de punta de herramienta, que en Fanuc son G43.4 y G43.5 y en Heidenhain la función TCPM. Son opciones de máquina: si no están habilitadas, el control da alarma.

Códigos relacionados

G49G44M06G54

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