¿Qué es el G-code?
El G-code (también llamado RS-274 o código CNC) es el lenguaje de programación utilizado para controlar máquinas CNC (Control Numérico por Computadora) — incluyendo impresoras 3D, fresadoras CNC, tornos, cortadoras de plasma, grabadoras láser y máquinas pick-and-place. Se originó en el MIT en los años 50 y fue estandarizado como RS-274 por la Asociación de Industrias Electrónicas (EIA). La versión ISO es ISO 6983.
Para la impresión 3D específicamente, el G-code es la salida de los laminadores (software que convierte modelos 3D en instrucciones de impresión): Cura, PrusaSlicer, Bambu Studio, Simplify3D. Cada impresora 3D FDM (Modelado por Deposición Fundida) lee G-code; las cortadoras láser y routers CNC usan variantes dialectales.
Un archivo G-code es texto plano — cada línea es un comando, un comentario (entre ;) o una línea en blanco.
Estructura del Archivo G-code
; Generado por Cura 5.6.0
; Número de capas: 142
M104 S215 ; Establecer temperatura del extrusor a 215°C (sin espera)
M109 S215 ; Establecer temperatura y esperar
M140 S60 ; Establecer temperatura de la cama a 60°C
M190 S60 ; Esperar temperatura de la cama
G28 ; Llevar todos los ejes al origen (endstops)
G29 ; Nivelación automática de la cama (si se admite)
G21 ; Establecer unidades en milímetros
G90 ; Modo de posicionamiento absoluto
G92 E0 ; Restablecer posición del extrusor a 0
; === Inicio de la impresión real ===
G0 F9000 X50 Y50 Z0.2 ; Movimiento rápido a posición inicial
G1 F1200 X100 Y50 E5.0 ; Movimiento de alimentación: imprimir línea a X100
G1 F1200 X100 Y100 E10.0 ; Continuar imprimiendo
M104 S0 ; Extrusor apagado
M140 S0 ; Cama apagada
M84 ; Deshabilitar motores
Tipos de Comandos G-code
Comandos G (Funciones Preparatorias)
| Comando | Descripción |
|---|---|
G0 |
Movimiento rápido (sin extrusión, velocidad máxima) |
G1 |
Movimiento lineal (ejes coordinados + extrusión opcional) |
G2 |
Movimiento de arco en sentido horario |
G3 |
Movimiento de arco en sentido antihorario |
G4 P500 |
Pausa (500 ms) |
G20 |
Unidades: pulgadas |
G21 |
Unidades: milímetros |
G28 |
Llevar ejes al origen (endstops) |
G29 |
Nivelación automática de la cama |
G90 |
Posicionamiento absoluto |
G91 |
Posicionamiento relativo |
G92 E0 |
Establecer posición actual como origen |
Comandos M (Misceláneos)
| Comando | Descripción |
|---|---|
M104 S215 |
Establecer temperatura del extrusor (sin espera) |
M109 S215 |
Establecer temperatura y esperar |
M140 S60 |
Establecer temperatura de la cama (sin espera) |
M190 S60 |
Esperar temperatura de la cama |
M106 S128 |
Establecer velocidad del ventilador (0–255) |
M107 |
Ventilador apagado |
M600 |
Cambio de filamento |
M84 |
Deshabilitar motores paso a paso |
Sistemas de Coordenadas
Modo Absoluto vs Relativo
- Absoluto (
G90): Todas las coordenadas son desde el origen (0,0,0).G1 X50mueve a 50mm desde el origen. - Relativo (
G91): Todas las coordenadas son relativas a la posición actual.G1 X10mueve 10mm en dirección X desde la posición actual.
Impresión 3D FDM: G-code Específico
Extrusión y Retracción
; Movimiento de impresión con extrusión
G1 X100 Y50 E5.2 F1200 ; Mover a (100,50) extrusionando hasta E=5.2mm total
; Retracción (antes de movimiento de viaje)
G1 E-4.5 F3600 ; Retraer 4.5mm a 60mm/s
G0 X80 Y80 ; Movimiento rápido sin extrusión
G1 E0 F3600 ; Preparar (empujar de vuelta) 4.5mm antes de la siguiente extrusión
Laminadores y Generación de G-code
Los laminadores convierten archivos STL/3MF/OBJ a G-code:
| Laminador | Compatible con | Características Notables |
|---|---|---|
| Ultimaker Cura | FDM (mayoría de marcas) | Ecosistema de plugins, biblioteca de perfiles |
| PrusaSlicer | FDM, SLA (Prusa, genérico) | Multimaterial, soportes pintados |
| Bambu Studio | Impresoras Bambu Lab | AMS multicolor, soportes IA |
| OrcaSlicer | FDM (genérico) | Herramientas de calibración |
| LightBurn | Cortadoras láser | Trayectorias de láser vectorial/raster |
Flujo de trabajo STL a G-code
Archivo STL/3MF → Laminador → G-code → USB/SD/WiFi → Impresora → Pieza física
Dialectos de G-code
Diferentes firmware y máquinas usan diferentes dialectos de G-code:
| Dialecto | Usado por |
|---|---|
| Marlin | La mayoría de impresoras FDM de código abierto (Ender, Prusa original) |
| Klipper | Impresoras de alta velocidad (Voron) |
| Grbl | Routers CNC caseros, grabadoras láser |
| Fanuc G-code | Máquinas CNC industriales |
| Smoothieware | Controladores Smoothieboard |
Conversión de STL a G-code
# Motor CuraEngine (motor laminador de Cura)
CuraEngine slice -j perfil_impresora.json -l modelo.stl -o salida.gcode
# PrusaSlicer por línea de comandos
prusa-slicer --slice --load config.ini modelo.stl --output salida.gcode
# Inspeccionar el resultado
wc -l salida.gcode # contar líneas (una impresión compleja = millones de líneas)
grep -c "^;LAYER:" salida.gcode # contar capas
Visualización e Inspección del G-code
G-code es texto plano — cualquier editor de texto funciona. Extensiones de resaltado de sintaxis G-code disponibles para VSCode.
# Ver las primeras 30 líneas
head -30 impresion.gcode
# Contar capas
grep -c "^;LAYER:" impresion.gcode
# Extraer todas las temperaturas establecidas
grep "^M109\|^M104" impresion.gcode
# Encontrar la capa 50
grep -n "LAYER:50" impresion.gcode
Visores/simuladores: Repetier-Host, Pronterface (Printrun), gCodeViewer.com, NCViewer.com.
El formato de texto plano del G-code, su linaje de 70 años y su universalidad en industrias que van desde implantes dentales hasta prototipos automotrices y herramientas aeroespaciales — todo a partir del mismo conjunto fundamental de comandos — lo convierten en uno de los formatos técnicos más duraderos en la historia de la fabricación.
Conversiones relacionadas
Conversiones frecuentes del catálogo: