Saltar al contenido
GEEKnodes

Impresión 3D

G-code explicado: estructura y comandos básicos de impresión 3D

Qué es el G-code, cómo se estructura un archivo y qué hacen G0/G1, G28, G29, G90/G91, M104/M109, M140/M190, M106, M84 y M500, con inicio y final de ejemplo.

El G-code es el idioma que entiende tu impresora 3D: una lista de órdenes de texto que le dicen dónde moverse, cuánto extruir y a qué temperatura calentar. En esta guía verás cómo está organizado un archivo, qué hacen los comandos más usados y cómo leer el G-code de inicio y de final de tu laminador.

Los ejemplos siguen la sintaxis de Marlin, el firmware más extendido. Klipper y RepRapFirmware aceptan la mayoría de estos comandos.

En resumen

  • Los comandos G son movimientos; los M son funciones de la máquina (temperatura, ventilador, motores).
  • Las letras que acompañan al comando son parámetros: X, Y, Z, E (extrusor), F (velocidad) y S (valor).
  • El G-code de inicio calienta, hace home y purga; el de final apaga calefactores, aparta el cabezal y desactiva motores.

Qué es el G-code

El laminador (Cura, PrusaSlicer, OrcaSlicer…) convierte un modelo 3D en miles de líneas de G-code. La impresora las ejecuta de arriba abajo, una a una.

Cada línea tiene esta forma:

G1 X50 Y25.3 E0.42 F1500 ; comentario opcional
  • G1: el comando (movimiento lineal).
  • X50 Y25.3: destino en milímetros.
  • E0.42: filamento a extruir durante el movimiento.
  • F1500: velocidad en mm/min (1500 mm/min son 25 mm/s).
  • ;: todo lo que va detrás es un comentario y la impresora lo ignora.

Estructura de un archivo G-code

Un archivo típico tiene cuatro bloques:

  1. Cabecera: comentarios del laminador con el perfil, el tiempo estimado y el filamento.
  2. G-code de inicio: calentar, hacer home, nivelar y purgar la boquilla.
  3. Cuerpo: capa por capa, con comentarios como ;LAYER:0 o ;TYPE:WALL-OUTER.
  4. G-code de final: apagar todo y dejar la pieza accesible.
Cuatro bloques de un archivo G-code: cabecera, inicio, cuerpo por capas y final.
El archivo se ejecuta de arriba abajo: empieza con la cabecera y termina al cerrar la impresión.

El G-code de inicio y final lo defines tú en los ajustes de la impresora del laminador. El cuerpo lo genera el laminador.

Comandos de movimiento

ComandoQué haceEjemplo
G0Movimiento rápido (sin extruir)G0 X10 Y10 F6000
G1Movimiento lineal, con o sin extrusiónG1 X60 E2.5 F1200
G28Home: lleva los ejes a sus finales de carreraG28 o G28 Z
G29Nivelación automática de cama (sondeo de malla)G29
G90Coordenadas absolutasG90
G91Coordenadas relativasG91
G92Fija la posición actual sin moverseG92 E0

G0 y G1

En Marlin, G0 y G1 se comportan prácticamente igual. Los laminadores suelen usar G0 para los desplazamientos y G1 para las líneas con extrusión, lo que hace el archivo más fácil de leer.

G90 y G91: absoluto frente a relativo

Con G90, G1 Z10 significa «ve a Z = 10 mm». Con G91, la misma orden significa «súbete 10 mm desde donde estés».

Comparación de un movimiento Z absoluto hasta 10 mm y uno relativo de 10 mm desde Z=5.
G90 apunta a una coordenada; G91 suma el desplazamiento a la posición actual.

Es muy útil en el G-code de final para levantar la boquilla sin saber a qué altura terminó la pieza:

G91        ; modo relativo
G1 Z10 F600 ; sube 10 mm desde la posición actual
G90        ; vuelve a modo absoluto

El extrusor tiene su propio modo: M82 (absoluto) y M83 (relativo). Tu laminador debe usar el mismo que declara el G-code de inicio.

G92 E0

Pone a cero el contador del extrusor. Lo verás antes de cada purga y, en muchos laminadores, al comienzo de cada capa.

Comandos de temperatura

ComandoQué hace¿Espera?
M104 S200Fija el hotend a 200 °CNo
M109 S200Fija el hotend a 200 °CSí, hasta alcanzarla
M140 S60Fija la cama a 60 °CNo
M190 S60Fija la cama a 60 °CSí, hasta alcanzarla

Según la documentación de Marlin, M109 con S solo espera mientras calienta. Con R espera también si la temperatura tiene que bajar, algo útil al cambiar de material.

Un truco habitual es calentar los dos a la vez y esperar después:

M140 S60  ; cama a 60 sin esperar
M104 S200 ; hotend a 200 sin esperar
M190 S60  ; ahora espera a la cama
M109 S200 ; y luego al hotend

Ventilador, motores y memoria

ComandoQué hace
M106 S255Ventilador de capa al 100 % (el valor va de 0 a 255)
M106 S128Ventilador aproximadamente al 50 %
M107Apaga el ventilador de capa
M84Desactiva los motores paso a paso
M500Guarda la configuración actual en la EEPROM
M501Carga la configuración guardada
M503Muestra la configuración actual
M420 S1Activa la malla de nivelación guardada

M500 es importante: cambios como los pasos por milímetro (M92) o el Z-offset (M851) se pierden al apagar si no los guardas. En Klipper, el equivalente es SAVE_CONFIG.

Ejemplo de G-code de inicio

Un inicio típico para una impresora tipo Ender 3 con sensor de nivelación:

G90                 ; coordenadas absolutas
M82                 ; extrusor en modo absoluto
M140 S60            ; cama a 60 °C
M104 S150           ; hotend a 150 °C para no gotear mientras sondea
M190 S60            ; espera a la cama
G28                 ; home de todos los ejes
G29                 ; sondea la malla (o M420 S1 si ya está guardada)
M109 S210           ; hotend a temperatura de impresión
G92 E0              ; contador del extrusor a cero
G1 Z2.0 F3000       ; sube un poco la boquilla
G1 X0.1 Y20 Z0.3 F5000   ; va al inicio de la línea de purga
G1 X0.1 Y200 Z0.3 F1500 E15 ; primera línea de purga
G1 X0.4 Y200 Z0.3 F5000  ; se desplaza a un lado
G1 X0.4 Y20 Z0.3 F1500 E30  ; segunda línea de purga
G92 E0              ; contador a cero de nuevo
G1 Z2.0 F3000       ; sube antes de empezar la pieza
Secuencia de inicio de impresión: calentar, hacer home, sondear la cama y purgar la boquilla.
El orden importa: el home precede al sondeo y la purga prepara la boquilla para imprimir.

Por qué cada paso:

  • Hotend a 150 °C durante el sondeo: así no gotea plástico sobre la cama ni sobre el sensor.
  • G28 antes que G29: el sondeo necesita saber dónde está el origen.
  • Línea de purga: llena la boquilla de plástico fresco antes de la primera capa.

Ten en cuenta que G28 desactiva la nivelación en Marlin por defecto. Si no haces G29 en cada impresión, necesitas M420 S1 después del home.

Ejemplo de G-code de final

G91                 ; modo relativo
G1 E-2 F2700        ; retrae 2 mm de filamento
G1 Z10 F600         ; sube 10 mm
G90                 ; modo absoluto
G1 X0 Y220 F3000    ; lleva la cama hacia delante para sacar la pieza
M106 S0             ; apaga el ventilador de capa
M104 S0             ; apaga el hotend
M140 S0             ; apaga la cama
M84 X Y E           ; desactiva motores (deja Z bloqueado)

Dejar el motor Z activo evita que el eje baje por su propio peso en algunas impresoras.

Cómo enviar G-code a la impresora

  • Pantalla de la impresora: muchas permiten ejecutar comandos sueltos desde un menú.
  • Pronterface o el terminal de OctoPrint: conectas por USB y escribes comandos uno a uno. Mira cómo controlar la Ender 3 con OctoPrint.
  • Mainsail o Fluidd en impresoras con Klipper.

Al enviar M503, la impresora responde con su configuración, algo útil para saber qué valores tienes guardados.

Errores habituales

  • Olvidar que F va en mm/min. F50 mueve el cabezal a menos de 1 mm/s.
  • Mezclar modo absoluto y relativo del extrusor. La impresora extruye cantidades absurdas en la primera capa.
  • No guardar con M500. Los ajustes desaparecen al apagar.
  • Mover Z con G91 y no volver a G90. El resto de la impresión se interpreta mal.
  • Esperar al hotend antes de nivelar. Gotea sobre la cama durante el sondeo.

Relacionados

Preferencias de accesibilidad

Perfiles rápidos

Texto y lectura

Tamaño del texto
Por defecto
Altura de línea
Por defecto
Espaciado entre letras
Por defecto
Espaciado entre palabras
Por defecto

Color

Movimiento y orientación

Cursor