El código G (código geométrico) es el lenguaje de programación universal utilizado para controlar máquinas CNC (control numérico por computadora). Desarrollado en la década de 1950 en el MIT, el código G sigue siendo la piedra angular del mecanizado CNC moderno, permitiendo un control preciso de procesos como el fresado, el torneado y el corte por láser.
Cada comando de código G comienza con una letra (por ejemplo, G, M o F) seguida de valores numéricos, que indican a la máquina que debe:
- Controlar el movimiento (comandos G):Determinar la trayectoria y la velocidad de la herramienta (por ejemplo, movimiento a coordenadas, movimiento lineal/de arco).
- Administrar funciones (comandos M): Manejar acciones de inicio/parada (por ejemplo, rotación del husillo, cambios de herramienta, encendido/apagado del refrigerante).
Aunque está estandarizado según la norma ISO 6983, existen variaciones entre los fabricantes de máquinas (p. ej., Fanuc, Haas, Siemens). Esta tabla abarca el código G 90% de propósito general. Para funciones avanzadas (5 ejes, macros), consulte siempre el manual de su máquina para comprobar la compatibilidad.
Conceptos clave:
- Comandos modales: Permanecer activo hasta que sea reemplazado (por ejemplo,
G01
permanece en modo de movimiento lineal). - Comandos no modales:Ejecutar una vez (por ejemplo,
G28
vuelve a la posición inicial). - Unidades:
G20
(pulgadas) /G21
(milímetros). - Sistemas de coordenadas:
G54
–G59
(compensaciones de trabajo),G90
(posicionamiento absoluto),G91
(posicionamiento incremental). - Ejecución secuencial: La máquina lee el código línea por línea, de arriba a abajo, Sin saltos ni bucles a menos que utilice funciones avanzadas

Categorías de código G
Categoría | Comandos de ejemplo | Función primaria |
---|---|---|
Control de movimiento | G00, G01, G02, G03 | Movimiento de la herramienta (rápido/lineal/arco) |
Selección de plano | G17, G18, G19 | Seleccionar plano de trabajo (XY/XZ/YZ) |
Unidades y medidas | G20 (pulgadas), G21 (mm) | Establecer sistema de medición |
Sistemas de coordenadas | G54-G59, G92 | Definir desplazamientos de trabajo o coordenadas temporales |
Compensación de herramientas | G40, G41, G42, G43 | Ajuste el tamaño/longitud de la herramienta |
Ciclos enlatados | G81-G89 | Rutinas automatizadas de taladrado y roscado |
Control del husillo | M03, M04, M05 | Iniciar/detener la rotación del husillo |
Control de refrigerante | M08, M09 | Encender/apagar el refrigerante |
Control de programas | M30, M02 | Finalizar programa/reiniciar máquina |
Funciones especiales | G28, G53 | Regresar a las coordenadas de inicio/máquina |
Nota: El 80% de los programas básicos utiliza únicamente: G00/G01
, G17/G20/G21
, M03/M05
, y M30
.
Tabla de referencia de comandos de código G común
Dominio | Función | Parámetros | Ejemplo | Notas |
---|---|---|---|---|
G00 | Posicionamiento rápido (movimiento sin corte) | X, Y, Z (coordenadas del objetivo) | G00 X10 Y5 Z2 | Evite colisiones, no se producen cortes. |
G01 | Interpolación lineal (movimiento de corte) | X, Y, Z, F (velocidad de avance) | G01 X20 Y15 Z0 F150 | Mantener una velocidad de alimentación constante para el acabado de la superficie. |
G02 | Interpolación circular en sentido horario | X, Y, I, J, K (desplazamientos del centro del arco) | G02 X30 Y30 I5 J0 | I/J/K definen el centro del arco en relación con el punto de inicio. |
G03 | Interpolación circular en sentido antihorario | Igual que G02 | G03 X40 Y20 I0 J-5 | Se utiliza para arcos y círculos. |
G17 | Selección del plano XY | Ninguno | G17 | Plano predeterminado para la mayoría de operaciones de fresado. |
G18 | Selección del plano XZ | Ninguno | G18 | Se utiliza para operaciones de torno. |
G19 | Selección del plano YZ | Ninguno | G19 | Rara vez se utiliza en fresado estándar. |
G20 | Unidades en pulgadas | Ninguno | G20 | Establece todos los valores en pulgadas. |
G21 | Unidades metricas | Ninguno | G21 | Establece todos los valores en milímetros. |
G28 | Regresar a la posición inicial | X, Y, Z (opcional mediante intermedio) | G28 X0 Y0 Z0 | La máquina se mueve al punto de referencia. |
G40 | Cancelar compensación de corte | Ninguno | G40 | Desactiva el desplazamiento del radio de la herramienta. |
G41 | Compensación del cortador izquierdo | D (número de compensación del radio de la herramienta) | G41 D1 | Compensa el radio de la herramienta a la izquierda de la trayectoria. |
G42 | Compensación del cortador derecho | D (número de compensación del radio de la herramienta) | G42 D2 | Compensa el radio de la herramienta a la derecha de la trayectoria. |
G43 | Compensación de longitud de herramienta | H (número de compensación de altura de la herramienta) | G43 H3 | Se ajusta a la longitud de la herramienta; fundamental para configuraciones de múltiples herramientas. |
G54 | Sistema de coordenadas de trabajo 1 | Ninguno | G54 | Selecciona el desplazamiento de trabajo predefinido (G54–G59). |
G80 | Cancelar modos de movimiento | Ninguno | G80 | Cancela ciclos (por ejemplo, taladrado, roscado). |
G90 | Posicionamiento absoluto | Ninguno | G90 | Todas las coordenadas son relativas al origen. |
G91 | Posicionamiento incremental | Ninguno | G91 | Las coordenadas son relativas a la posición actual. |
M03 | Inicio del husillo (en sentido horario) | S (velocidad del husillo) | M03 S2000 | El husillo gira en el sentido de las agujas del reloj a 2000 RPM. |
M04 | Arranque del husillo (en sentido contrario a las agujas del reloj) | S (velocidad del husillo) | M04 S1500 | Se utiliza para operaciones de corte inverso. |
M05 | Tope del husillo | Ninguno | M05 | Detiene el husillo después de la operación. |
M06 | Cambio de herramienta | T (número de herramienta) | M06 T5 | Cambio automático de herramienta (requiere ATC). |
M08 | Refrigerante encendido | Ninguno | M08 | Activa el refrigerante de inundación. |
M09 | Refrigerante apagado | Ninguno | M09 | Apaga el refrigerante. |
M30 | Fin y reinicio del programa | Ninguno | M30 | Finaliza el programa y reinicia la máquina. |
F | Velocidad de alimentación | Valor de alimentación (unidades/min o unidades/rev) | F200 | Establecer en G94 (unidades/min) o G95 (unidades/rev). |
S | Velocidad del husillo | Valor de RPM | S3000 | La velocidad depende del material y del tipo de herramienta. |
T | Selección de herramientas | Número de herramienta | T4 | Prepara la herramienta para el comando M06. |
Preguntas más frecuentes
No. El software CAM moderno genera la mayor parte del código automáticamente. Concéntrese en comprender comandos comunes como G00
, G01
, M03
, y M30
.
Las funciones básicas son universales, pero las avanzadas varían según la marca. Por ejemplo:
- Haas: G187 (modo de alta velocidad)
- Fanuc: G05.1 (suavizado)
Consulte siempre el manual de su máquina para obtener información específica.
Sí. Por ejemplo:
Usando G00
(movimiento rápido) en lugar de G01
(corte lento) → La herramienta choca contra la pieza de trabajo.
Olvidando M05
(parada del husillo) → El husillo continúa girando después de que finaliza el programa.
- Prueba primero: ejecuta los programas en modo de "ejecución en seco" (sin cortes).
- Modo de bloque único: ejecuta una línea a la vez para detectar errores.
- Configuración de copia de seguridad: anote las compensaciones de la máquina antes de editar.
- Limpiar el espacio de trabajo: eliminar los residuos que puedan interferir con el movimiento.
Sí, pero solo ajuste los valores que comprenda completamente y nunca modifique las trayectorias de las herramientas sin el software CAM: pequeños errores pueden provocar fallas.
Programas CAM: Fusion 360, Mastercam, SolidWorks CAM (de pago), FreeCAD, Easel (basado en web).
Nota: Evite escribir código desde cero a menos que tenga experiencia.
Recursos
- Documentación del código G de LinuxCNC
- Manual de programación de la serie Fanuc 30i/31i/32i
- Guía de programación avanzada de Siemens 840D SL
- Norma ISO 6983-1
- Manual de programación de Haas Mill
- Manual de programación CNC Mazak SmoothX
- Fundamentos del código G (NRAO)
- Blog de recetas de CNC
- Visor de NC (Web, gratuito)
- CAMotics (código abierto)
- Vericut
- Maquinista práctico
- Foro LinuxCNC
- Stack Exchange – Fabricación
- Reddit r/CNC