G-code para impresoras 3D: qué es y cómo funciona


El G-code es el lenguaje de instrucciones que una impresora 3D interpreta para convertir un modelo laminado en movimientos, temperaturas, extrusión y otras acciones concretas. El archivo no describe simplemente la forma de la pieza: contiene una secuencia ordenada de órdenes que indican a la máquina dónde desplazarse, cuánto material extruir, a qué temperatura trabajar y cómo ejecutar cada capa.

Para la mayoría de usuarios no es necesario escribir G-code a mano. El flujo habitual consiste en preparar un modelo 3D, abrirlo en un laminador, elegir los parámetros de impresión y dejar que el software genere el archivo. Sin embargo, entender su estructura resulta muy útil para diagnosticar problemas, automatizar tareas y comprender qué hace realmente la impresora cuando recibe una orden.

Qué papel tiene el G-code en el flujo de impresión

Un archivo STL, 3MF u otro formato de modelo contiene geometría, pero no sabe cómo debe imprimirla una máquina concreta. El laminador traduce esa geometría a trayectorias y, a partir del perfil seleccionado, genera instrucciones compatibles con el firmware de la impresora.

Ese proceso incorpora decisiones como la altura de capa, la anchura de línea, el número de perímetros, el relleno, los soportes, las temperaturas, las retracciones y la velocidad. El resultado final es un archivo de texto con miles o millones de líneas. La impresora las procesa en orden y actúa según cada instrucción.

Por eso dos archivos G-code obtenidos del mismo modelo pueden ser muy diferentes si cambian el laminador, el perfil de impresora o los parámetros. El modelo es el mismo, pero la estrategia para fabricarlo cambia.

Cómo está formado un archivo G-code

La mayor parte de las instrucciones siguen una estructura sencilla: una letra identifica el tipo de comando y uno o varios parámetros aportan valores. En impresión 3D aparecen especialmente comandos G, relacionados con movimiento y posicionamiento, y comandos M, utilizados para numerosas funciones de control.

Un movimiento puede incluir coordenadas X, Y y Z, además del valor E asociado a la extrusión. Otros comandos fijan temperaturas, activan ventiladores, esperan a que el hotend alcance una temperatura, hacen homing o cambian el modo de posicionamiento.

Los comentarios suelen empezar con punto y coma. El firmware los ignora, pero pueden ser útiles para que una persona o un programa identifique secciones, capas o información generada por el laminador.

Comandos habituales que conviene reconocer

Comando Función habitual Por qué es útil reconocerlo
G0 / G1 Movimiento lineal, con o sin extrusión según los parámetros Permite identificar desplazamientos y trayectorias de impresión
G28 Homing de uno o varios ejes Ayuda a localizar el momento en que la máquina establece su referencia
G90 / G91 Posicionamiento absoluto o relativo Un cambio de modo altera la interpretación de los movimientos posteriores
M104 Fija una temperatura de hotend sin esperar necesariamente a alcanzarla Permite entender el calentamiento previo
M109 Fija la temperatura del hotend y espera según el comportamiento del firmware Explica ciertas pausas al inicio o durante una impresión
M140 / M190 Control de temperatura de cama, con diferencias de espera Ayuda a interpretar la secuencia térmica inicial
M106 / M107 Control del ventilador de capa Permite comprobar cuándo entra en funcionamiento la refrigeración

La disponibilidad exacta y el significado de ciertos parámetros dependen del firmware. Marlin, Klipper y otros sistemas no implementan necesariamente todos los comandos de la misma forma. Antes de editar instrucciones avanzadas conviene consultar la documentación del firmware utilizado.

G-code de inicio y de finalización

Los perfiles de laminado suelen incluir bloques de G-code que se ejecutan antes y después de la pieza. El bloque de inicio puede encargarse del homing, calentamiento, purga de la boquilla, nivelación o carga de una malla de cama. El de finalización suele apartar el cabezal, apagar calentadores y ventiladores o presentar la pieza.

Estos bloques son uno de los lugares donde una modificación manual puede aportar valor. Por ejemplo, una secuencia de purga bien planteada puede estabilizar el flujo antes de empezar la primera capa. Sin embargo, copiar un inicio de otra impresora sin adaptarlo puede provocar movimientos fuera del volumen útil, órdenes incompatibles o rutinas de calibración incorrectas.

G-code y firmware: por qué la compatibilidad importa

No existe un único dialecto universal de G-code para todas las impresoras 3D. La base conceptual es común, pero los firmwares añaden comandos, parámetros y macros. Incluso una orden conocida puede comportarse de forma distinta según la configuración.

Esto es especialmente relevante cuando se descarga un G-code preparado por otra persona. Ejecutar directamente un archivo pensado para una máquina distinta es una mala práctica: puede contener temperaturas, límites, secuencias o dimensiones incompatibles. Es mucho más seguro descargar el modelo y laminarlo con el perfil de la propia impresora.

Cómo leer un G-code sin perderse

Intentar revisar línea por línea un archivo completo rara vez es práctico. Lo más útil es identificar primero la sección que interesa. Si el problema ocurre antes de imprimir, conviene revisar el inicio. Si aparece en un cambio de capa concreto, un visor de trayectorias puede ayudar a situar la zona. Si se investiga una orden concreta, una búsqueda de texto permite localizar sus apariciones.

Los laminadores modernos incluyen previsualización de las trayectorias y muestran variables como velocidad, tipo de línea, caudal o ventilación. Esa representación suele ser mucho más informativa que leer el texto en bruto. El G-code se vuelve especialmente valioso cuando se necesita relacionar lo observado en la vista previa con una instrucción concreta.

Cuándo tiene sentido editarlo manualmente

  • Para ajustar una rutina de inicio o finalización que se comprende bien.
  • Para insertar una pausa, un cambio de filamento o una acción específica compatible con el firmware.
  • Para investigar un comportamiento extraño y comprobar qué órdenes recibe la máquina.
  • Para desarrollar macros o automatizaciones en entornos donde el firmware lo permita.

No suele tener sentido editar manualmente trayectorias largas que podrían regenerarse desde el laminador. Cualquier cambio al perfil de impresión se mantiene de forma más consistente si se configura en el software y se vuelve a laminar la pieza.

Riesgos de modificar G-code sin saber qué hace

Una orden incorrecta puede provocar choques, movimientos inesperados, extrusión excesiva, calentamientos no deseados o pérdida de la referencia de los ejes. La gravedad depende de las protecciones del firmware y de la propia máquina, pero no conviene confiar en ellas como sustituto de una configuración correcta.

Antes de probar un G-code modificado es recomendable revisar las coordenadas, temperaturas y modos de posicionamiento, y observar la impresora durante los primeros momentos de ejecución. Cuando se trabaja con macros o personalizaciones complejas, conviene introducir los cambios de uno en uno para poder identificar el origen de cualquier fallo.

G-code frente al archivo de proyecto del laminador

El G-code es un resultado final de fabricación; el proyecto del laminador conserva muchas más decisiones editables. Si se quiere cambiar relleno, soportes, orientación o velocidad, normalmente es mejor volver al proyecto. El G-code es apropiado para ejecutar una impresión concreta, pero no sustituye a un archivo de trabajo bien organizado.

Comprender esta diferencia evita uno de los errores más comunes: tratar el G-code como si fuera un modelo reutilizable. Para repetir exactamente una impresión puede ser útil, pero si cambia la impresora, el material o cualquier condición relevante, lo correcto suele ser volver a laminar.

Qué aprender después

Para entender el flujo completo merece la pena profundizar en el laminador utilizado y en el firmware de la impresora. El laminador decide las trayectorias; el firmware interpreta las órdenes y las convierte en movimientos físicos. Conocer ambos niveles permite diagnosticar mucho mejor problemas que, vistos únicamente desde el modelo 3D, parecen difíciles de explicar.