Qué describe el G-code
El G-code es un lenguaje de instrucciones orientado a líneas que usan las impresoras 3D, las máquinas CNC y otros sistemas de movimiento. Una línea puede pedir un desplazamiento, cambiar un ajuste modal, fijar una temperatura o actualizar una función propia del controlador.
Un comando rara vez significa algo por sí solo. Su resultado puede depender del modo de unidades, del modo de coordenadas, del modo de extrusión, de la configuración de la máquina y del firmware que interpreta el archivo. Por eso esta referencia documenta tanto el significado habitual como el contexto que puede cambiarlo.
Conviene entender el G-code como una familia de dialectos emparentados y no como un único estándar uniforme de archivos para impresoras. La sintaxis básica de movimiento coincide, pero los comandos disponibles, los parámetros, los valores por defecto y las extensiones dependen del firmware de destino y de su configuración.
Leer una línea de comando
G1 X120 Y40 E1.6 F1800G1Solicita un movimiento lineal coordinado.
X / YIndican la posición de destino o la distancia, según G90/G91.
EIndica una posición o una distancia del extrusor, según M82/M83.
FFija la velocidad de avance. Los archivos de impresión suelen expresarla en milímetros por minuto, y los movimientos siguientes a menudo mantienen el último valor.
; ...Normalmente inicia un comentario para personas o programas. Los laminadores marcan capas y tipos de elemento con comentarios, pero esas etiquetas no están estandarizadas.
Una letra no lleva asociada una unidad fija independiente del contexto. X puede ser una coordenada y F una velocidad de avance, mientras que S puede representar una temperatura, la potencia del ventilador u otro ajuste. Interpreta cada parámetro a través del comando al que pertenece.
Un archivo de impresión suele tener tres partes
Preparación
Fija unidades y modos de posicionamiento, enciende los calentadores, referencia los ejes, selecciona una herramienta y puede ejecutar nivelación, limpieza o macros de arranque. Esto establece cómo se interpretarán los valores posteriores.
Cuerpo por capas
Largas secuencias de movimiento, extrusión, retracción y cambios de ventilador y temperatura forman la pieza. Las capas y los tipos de elemento suelen marcarse con comentarios del laminador y no con comandos propios.
Cierre
Apaga calentadores y ventiladores, eleva o aparca el cabezal, libera los motores y puede llamar a una macro final propia de la máquina. Un cierre incompleto puede dejar la máquina en un estado distinto del esperado.
; inicio: establecer el estado
G21
G90
M83
G28
; cuerpo: desplazarse y luego imprimir
G0 X40 Y20 Z0.20 F9000
G1 X80 Y20 E1.40 F1800
; fin: detener las salidas activas
M104 S0
M140 S0
M107Esto es una ilustración estructural, no un archivo completo listo para ejecutarse en cualquier máquina. La dirección de referenciado, el orden de calentamiento, la posición de aparcado y los nombres de las macros deben corresponder a la impresora concreta.
El estado cambia el significado
| Estado | Comandos | Por qué importa |
|---|---|---|
| Posicionamiento de ejes | G90 / G91 | Los valores X, Y y Z posteriores pasan a ser posiciones absolutas o distancias relativas. |
| Posicionamiento de extrusión | M82 / M83 | El eje E puede usar un modo independiente del de los ejes de movimiento. |
| Unidades | G20 / G21 | Las coordenadas y las velocidades pueden interpretarse en pulgadas o en milímetros. |
| Velocidad de avance | F | Muchos intérpretes conservan el último valor de F hasta que un movimiento posterior lo cambia. |
| Herramienta activa | T0 / T1... | En máquinas multiherramienta, el mismo comando de temperatura o extrusión puede actuar sobre otra herramienta. |
| Redefinición de coordenadas | G92 | La posición física actual puede recibir coordenadas lógicas nuevas sin moverse. |
El estado persistente es una fuente habitual de malas lecturas. E1.6 por sí solo no demuestra que se hayan añadido 1,6 mm: bajo M83 es el incremento de ese movimiento, mientras que bajo M82 es la nueva posición acumulada.
El contexto del firmware importa
Marlin, Klipper, RepRapFirmware y los controladores CNC coinciden en los comandos básicos de movimiento, pero no forman un lenguaje perfectamente intercambiable. Un mismo objetivo en la máquina puede requerir nombres de comando, parámetros o escalas de valores distintos.
| Sistema | Modelo de extensión | Qué comprobar |
|---|---|---|
| Marlin | Comandos al estilo RepRap | Muchas funciones son opciones de compilación, así que dos compilaciones de la misma versión pueden ofrecer comandos distintos. |
| Klipper | Subconjunto estándar + extensiones con nombre | Da soporte deliberado a un subconjunto estándar común, añade nombres como SET_PRESSURE_ADVANCE y permite que las macros añadan o sustituyan comportamientos. |
| RepRapFirmware | G-code en todas partes + macros y expresiones | La configuración, el control y los informes de estado usan G-code de forma intensiva, y las versiones recientes admiten además metacomandos y expresiones. |
| LinuxCNC / RS274NGC | Grupos modales CNC y sistemas de coordenadas | Conceptos CNC como el control del husillo, la compensación de herramienta, las coordenadas de trabajo y los ciclos fijos no implican un eje E ni calentadores al estilo de una impresora. |
El nombre del firmware, su versión y su configuración son, por tanto, el contexto mínimo de compatibilidad. Ni la extensión del archivo ni el hecho de que funcione en la máquina de otra persona demuestran que se ejecutará igual en tu impresora.
Cómo revisar un archivo desconocido
- Identifica el laminador, la máquina de destino y el firmware. Si falta ese contexto, trata la compatibilidad como desconocida.
- Lee las unidades, el modo de ejes, el modo de extrusión, el referenciado y la configuración de herramienta y calentadores antes de interpretar los movimientos posteriores.
- Sigue los cambios de X/Y/Z por separado de los de E para distinguir desplazamiento, impresión, retracción y cebado.
- Trata los comentarios con punto y coma como pistas del laminador, no como comandos que la máquina vaya a ejecutar necesariamente, y no des por hecho que todos los laminadores usan las mismas etiquetas.
- Ante macros, extensiones con nombre o códigos M desconocidos, consulta la documentación oficial de esa versión de firmware en lugar de deducirlos por el número.
- Por último, comprueba que el cierre apaga calentadores, ventiladores y otras salidas, y que los movimientos de aparcado no pueden superar los límites ni chocar con la pieza.
Qué contiene cada página de comando
- Una definición breve seguida del estado necesario para interpretar el comando.
- Sintaxis y significado de los parámetros, con ejemplos prácticos de G-code.
- Diferencias entre firmwares y errores que pueden cambiar el comportamiento de la máquina.
- Una declaración transparente de lo que el visor local puede verificar y lo que no.
Qué puede mostrar el visor
El visor puede mostrar las trayectorias admitidas y ciertos detalles del archivo. No puede reproducir los ajustes de la impresora ni predecir con exactitud lo que hará una impresora física.
Empieza por estos comandos clave
Fuentes oficiales usadas en esta guía
Redactado el 8 de agosto de 2026 a partir de las siguientes fuentes primarias. En conjunto explican la estructura de línea compartida y por qué divergen los dialectos de cada controlador.