Mecanizado y CNC

Códigos G y M en CNC: comandos más utilizados y simulador

16 min de lectura5 problemas resueltos5 ejercicios propuestosQuiz con nota sobre 20👁 – vistas

¡Bienvenidos nuevamente al blog de Welectronic! Si alguna vez abriste el programa de una fresadora o un torno CNC y viste líneas como G01 X50 Y0 F200 o M03 S1500, ya viste código G y código M. Es el idioma con el que le dices a la máquina por dónde ir, a qué velocidad cortar y cuándo girar el husillo o abrir el refrigerante. En esta publicación vas a aprender los comandos más usados, a leer un programa línea por línea y, al final, a probarlos tú mismo en un simulador que dibuja la trayectoria de la herramienta.


1. ¿Qué son los códigos G y M?

Un programa CNC es una lista de instrucciones llamadas bloques (una línea = un bloque). Cada bloque se compone de palabras: una letra seguida de un número.

El lenguaje nació en la década de 1950 en el MIT, junto a las primeras máquinas de control numérico, y se estandarizó como EIA RS-274 e ISO 6983. Hoy casi todos los controles lo entienden (Fanuc, Haas, Mitsubishi, Siemens Sinumerik, LinuxCNC, Mach3…), pero cada fabricante tiene su propio dialecto: los códigos básicos coinciden, los avanzados no. Por eso el manual de programación de tu máquina siempre manda.

2. Anatomía de un bloque

Bloque de programa N30 G01 X50 Y0 F200 S1500 M08 con cada palabra rotulada: número de bloque, movimiento, coordenadas, avance, velocidad de husillo y función auxiliar
Anatomía de un bloque de programa CNC. Ilustración original Welectronic.

Mira este bloque: N30 G01 X50 Y0 F200 S1500 M08

Los comentarios se escriben entre paréntesis ( ) o después de punto y coma ; según el control. Los programas suelen empezar y terminar con el símbolo % y llevar un número de programa O1001.

Modal y no modal

Muchos códigos son modales: se quedan activos hasta que otro del mismo grupo los reemplaza. Si programas G01 X10 F200 y en la línea siguiente solo X20, la máquina sigue en G01 con F200. Otros son no modales y valen solo en su bloque (por ejemplo, la pausa G04). Esto explica casi todos los errores de principiante: un código que dejaste activo sin querer sigue mandando.

Ojo con el punto decimal: en algunos controles tipo Fanuc, X50 (sin punto) puede interpretarse como 0,050 mm, porque el valor se toma como número de incrementos mínimos de 0,001 mm. Escribir X50. o X50.0 evita sorpresas. Revisa cómo trata tu control los valores sin punto antes de ejecutar el primer programa.

3. Códigos G más utilizados

Tablas de códigos G (funciones preparatorias) y códigos M (funciones auxiliares) más utilizados en CNC
Códigos G y M más utilizados. Fuente: ficha técnica Welectronic.

Movimientos

Planos, unidades y modo de coordenadas

Referencia y sistemas de trabajo

Compensaciones

4. Códigos M más utilizados

La ficha de la publicación trae lo esencial. En el taller vas a encontrar además otros que conviene reconocer:

5. Interpolación circular: G02 y G03 a fondo

Un arco necesita tres datos: dónde empieza (donde ya está la herramienta), dónde termina (X, Y) y qué curvatura tiene. Esa curvatura se da de dos maneras:

Con radio: G02 X__ Y__ R__ F__
Con centro: G02 X__ Y__ I__ J__ F__
Comparación entre definir un arco con radio R positivo o negativo y definirlo con el centro mediante I y J
Arco con radio R (menor o mayor) y arco con centro I, J. Ilustración original Welectronic.

Aplícalo al ejemplo de la ficha. La herramienta está en (50, 0) y se programa G02 X50 Y50 R25. La distancia entre inicio y fin es 50 mm, justo el doble del radio: es un semicírculo con centro en (50, 25). Como gira en sentido horario, parte hacia la izquierda (hacia el centro de la pieza) y vuelve a x = 50. Después, G03 X0 Y0 R25 desde (0, 50) tiene centro en (0, 25) y, al ser antihorario, sale hacia la izquierda del cero.

Trayectoria del programa de ejemplo: línea, semicírculo horario, línea y semicírculo antihorario, con sus centros
Trayectoria del programa de ejemplo de la ficha. Ilustración original Welectronic.

6. Compensaciones: radio y longitud

El programa describe el contorno de la pieza, pero la que se mueve es el centro de la herramienta. La compensación de radio (G41/G42) hace que el control desplace la trayectoria un radio hacia un lado, de modo que el filo quede sobre el contorno. Se elige el lado mirando en el sentido de avance:

Compensación de radio G41 (herramienta a la izquierda del contorno) y G42 (a la derecha)
Compensación de radio: G41 y G42 según el sentido de avance. Ilustración original Welectronic.

Reglas de oro: se activa con un movimiento lineal (G01 o G00) de entrada mayor que el radio de la herramienta y se cancela con otro movimiento lineal de salida; el valor del radio (o desgaste) se toma de la tabla de correctores de herramienta (D o H, según el control). Activarla o cancelarla en un arco o con un movimiento muy corto suele provocar una alarma o una mordida en la pieza.

La compensación de longitud (G43 H__) cumple otra función: referir la punta de cada herramienta a Z0 aunque tengan distinto largo. Se cancela con G49. Es el motivo por el que la ficha insiste en "verificar herramientas, offsets y origen antes de ejecutar".

7. Sistemas de coordenadas: máquina, trabajo y cero pieza

La máquina tiene un cero propio (cero máquina, fijo, que se reconoce al hacer "home"). Pero tú programas respecto al cero pieza: el punto de la pieza que eliges como X0 Y0 Z0 (una esquina, el centro de un agujero, la cara superior). El valor de ese desplazamiento se guarda en los offsets de trabajo, que se activan con G54 a G59.

8. Lectura línea por línea del ejemplo de la ficha

Ejemplo básico de programa CNC con configuración inicial, mecanizado de la pieza y fin de programa
Ejemplo básico de programa. Fuente: ficha técnica Welectronic.
  1. % y O1001: marca de inicio y número de programa.
  2. G21: unidades en milímetros.
  3. G90 G17 G40 G49: coordenadas absolutas, plano XY, sin compensación de radio ni de longitud. Es la línea de seguridad: deja la máquina en un estado conocido sin importar cómo terminó el programa anterior.
  4. G54: usa el sistema de coordenadas de trabajo 1.
  5. T01 M06: selecciona la herramienta 1 y ejecuta el cambio.
  6. M03 S1500: husillo en sentido horario a 1500 rpm.
  7. M08: enciende el refrigerante.
  8. G00 X0 Y0 Z5: posicionamiento rápido sobre el origen, con la herramienta 5 mm sobre la pieza.
  9. G01 Z-2 F150: baja en línea recta a 2 mm de profundidad (7 mm de recorrido) a 150 mm/min.
  10. G01 X50 Y0 F200: corte en línea recta de 50 mm a 200 mm/min.
  11. G02 X50 Y50 R25 F200: semicírculo horario de radio 25 mm.
  12. G01 X0 Y50: línea recta de 50 mm hacia la izquierda.
  13. G03 X0 Y0 R25: semicírculo antihorario de vuelta al origen.
  14. G00 Z5: retira la herramienta a Z5.
  15. M09, M05, M30: apaga el refrigerante, detiene el husillo y termina el programa.

El recorrido de corte suma 50 + 78,54 + 50 + 78,54 = 257,08 mm a 200 mm/min (unos 77 s) más la bajada en Z, para un total cercano a 1 min 20 s. Si lo cargas en el simulador, verás ese mismo tiempo estimado.

Orden importante: el husillo (M03) se enciende antes de que la herramienta entre en el material, y se apaga después de retirarla. Con la herramienta retirada (Z5) se hacen los cambios de posición en XY; nunca se cruza la pieza en rápido.

9. Simulador de código G y M

Ahora te toca a ti. El simulador viene con el programa de la ficha ya cargado: pulsa Simular y observa cómo la herramienta se mueve. La trayectoria punteada azul es movimiento rápido (G00); la naranja continua es corte (G01/G02/G03 con Z bajo cero). A la derecha del dibujo hay un indicador de la altura Z, y debajo ves los datos de la máquina: posición, avance, husillo, refrigerante y modos activos.

10. Consejos de programación y buenas prácticas

Cinco consejos de programación CNC: definir el sistema de coordenadas, G00 y G01, compensaciones, refrigerante y simulación
Consejos de programación. Fuente: ficha técnica Welectronic.

Y los que se aprenden en el taller:

Recuerda: un buen programa empieza con una planificación clara; verifica herramientas, offsets y origen antes de ejecutar; y la seguridad y la atención al detalle evitan errores costosos.

11. Errores y alarmas frecuentes


✅ 5 Problemas Resueltos

Problema 1: El bloque G01 X50 F200 mueve la herramienta 50 mm en línea recta. ¿Cuánto tarda en recorrerlos?
Solución:
Tiempo = distancia / avance = 50 mm / 200 mm/min = 0,25 min
t = 0,25 min = 15 s
Problema 2: La herramienta está en (50; 0) y se programa G02 X50 Y50 R25 F200. Determina el centro del arco, su longitud y el tiempo que tarda.
Solución:
Distancia entre inicio y fin: 50 mm = 2 · R, por lo tanto es un semicírculo y el centro está en el punto medio: (50; 25).
Longitud = π · R = π · 25 = 78,54 mm
Tiempo = 78,54 / 200 = 0,3927 min = 23,56 s
Problema 3: Partiendo del punto (10; 10), se ejecuta en modo incremental (G91) esta secuencia: G01 X40, G01 Y40, G01 X-40, G01 Y-40. Escribe las coordenadas absolutas (G90) equivalentes y el perímetro recorrido.
Solución:
(10; 10) → X+40 → (50; 10) → Y+40 → (50; 50) → X−40 → (10; 50) → Y−40 → (10; 10).
En absoluto: G01 X50, G01 Y50, G01 X10, G01 Y10.
Perímetro = 4 · 40 = 160 mm (un cuadrado de 40 × 40 mm que vuelve al punto de partida).
Problema 4: En la ficha se programa S1500 con una fresa de Ø12 mm. ¿Qué velocidad de corte (Vc) resulta?
Solución:
Vc = π · D · n / 1000 = π · 12 · 1500 / 1000 = 56 548,7 / 1000
Vc ≈ 56,5 m/min, un valor razonable para acero con herramienta de acero rápido (HSS) y refrigerante.
Problema 5: Un círculo de radio 20 mm se programa G02 X20 Y30 I-20 J0 F220 partiendo de (20; 30). Indica dónde está el centro, la longitud recorrida y el tiempo.
Solución:
Inicio = fin, así que es un círculo completo (solo se puede con I y J). El centro está en (20 − 20; 30 + 0) = (0; 30), y el radio es |I| = 20 mm.
Longitud = 2 · π · 20 = 125,66 mm
Tiempo = 125,66 / 220 = 0,5712 min = 34,27 s

🏋️ 5 Ejercicios Propuestos

Ejercicio 1: Una fresa de 4 filos gira a 2000 rpm con un avance por diente de 0,05 mm. Calcula el avance F (mm/min) que debes programar.
F = fz · z · n = 0,05 · 4 · 2000 = 400 mm/min (es decir, F400).
Ejercicio 2: Una línea de 80 mm se corta a F320. ¿Cuántos segundos tarda?
t = 80 / 320 = 0,25 min = 15 s.
Ejercicio 3: Desde (0; 0) se programa G02 X30 Y0 R15 F300. ¿Dónde está el centro, por qué punto pasa el arco en su parte más alta, qué longitud tiene y cuánto tarda?
Distancia = 30 = 2R, así que es un semicírculo con centro en (15; 0). Al ser horario, pasa por el lado de +Y: su punto más alto es (15; 15).
Longitud = π · 15 = 47,12 mm; tiempo = 47,12 / 300 · 60 = 9,42 s.
Ejercicio 4: Desde (0; 0) se programa G03 X0 Y20 I0 J10 F250. Halla el centro, el radio y el punto de máxima desviación en X, e indica la longitud del arco.
Centro = (0 + 0; 0 + 10) = (0; 10); radio = 10 mm. Es antihorario: parte hacia +X y pasa por (10; 10). Es un semicírculo de longitud π · 10 = 31,42 mm.
Ejercicio 5: Con la máquina en pulgadas, el programa dice G20 G90 G01 X2.5 F10 partiendo de X0. ¿Cuántos milímetros se mueve y cuánto tarda?
Recorrido = 2,5 in · 25,4 = 63,5 mm. Tiempo = 2,5 in / 10 in/min = 0,25 min = 15 s.

Fuentes de consulta: ficha técnica Welectronic; documentación de referencia de G-codes y M-codes de Machining Doctor y MFG Robots; guía de interpolación circular G02/G03. Los códigos exactos y su comportamiento dependen del control de tu máquina: consulta siempre su manual de programación.

🧠 Quiz de conocimiento

Se seleccionarán 7 preguntas al azar de nuestra base de 10. Tu nota se calcula sobre 20.