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

G41 le dice al control que desplace la trayectoria media herramienta hacia la izquierda del contorno, mirando en el sentido de avance, con el radio guardado en el corrector D. Así programas las cotas del plano y no el centro de la fresa: si cambias de fresa o se desgasta, solo tocas el corrector. Con una fresa derecha girando en M03, G41 corresponde al fresado en concordancia.

Ver la ficha completa de la familia

Sintaxis por control

Fanuc (fresado)

G01 G41 D01 X0. Y-15. F250

D llama al corrector de radio de la tabla. La activación tiene que ir en un movimiento lineal con desplazamiento lateral mayor que el radio de la fresa; G40 la cancela en otro movimiento lineal fuera de la pieza.

Haas (fresado)

G01 G41 D01 X0. Y-15. F250

Misma sintaxis que Fanuc. Comprueba si la tabla de correctores de tu máquina está configurada en radio o en diámetro: si escribes el radio donde espera el diámetro, el perfil sale con la mitad de compensación en todo el contorno.

Siemens 840D / 828D

G1 G41 X0 Y-15 F250

Siemens usa G41/G42/G40 igual, pero el radio no sale de una tabla D independiente: sale del filo activo (D1, D2...) de la herramienta llamada con T. D0 anula las correcciones.

Heidenhain TNC (Klartext)

L X+0 Y-15 RL F250

RL es la compensación a la izquierda (equivale a G41), RR la de la derecha y R0 la cancela. El radio sale de la columna R de la tabla TOOL.T, y DR añade una corrección delta sin tocar la tabla.

Letras que lo acompañan

LetraQué indicaUnidad
DNúmero del corrector de radio de la tabla de herramientas: es el valor que el control desplaza lateralmente.número entero (D01, D12...)
X YPunto final del bloque de activación y de cada tramo del contorno, ya en cotas de la pieza acabada.mm / pulg
FAvance del bloque de aproximación y del contorneado. La entrada compensada conviene hacerla en avance, no en rápido.mm/min con G94
G17 / G18 / G19Plano en el que se compensa. La compensación de radio solo actúa en el plano activo; en fresado casi siempre G17 (XY).modal, sin unidad

Ejemplo comentado

Pasada de acabado del perfil exterior de una placa de 80 x 60 mm en aluminio, con fresa de Ø12 y corrector D01 = 6,0 mm de radio. El origen G54 está en la esquina inferior izquierda del perfil acabado y el recorrido se hace en sentido horario visto desde arriba, que con M03 es fresado en concordancia.

O0041 (PERFIL EXTERIOR CON G41)( Cabecera del programa. )
G21 G17 G40 G49 G80( Milímetros, plano XY y todo cancelado: compensación de radio, de longitud y ciclos fijos. )
G91 G28 Z0.( Sube Z a referencia en incremental antes del cambio. Con G90 el bloque bajaría antes al Z0 de la pieza. )
T1 M06( Carga la fresa de Ø12. )
G90 G54 G00 X-25. Y-15.( Absoluto, origen de pieza y posicionamiento fuera del material, en la prolongación de la pared izquierda. )
G43 H01 Z50. M03 S3200( Compensación de longitud de la T1 y husillo en marcha. H01 es el corrector de la T1. )
M08( Refrigerante. )
G00 Z-5.( Baja a la profundidad de pasada en rápido: se puede porque la fresa está fuera de la pieza. )
G01 G41 D01 X0. Y-15. F250( Activa la compensación a la izquierda en un tramo recto de 25 mm, muy por encima del radio de 6 mm. Al terminar el bloque el centro de la fresa queda desplazado 6 mm respecto al punto programado. )
G01 Y60.( Pared izquierda X0 subiendo. Mirando hacia +Y, el material queda a la derecha del avance: eso es exactamente lo que pide G41. )
X80.( Pared superior Y60. El control redondea la esquina exterior por sí solo. )
Y0.( Pared derecha X80, bajando. )
X-15.( Pared inferior Y0 y salida por la prolongación, ya fuera del material. )
G01 G40 X-25.( Cancela la compensación en un movimiento lineal y con la fresa fuera de la pieza. )
G00 Z50. M09( Retira en Z y corta el refrigerante. )
G91 G28 Z0. M05( Z a referencia y husillo parado. )
G90( Devuelve el control a absoluto. )
M30( Fin de programa y rebobinado. )

Cuándo se usa G41 y no G42

El sentido no depende de si el contorno es exterior o interior, sino de dónde queda el material mirando en la dirección de avance. Ponte encima de la fresa mirando hacia donde va: si el material te queda a la derecha, la fresa se desplaza a la izquierda y toca G41; si te queda a la izquierda, toca G42. En la práctica, con una fresa derecha girando en M03, G41 sale al recorrer un perfil exterior en sentido horario y al recorrer una cajera en sentido antihorario, que son los dos casos de fresado en concordancia.

Cómo se combina con la entrada, el corrector D y G40

G41 necesita un bloque de aproximación lineal para meter la corrección: el control desplaza el final de ese bloque perpendicularmente al movimiento siguiente, así que el tramo tiene que tener desplazamiento lateral mayor que el radio de la fresa y empezar fuera del material. Lo mismo al salir con G40. Muchos programas entran y salen por la prolongación de la primera y la última pared, o con un arco tangente después de haber activado la compensación en recta. G41 convive con G43: una compensa el radio en el plano y la otra la longitud en Z.

Qué controla de verdad: la trayectoria, no la cota del plano

El control no cambia la pieza, cambia el camino del centro de la fresa. Por eso el corrector D es la palanca de ajuste dimensional del taller: si el perfil sale 0,04 mm grande, se corrige el corrector, no el programa. Ese mismo mecanismo permite dejar demasía sumando la crece al radio (D = 6,2 para dejar 0,2 mm por lado) y luego dar la pasada de acabado con el mismo programa y el valor real. También permite reutilizar el programa con otra fresa de distinto diámetro sin volver a postprocesar.

Errores que cuestan una pieza (o una herramienta)

  • Activar G41 en un bloque cuyo desplazamiento lateral es menor que el radio de la fresa: el control no tiene sitio para meter la corrección y da alarma o entra sobrecortando la pieza.
  • Activar o cancelar la compensación en un arco (G02/G03). Fanuc y Haas la quieren en un movimiento lineal G00 o G01; en arco alarman.
  • Llegar al M06, al G28 o al final del programa con G41 todavía activa: la retirada se hace desplazada y la herramienta siguiente arranca con la corrección puesta.
  • Escribir el diámetro de la fresa en un corrector configurado en radio (o al revés): el perfil sale con el doble o la mitad de compensación, y el error es igual en todo el contorno.
  • Cambiar el sentido de recorrido del contorno y dejar G41: si antes ibas en horario por el exterior y ahora vas en antihorario, toca G42; con G41 la fresa se mete dentro de la pieza.
  • Programar un radio interior del contorno más pequeño que el radio de la fresa: el control da alarma de interferencia o, si no la detecta, deja el radio grande de la fresa.

Preguntas Frecuentes (FAQ)

¿G41 es a la izquierda de qué exactamente?

De la trayectoria, no del plano ni de la máquina. Ponte mentalmente encima de la fresa mirando hacia donde avanza: G41 la desplaza hacia tu mano izquierda. Dicho al revés, con G41 el material queda a la derecha del avance y con G42 a la izquierda.

¿G41 es fresado en concordancia o en oposición?

Depende del giro. Con una fresa derecha girando en M03, que es lo normal, G41 da fresado en concordancia (climb). Si la herramienta es a izquierdas o el husillo gira en M04, la relación se invierte y G41 pasa a ser fresado en oposición.

¿Puedo activar G41 en un G00?

La mayoría de los controles lo admiten, pero es mala idea: la corrección se mete durante un movimiento en rápido cerca de la pieza. Actívala en un G01 con avance de aproximación y con la fresa claramente fuera del material.

¿Qué valor pongo en D, el radio o el diámetro?

Lo que espere la tabla de tu máquina, que es un ajuste del control. Confírmalo con una pasada de prueba midiendo la pieza. Si quieres dejar demasía para el acabado, suma la crece al valor del corrector en vez de tocar el programa.

¿Por qué me da alarma justo al entrar al contorno?

Casi siempre por tres motivos: el bloque de activación es más corto que el radio de la fresa, la compensación se activa en un arco, o el contorno tiene un radio interior o una ranura más estrecha que la herramienta. Revisa esos tres puntos antes de tocar nada más.

Códigos relacionados

G40G42G43G01

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