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

G83 taladra en varios picados: baja Q milímetros en avance, sale en rápido hasta el plano R para soltar la viruta, vuelve a entrar en rápido hasta un poco antes de donde se quedó y sigue, hasta llegar a la Z de fondo. Es el ciclo para agujeros de más de tres o cuatro diámetros y para materiales que hacen viruta larga. Q es siempre positivo e incremental: es la profundidad de cada picado, no una cota.

Ver la ficha completa de la familia

Sintaxis por control

Fanuc (fresado)

G99 G83 X30. Y20. Z-60. R2. Q8. F110

El hueco que el control deja al volver a entrar (la distancia de aproximación rápida antes de retomar el corte) es un parámetro de la máquina, no se programa. La variante G73 hace lo mismo pero con retroceso corto dentro del agujero.

Haas (fresado)

G99 G83 X30. Y20. Z-60. R2. Q8. F110

Haas admite además I (primer picado), J (cuánto se reduce cada picado) y K (picado mínimo) en lugar de Q, para ir acortando el picado a medida que el agujero se hace profundo. El ajuste 52 decide si la retirada llega al plano R o se queda por encima.

Siemens 840D / 828D

CYCLE83(RTP, RFP, SDIS, DP, DPR, FDEP, FDPR, DAM, DTB, DTS, FRF, VARI)

Los parámetros de CYCLE83 son posicionales. El que decide el comportamiento es VARI: con rotura de viruta el retroceso es corto (equivale a G73) y con evacuación la broca sale del agujero (equivale a G83).

Heidenhain TNC (Klartext)

CYCL DEF 203 TALADRADO UNIVERSAL

En el ciclo 203, Q202 es la profundidad de cada aproximación y Q212 cuánto se reduce en cada picado. El ciclo 205 añade rotura de viruta, punto de arranque hundido y desahogo, para agujeros muy profundos.

Letras que lo acompañan

LetraQué indicaUnidad
X YPosición del agujero. Cada bloque nuevo con X o Y repite el ciclo completo, picados incluidos.mm / pulg
ZFondo del agujero: cota absoluta con G90, distancia desde el plano R con G91.mm / pulg
RPlano de referencia. En G83 importa el doble que en G81, porque la broca sube hasta ahí en cada picado: un R alto multiplica el tiempo de ciclo.mm / pulg
QProfundidad de cada picado. Siempre positiva e incremental; no es una cota ni la profundidad total.mm / pulg
FAvance de taladrado. Modal: si no se escribe, se hereda el último F del programa.mm/min con G94
K / LRepeticiones del ciclo en modo incremental (K en Fanuc, L en Haas) para filas de agujeros equidistantes.número entero

Ejemplo comentado

Dos agujeros de Ø10 y 60 mm de profundidad, seis diámetros, en acero al carbono con broca de HSS-Co. Se pica de 8 en 8 mm para que la viruta salga; con un ciclo sin picado a esa profundidad la broca se agarra. Los puntos ya están punteados con broca de centrar en la operación anterior.

G91 G28 Z0.( Z a referencia en incremental antes del cambio. )
T7 M06( Broca de Ø10 de HSS-Co. )
G90 G54 G00 X30. Y20.( Absoluto, origen de pieza y posicionamiento sobre el primer agujero. )
G43 H07 Z50. M03 S900( Longitud de la T7 y husillo a 900 rpm, unos 28 m/min de velocidad de corte en Ø10. )
M08( Refrigerante. A seis diámetros es imprescindible. )
G99 G83 Z-60. R2. Q8. F110( Ocho picados: baja 8 mm en avance, sale en rápido a Z2, vuelve a entrar y repite hasta Z-60. Q8 es incremental y positivo; el avance de 110 mm/min son unas 6 centésimas por diente. )
X90.( Segundo agujero: el ciclo se repite entero con los mismos picados. )
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. )
G90 M30( Vuelve a absoluto y termina. )

Cuándo hace falta G83 y no G81

En cuanto el agujero pasa de tres o cuatro diámetros, la viruta deja de salir sola: se queda enrollada en los canales de la broca, rozando la pared, y el par sube hasta que la broca se agarra o se rompe. G83 corta eso porque saca la broca del agujero en cada picado y la viruta se desprende. También hace falta antes de esa profundidad en materiales que hacen viruta larga y pastosa, como aceros de bajo carbono o aluminios blandos, y siempre que no haya refrigeración interior que empuje la viruta hacia fuera.

Cómo se elige Q y cómo se combina con R

Un punto de partida razonable es Q igual a un diámetro para los primeros picados y medio diámetro a partir de cuatro o cinco diámetros de profundidad, porque cuanto más hondo está la broca, más lejos tiene que arrastrar la viruta. En Fanuc el Q es único para todo el agujero, así que se elige el valor del tramo más difícil; en Haas se puede escalonar con I, J y K. El plano R conviene dejarlo bajo, 2 o 3 mm, porque la broca sube hasta él en cada picado y cada milímetro de más se paga en tiempo multiplicado por el número de picados.

Qué hace el control y qué depende de la máquina

El control encadena los picados y, al volver a entrar, se acerca en rápido hasta dejar un pequeño hueco antes de retomar el corte. Ese hueco es un parámetro de la máquina y no se programa, así que no se puede dar por hecho el valor exacto. En Haas hay además un ajuste que decide si el retroceso llega al plano R o se queda por encima del último picado. Lo que sí controlas tú es el número de picados que sale de dividir la profundidad entre Q, y con él el tiempo de ciclo y la vida de la broca.

Errores que cuestan una pieza (o una herramienta)

  • Escribir Q como si fuera una cota o con signo negativo: Q es la profundidad de cada picado, siempre positiva e incremental. Un Q negativo da alarma en la mayoría de los controles.
  • Dejar un Q demasiado grande en un agujero profundo: la viruta no llega a salir, el par sube y la broca se agarra en el último tercio del agujero, justo donde no se puede recuperar.
  • Confundir G83 con G73: G73 solo rompe la viruta con un retroceso corto dentro del agujero, no la saca. En agujeros de más de cuatro o cinco diámetros o en materiales pastosos hace falta G83.
  • Poner el plano R muy alto: la broca sube hasta R en cada uno de los ocho o diez picados, así que un R de 50 mm dispara el tiempo de ciclo sin ganar seguridad.
  • Olvidar el G80 antes del siguiente movimiento en rápido: el ciclo sigue activo y el primer bloque con X o Y taladra otro agujero de 60 mm donde no toca.
  • Cambiar a G91 sin recalcular: en incremental la Z pasa a medirse desde el plano R y la R desde la posición actual, y el agujero sale con otra profundidad.
  • Taladrar a seis diámetros sin punteado previo y sin refrigerante: la broca se desvía en la entrada y el agujero sale acampanado y torcido.

Preguntas Frecuentes (FAQ)

¿Q es la profundidad total o la de cada picado?

La de cada picado, y siempre en positivo e incremental. La profundidad total es la Z. Con Z-60, R2 y Q8, el control hace ocho picados de 8 mm hasta llegar a la cota Z-60.

¿Cuándo uso G83 y cuándo G73?

G73 retrocede solo unos décimas o milímetros dentro del agujero: rompe la viruta pero no la evacúa, y es rápido. G83 saca la broca hasta el plano R en cada picado: es más lento pero es lo único que funciona a partir de cuatro o cinco diámetros y en materiales de viruta larga.

¿Qué valor de Q pongo?

Como punto de partida, un diámetro de la broca en los primeros picados y medio diámetro a partir de cuatro o cinco diámetros de profundidad. Si el agujero se hace largo y la máquina empieza a sonar distinto o el amperaje del husillo sube, baja Q antes de romper la broca.

¿G83 saca la broca del agujero en cada picado?

En Fanuc, sí: la retirada llega al plano R. En Haas depende del ajuste 52, que puede dejar el retroceso por encima del último picado en vez de salir del agujero. Si te importa el detalle, compruébalo en el manual de tu máquina antes de contar con él.

¿Se puede picar también al roscar?

Sí, pero con otros códigos: algunos controles admiten Q dentro del G84 de roscado rígido, y Fanuc tiene G84.2 y G84.3 para roscado con picado. Depende de la opción de la máquina, así que hay que verificarlo antes de lanzarlo con un macho dentro del agujero.

Códigos relacionados

G73G80G81G82G98

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