Fanuc / Haas (fresado)
G90 G54 G00 X100. Y50.
Es el bloque de seguridad típico al principio de cada herramienta: modo absoluto, origen de pieza y posicionamiento. Escribirlo en cada herramienta evita heredar un G91 de la operación anterior.
Usamos cookies y almacenamiento técnico propios para que la web funcione, tecnologías de seguridad de Google reCAPTCHA y, solo si aceptas, la analítica de Vercel (sin cookies ni seguimiento entre sitios). Puedes aceptar o rechazar la analítica; ambas opciones son equivalentes y puedes cambiar tu decisión cuando quieras. Más información: Política de cookies, Política de privacidad, Aviso legal y Términos y condiciones.
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.
G90 hace que todas las cotas X, Y y Z se midan desde el cero pieza activo (G54-G59) y no desde donde está la herramienta. Es modal y es el modo normal de trabajo en fresadora, porque permite copiar las cotas del plano tal cual. Ojo con el torno Fanuc de juego de códigos A: allí G90 no es el absoluto, es el ciclo fijo de cilindrado, y el absoluto se distingue por usar X y Z en vez de U y W.
Ver la ficha completa de la familiaFanuc / Haas (fresado)
G90 G54 G00 X100. Y50.
Es el bloque de seguridad típico al principio de cada herramienta: modo absoluto, origen de pieza y posicionamiento. Escribirlo en cada herramienta evita heredar un G91 de la operación anterior.
Fanuc (torno, juego de códigos A)
G90 X40. Z-50. F0.2
Aquí G90 es el ciclo fijo de cilindrado en una pasada, no el modo absoluto. En ese formato, el absoluto se programa con X y Z y el incremental con U y W dentro del mismo bloque. No confundas las dos cosas al convertir programas.
Siemens 840D / 828D
G90 G54 G0 X100 Y50
Siemens admite además dar una cota absoluta suelta dentro de un bloque incremental con AC(): X=AC(100). Así no hace falta cambiar de modo para un solo eje.
Heidenhain TNC (Klartext)
L X+100 Y+50 R0 FMAX
En Klartext las cotas son absolutas por defecto y no hay un G90 que escribir. La I delante del eje (IX+10) convierte esa cota concreta en incremental.
| Letra | Qué indica | Unidad |
|---|---|---|
| X Y Z | Cota del punto de destino medida desde el cero pieza activo. Con G90 son cotas del plano; con G91 serían incrementos. | mm / pulg |
| Z y R en ciclos fijos | Con G90, la Z de un ciclo fijo es la cota de fondo y la R es la cota del plano de referencia; con G91 pasan a ser distancias. | mm / pulg |
| G90.1 / G91.1 | En los controles que lo admiten, G90.1 hace absolutos los centros I, J y K de los arcos y G91.1 los devuelve a incrementales, que es el comportamiento normal. | modal, sin unidad |
Ranura en L en una placa de aluminio con fresa de Ø8. Los tres puntos del recorrido vienen acotados en el plano desde la misma esquina, así que en absoluto se copian tal cual. En los comentarios se indica qué habría que escribir en cada bloque si el mismo recorrido se programara en G91.
| G21 G17 G40 G49 G80 | ( Milímetros, plano XY y estado limpio. ) |
| G91 G28 Z0. | ( Z a referencia en incremental: este bloque concreto se hace en G91 a propósito. ) |
| T2 M06 | ( Fresa de Ø8. ) |
| G90 G54 G00 X10. Y10. | ( Vuelve a absoluto y se posiciona. Con G90, X10 Y10 es un punto fijo de la pieza; con G91 sería 10 mm más allá de donde estuviera la fresa. ) |
| G43 H02 Z50. M03 S3800 | ( Longitud de la T2 y husillo en marcha. ) |
| G00 Z2. M08 | ( Aproximación y refrigerante. ) |
| G01 Z-4. F200 | ( Entra a 4 mm bajo la cara. En G90 es una cota; en G91 sería una bajada de 6 mm desde Z2. ) |
| G01 X70. F450 | ( Primer tramo de la ranura hasta X70. En G91 este bloque sería X60. ) |
| Y45. | ( Segundo tramo hasta Y45. En G91 sería Y35. ) |
| X30. | ( Tercer tramo hasta X30. En G91 sería X-40, con el signo marcando el sentido. ) |
| G00 Z50. M09 | ( Retirada y refrigerante fuera. ) |
| G91 G28 Z0. M05 | ( Aquí sí interesa el incremental: sube desde donde esté hasta la referencia. Con G90, el bloque pasaría antes por el Z0 de la pieza. ) |
| G90 | ( Devuelve el control a absoluto antes de terminar, para que ningún bloque posterior herede el G91. ) |
| M30 | ( Fin de programa. Muchos controles restauran los modales por defecto en M30, pero eso depende de parámetros de la máquina. ) |
Prácticamente siempre en fresadora: los planos se acotan desde un origen común y en absoluto las cotas se copian sin hacer cuentas. Además, en absoluto un error en un bloque afecta solo a ese bloque, mientras que en incremental arrastra todo lo que viene detrás. Los casos en los que se cambia a incremental son puntuales y conocidos: la retirada segura con G91 G28 Z0., los patrones repetidos con K o L, y los subprogramas de geometría que se posicionan desde el bloque de llamada. Fuera de eso, lo sano es escribir G90 en el bloque de seguridad de cada herramienta.
G90 y G54 son cosas distintas y complementarias: G54 dice desde qué punto se mide y G90 dice que se mide desde ese punto y no desde la herramienta. En los ciclos fijos, el modo cambia el significado de dos direcciones: con G90 la Z es la cota del fondo y la R la cota del plano de referencia, mientras que con G91 la Z es la profundidad desde R y la R una distancia desde la posición actual. En cambio los centros I, J y K de los arcos siguen siendo incrementales en Fanuc y Haas, salvo que se active G90.1.
No cancela nada. No borra un G92 ni un G52 que hubieran quedado activos: el origen sigue desplazado y las cotas absolutas se miden desde ese origen desplazado, que es exactamente el motivo por el que un programa correcto puede mecanizar en el sitio equivocado. Tampoco garantiza que el control arranque en absoluto: el modo por defecto al encender depende de un parámetro de la máquina. Y en torno con juego de códigos A no significa absoluto en absoluto, sino un ciclo de cilindrado que mueve la herramienta al diámetro programado.
Sí, y es lo habitual: se trabaja en G90 y se cambia a G91 para bloques concretos, como la retirada G91 G28 Z0. o un patrón repetido. Lo importante es volver a G90 justo después. En Siemens y Heidenhain se puede incluso mezclar dentro de un bloque con AC() e I.
No siempre. En fresadora G90 es el modo absoluto. En torno Fanuc con juego de códigos A, G90 es el ciclo fijo de cilindrado y el absoluto se expresa usando X y Z frente a U y W. Antes de reutilizar un bloque de fresa en un torno, comprueba el juego de códigos del control.
En la pantalla de códigos modales del control, que muestra el estado de cada grupo. Es la comprobación de treinta segundos que conviene hacer antes de arrancar un programa a mitad o después de mover la máquina en manual.
En Fanuc y Haas no: los centros de arco son incrementales desde el punto de partida aunque estés en G90. Solo cambian si el control admite G90.1 y lo activas; G91.1 los devuelve al comportamiento normal.
Sí, a dos direcciones: con G90 la Z es la cota del fondo y la R la cota del plano de referencia. Con G91 la Z pasa a ser la profundidad medida desde R y la R una distancia desde la posición actual, así que el mismo ciclo hace otro agujero.
G00
MovimientoPosicionamiento rápido
Movimiento rápido hasta una coordenada sin controlar avance de corte.
G01
MovimientoInterpolación lineal
Movimiento lineal controlado con avance programado.
G02
MovimientoInterpolación circular horaria
Arco circular en sentido horario en el plano activo.
G02.1/G03.1
InterpolaciónInterpolació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ónInterpolación evolvente
Interpolación a lo largo de una evolvente de círculo (involute interpolation), usada en fabricación de engranajes.
G03
MovimientoInterpolación circular antihoraria
Arco circular en sentido antihorario en el plano activo.
G04
Control de programaPausa temporizada
Detiene temporalmente la ejecución durante un tiempo o número de revoluciones definido.
G05/G05.1
Alta velocidadAlta 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 avanzadaSplines y NURBS
Interpolaciones por spline cúbica, spline cuadrática o NURBS en controles que lo soportan.
G05.4
Alta velocidadHRV3/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 velocidadInterpolació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ónInterpolació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
TornoModo diámetro/radio en torno
Selecciona si las coordenadas X de torno se interpretan como diámetro o radio según control.
G08/G09
TrayectoriaSuavizado y parada exacta puntual
Funciones usadas para activar/desactivar suavizado o exigir parada exacta en un bloque concreto según control.
G10
OffsetsEscritura de offsets
Permite escribir offsets de herramienta, trabajo u otros datos desde el programa.
G12/G13
Ciclos fresadoCajera circular
Ciclo de interpolación circular para mecanizar cajeras o patrones circulares según control.
G15/G16
CoordenadasCoordenadas polares
Activa o cancela programación en coordenadas polares, normalmente radio y ángulo.
G17/G18/G19
PlanoSelección de plano
Define el plano activo para arcos y compensaciones.
G20/G21
UnidadesUnidades pulgadas / milímetros
Selecciona programación en pulgadas o milímetros.
G22/G23
SeguridadLímites de carrera programados
Activa o desactiva comprobación de zona/límites almacenados según control.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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).
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.
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.
IDE CNC: edición con tooltips G/M, inspector de línea, conversión entre controles y trayectoria 2D/3D.
Guia de Alarmas y Soluciones CNC. Introduce el código de error o síntoma para encontrar la causa y cómo repararlo a pie de máquina.
Estima el tiempo de ciclo de un programa CNC: corte, rápidos, ciclos fijos, dwells y cambios de herramienta. Piezas/hora y desglose por partida.