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

G81 es el ciclo fijo de taladrado más sencillo: la herramienta baja en rápido hasta el plano R, taladra en avance hasta la Z de fondo y sale en rápido, sin pausa y sin picado. Es modal, así que cada bloque siguiente con nuevas X o Y repite el agujero en esa posición, y se cancela con G80. Para agujeros con fondo plano se usa G82 (añade pausa) y para agujeros profundos G83 (pica y evacúa viruta).

Ver la ficha completa de la familia

Sintaxis por control

Fanuc (fresado)

G99 G81 X20. Y20. Z-18. R2. F180

Con G99 la herramienta vuelve al plano R entre agujeros, que es lo rápido; con G98 sube al plano inicial, que es lo que hay que usar cuando entre agujero y agujero hay bridas o escalones. K repite el ciclo en modo incremental.

Haas (fresado)

G99 G81 X20. Y20. Z-18. R2. F180 L4

Sintaxis igual que Fanuc, pero las repeticiones se escriben con L en vez de K, y también solo tienen sentido en G91. En Haas el ciclo hereda el F modal igual que en Fanuc.

Siemens 840D / 828D

CYCLE81(50, 0, 2, -18)

Siemens no usa G81: el ciclo equivalente es CYCLE81 y los parámetros van posicionales (plano de retirada, plano de referencia, distancia de seguridad y profundidad final o relativa). El posicionamiento sobre cada agujero se hace antes o con MCALL.

Heidenhain TNC (Klartext)

CYCL DEF 200 TALADRADO

El ciclo 200 define distancia de seguridad (Q200), profundidad (Q201), avance (Q206) y aproximación (Q202). Se ejecuta con CYCL CALL en cada posición o con un ciclo de patrón de puntos.

Letras que lo acompañan

LetraQué indicaUnidad
X YPosición del agujero. Cada bloque nuevo con X o Y repite el ciclo completo en esa posición mientras no se cancele con G80.mm / pulg
ZFondo del agujero: cota absoluta con G90, distancia incremental desde el plano R con G91.mm / pulg
RPlano de referencia: la cota a la que la herramienta pasa de rápido a avance, y a la que vuelve entre agujeros con G99. Lo habitual son 2 o 3 mm sobre la cara.mm / pulg
FAvance de taladrado. Es modal: si no se escribe, el ciclo hereda el último F del programa.mm/min con G94
K / LRepeticiones del ciclo en modo incremental, para filas de agujeros equidistantes. K en Fanuc, L en Haas; K0 o L0 memorizan el ciclo sin ejecutarlo.número entero

Ejemplo comentado

Cuatro agujeros de Ø5 pasantes en una placa de 15 mm, con broca de punta a 118 grados. La Z de fondo tiene que llevar la altura de la punta de la broca (alrededor de 1,5 mm en Ø5) más un par de milímetros de salida, de ahí el Z-18. El punteado ya se hizo en la operación anterior.

G91 G28 Z0.( Z a referencia en incremental antes del cambio. )
T4 M06( Broca de Ø5. )
G90 G54 G00 X20. Y20.( Absoluto, origen de pieza y posicionamiento sobre el primer agujero con la Z arriba. )
G43 H04 Z25. M03 S2400( Longitud de la T4 y husillo en marcha. Z25 es el plano inicial al que volverá con G98. )
M08( Refrigerante. )
G99 G81 Z-18. R2. F180( Arranca el ciclo en la posición actual: baja en rápido a Z2, taladra en avance hasta Z-18 y vuelve en rápido a Z2 porque está en G99. )
X60.( Segundo agujero. Solo hace falta la cota nueva: el ciclo se repite entero con la misma Z, R y F. )
Y50.( Tercer agujero. )
G98 X20.( Cuarto agujero, ahora con G98: al salir sube al plano inicial Z25, para que el traslado siguiente pase por encima de la brida. )
G80 G00 Z25. M09( G80 cancela el ciclo. Sin él, cualquier bloque posterior con X o Y volvería a taladrar; se cancela antes de mover en rápido. )
G91 G28 Z0. M05( Retirada segura y husillo parado. )
G90 M30( Vuelve a absoluto y termina. )

Cuándo usar G81 y cuándo otro ciclo

G81 es para agujeros cortos, hasta unos tres diámetros de profundidad, donde la viruta sale sola por los canales de la broca. También para puntear con broca de centrar, para avellanar poco profundo y para pasar la broca en material que hace viruta corta. En cuanto el agujero es más profundo o el material hace viruta larga, la broca se agarra y hay que pasar a G83, que la saca del agujero en cada picado. Si el fondo tiene que quedar limpio y plano, G82 añade una pausa antes de retirar.

Cómo se combina con R, G98/G99 y G80

El ciclo se apoya en tres alturas: el plano inicial (donde estaba la Z al arrancar el ciclo), el plano R y el fondo Z. G99 devuelve la herramienta al plano R entre agujeros, lo que ahorra tiempo, y G98 al plano inicial, que es lo que hay que usar cuando el traslado cruza por encima de una brida, una mordaza o un escalón. El ciclo queda activo hasta G80, y G80 hay que escribirlo antes de cualquier movimiento en rápido o de un cambio de herramienta.

Qué controla y qué queda en tus manos

El control se encarga de la secuencia y de las velocidades de aproximación, pero la profundidad real la pones tú: en un agujero pasante la Z tiene que incluir la altura de la punta de la broca, que en una punta a 118 grados es aproximadamente el 30 por ciento del diámetro, más un margen de salida. El avance también es tuyo, y como es modal puede heredarse del bloque anterior sin que lo notes. Y el plano R decide cuánto recorrido en rápido hay en cada agujero: subirlo de más multiplica el tiempo de ciclo sin ganar nada.

Errores que cuestan una pieza (o una herramienta)

  • Poner el plano R por debajo de la cara de la pieza o por debajo de una brida: la bajada hasta R es en rápido y la broca llega al material a esa velocidad.
  • Olvidar el G80 al terminar: el siguiente bloque que lleve X o Y repite el taladro, así que un simple posicionamiento en rápido de la operación siguiente acaba con un agujero donde no toca.
  • Quedarse en G99 con mordazas, bridas o un escalón entre agujero y agujero: el traslado se hace a la altura del plano R y la broca choca de lado.
  • Confundir G90 y G91 en el ciclo: en incremental la Z es la profundidad medida desde el plano R y la R se mide desde la posición actual, no desde el cero pieza.
  • No sumar la altura de la punta de la broca a la Z de fondo en un agujero pasante: los agujeros quedan sin pasar y hay que repasarlos a mano.
  • Usar G81 en agujeros de más de tres diámetros: la viruta no sale, la broca se agarra y se rompe. Ese trabajo es de G83.
  • Dejar el F de la operación anterior: el ciclo hereda el avance modal y la broca puede entrar con el avance de una pasada de acabado de fresa.

Preguntas Frecuentes (FAQ)

¿Qué diferencia hay entre G81, G82 y G83?

G81 baja, taladra y sale. G82 hace lo mismo pero espera un tiempo P en el fondo, para que el fondo quede limpio en avellanados y agujeros de fondo plano. G83 divide la profundidad en picados de Q milímetros y sale al plano R en cada uno para evacuar la viruta, que es lo que hace falta en agujeros profundos.

¿A qué altura pongo el plano R?

Entre 2 y 3 mm sobre la cara de la pieza en piezas planas y bien amarradas. Más alto solo alarga el ciclo; más bajo deja a la broca sin margen si la superficie no es plana o el bruto viene con creces. En una superficie irregular hay que ponerlo por encima del punto más alto.

¿G98 o G99?

G99 mientras el camino entre agujeros esté libre, porque vuelve solo al plano R y ahorra tiempo. G98 cuando el traslado pasa por encima de una brida, una mordaza o un resalte, porque sube al plano inicial. Se puede cambiar de uno a otro entre agujeros dentro del mismo ciclo.

¿Cómo repito el ciclo en varios agujeros?

Basta escribir bloques con las cotas X e Y nuevas: el ciclo se repite entero en cada posición. Para filas equidistantes se puede usar K en Fanuc o L en Haas, pero solo funcionan en modo incremental: en G90 el control repite el mismo agujero en el mismo sitio.

¿Cómo calculo la Z de fondo de un agujero pasante?

Espesor de la pieza más la altura de la punta de la broca más un margen de salida de 1 a 2 mm. Para una punta estándar a 118 grados, la altura de la punta es alrededor del 30 por ciento del diámetro: en Ø5 son unos 1,5 mm.

Códigos relacionados

G80G82G83G98G99

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