Está en la página 1de 11

¿Que es G-code?

Gcode (o código G) es un lenguaje de control numérico usado para enviar instrucciones a la


mayoría de equipos de fabricación automatizada, incluyendo las impresoras 3D. Es un lenguaje
simple que usa líneas de código con diferentes letras y números para indicar a la impresora,
dónde moverse, cuando moverse, encendido y apagado de ventilador, inicio de calentamiento
de la boquilla, por nombrar algunas.
Aunque Gcode es el lenguaje más usado para el control de las impresoras 3D, no es el único. x3g es
otro lenguaje usado por impresoras 3D como la ReplicatorG y la MakerBot. Sin embargo, x3g es un
lenguaje binario (basado en unos y ceros) más difícil de entender que Gcode.. Por otro lado, G code
es más usado por las impresoras DIY y Open Source.

Para que tu nueva impresora 3D pueda correr este lenguaje de instrucciones, el firmware de la
impresora debe soportar el formato .gcode.

¿Cómo están formados los comandos Gcode?


Puedes crear múltiples líneas de código combinando las diferentes instrucciones que conforman el
lenguaje. Cada línea de código representa una instrucción que debe realizar la impresora 3D. Por
ejemplo, la siguiente línea de código le indica a la impresora que debe mover su extrusor hasta la
posición X=10 mm de la cama, a una velocidad de 3600 mm/min

G1 X10 F3600

Esto representa una línea de código y es una instrucción única para la impresora 3D.

También podemos crear muchas líneas de código, cada una indicando una instrucción distinta a la
impresora. Por ejemplo,

1 G1 X0 Y0 F2400 ; mover el extrusor a la posición X=0 y Y=0 de la cama, a una velocidad de 2400
mm/min.

2 G1 Z10 F1200 ; mover el eje Z a la posición Z=10 mm, a una velocidad de 1200 mm/min.

3 G1 X30 E10 F1800 ; pasa 10 mm a través de la boquilla mientras mueves el extrusor a la posición
X=30 mm.

Estas 3 líneas de código le indican a la máquina 3D que debe moverse a las provisiones indicadas en
los comentarios y a la velocidad indicada.
Las letras del Código G para Impresoras 3D
Cada línea de código está compuesta por diferentes combinaciones de letras y números. Cada
combinada le indican algo específico a la impresora. A continuación, vemos el significado de cada
letra:

G = Comandos G. Comandos G code geométricos para indicar movimientos del extrusor de la


impresora 3D. Se usan para iniciar las instrucciones de movimientos a través de la plataforma de
impresión.
M = Comandos M. Comandos máquina no geométricos usados para iniciar acciones que no están
asociados a movimientos sobre la plataforma de impresión. Encender/apagar, calentar/enfriar, etc.
X/Y/Z = Ejes de coordenadas. Indican que el extrusor debe moverse en alguna de los ejes X, Y o Z.
F = Velocidad del movimiento. Se usa para indicar la velocidad a la que debe moverse el extrusor
de la impresora 3D.
E = Extrusión de filamento. Se usa para indicar la cantidad de filamento que debe ser pasado a
través de la boquilla del extrusor.
S = Temperatura del extrusor o velocidad del ventilador de enfriamiento. Cuando se usa con
los comandos G, se usa para indicar la temperatura (en grados centígrados) que debe alcanzar el
extrusor. También se usa para ajustar la velocidad del ventilador que enfría el objeto impreso,
cuando se usa con los comandos M.
T = Especificar extrusor. Cuando tenemos más de 1 extrusor, podemos especificar cual extrusor se
usará en cada comando específico. Con T0, normalmente, solicitamos el extrusor derecho. T1, se
suele usar para pedir el extrusor izquierdo.
Cada letra va acompañada de uno o varios números que representan el valor a ejecutar o un
argumento que complementa el comando.

Más abajo vemos cómo el número puede influenciar bastante la ejecución de la tarea de impresión
3D.

El símbolo Punto y Coma (;)


El signo de punto y coma (;) se usa para agregar comentarios al código sin que esto afecte la
programación. Es decir, el compilador no toma en cuenta nada que esté después del punto y coma.
Los números en G code para Impresora 3D
Los números indican el valor del comando a ser ejecución. En el caso de los comandos con G y M,
los números cambian el tipo de comando. Veamos algunos casos:

F3600. El número 3600 indica el valor de velocidad a la que debe moverse el brazo de la impresora
3D. En este caso, es 3600 mm/min.
E20. El 20 representa la cantidad de filamento que debe ser pasada a través del extrusor. En este
caso, es 20 mm.
X15, Y10. En este caso, el 15 indica los milímetros que debe moverse el extrusor en el eje X,
mientras que el 10 indica que debe moverse 10 mm en el eje Y.
Z10. En este caso, la impresora debe elevar el extrusor 10 mm hacia arriba en el eje Z.
G1. En este caso, el 1 no representa un valor geométrico. Solo se usa para indicar el tipo de
comando que se quiere enviar. En este caso, G1 indicar que el comando es un movimiento lineal.
M104. Al igual que en el caso del comando G, El número 104 del comando M no representa un
valor geométrico sino que se usa para indicar una función que se debe realizar. El M104 es un
comando de máquina usado para iniciar el calentamiento del extrusor.
S255, S0, S127. Cuando se usa el comando S para representar la velocidad de ventilación, el
número que lo acompaña puede estar entre 0 y 255. 0 representa el 0% de velocidad, es decir,
apagado, y el 255 representa el 100 % de la velocidad, es decir, velocidad máxima.
Argumentos en los Códigos Gcode
Los comandos G y M pueden requerir argumentos para que la instrucción sea completada.

El resto de los comandos E, F, X, Y o Z junto con sus números de valor sirven de argumentos para
los comandos G y M. Por ejemplo,

G1 E10 F800

G1 es el comando G que especifica un movimiento lineal. E10 y F800 son los argumentos del
comando que especifican empujar el filamento 10 mm a través de la boquilla y hacerlo a una
velocidad de 800 mm/min, respectivamente.

Modos de posicionamiento en Gcode


Cuando envías un comando de movimiento a la impresora 3D, se lo puedes enviar en forma
absoluta o relativa.

Un movimiento absoluto requiere indicar la posición específica dónde quieres que vaya el.extrusor
sobre la cama. En estos casos, los valores indicados en X, Y y Z representan valores exactos en
milímetros sobre la plataforma de impresión.

Al pedir una ubicación relativa, le dices a la máquina 3D que se mueva ciertos milímetros desde la
ubicación actual del extrusor.
El movimiento absoluto es mayormente usado en los códigos G ya que los slicers suelen conocer la
posición cero de la impresora 3D y suelen determinar previamente las opciones exactas a dónde
moverse.

El comando G90 pide un movimiento absoluto, mientras que el comando G91 pide un movimiento
relativo. Más adelante, veremos ejemplos de estos comandos.

El comando E – Extrusor
El extrusor es controlado como si fuera un eje adicional en la impresora 3D. En este caso, la letra E
se usa para representar el eje del extrusor y suele ser usada en muchos comandos de movimiento
como un eje más.

En el siguiente ejemplo se muestra como se le pide al extrusor que pase 2 mm de filamento a través
de la boquilla. El comando G1 indica que el comando es lineal, como pasa con los ejes X, Y y Z.

G1 X7 Y18 F500 E2

¿Cuáles son los comandos G?


Como ya hemos dicho, la comandos G son instrucciones geométricas que inician los comandos del
código G. Los comandos G inician con la letra G (de ahí el nombre) y siempre van acompañados por
un número que especifica el tipo de comando a ser ejecutado.

Veamos los comandos G más comunes usados en impresión 3D:

Comando G1 – Movimiento lineal


G1 es el comando G más usado en el código G y especifica un movimiento en línea recta de
cualquiera de los ejes X, Y y Z. Puedes pedir el movimiento de uno de los ejes o de varios en un solo
comando. Por ejemplo,

G1 Z18 F2400

Se usa para pedir un movimiento lineal del eje Z. La impresora 3d debe elevar el extrusor 18 mm
hacia arriba a una velocidad de 2400 mm/min.

G1 X10 Y10 F1200

Está instrucción pide un movimiento lineal de los ejes X y Y en un solo comando. El extrusor debe
moverse hasta la posición X=10 mm y Y=10 mm de la cama de impresión. En ambos casos, debe
ejecutarse a una velocidad de 1200 mm/min.

Por otro lado, como el extrusor es tratado como un eje adicional, se puede usar el comando E
dentro de las instrucciones para pedir el empuje de filamento a través de la boquilla, como se
muestra a continuación:
G1 X30 E10 F1800 ; pasar 10 mm de filamento a través de la boquilla a una velocidad de 1800 mm/min
y, al mismo tiempo, mover el extrusor a la posición X=30 mm.

Comando G2 y G3 – Movimiento circular


G2 inicia el movimiento del extrusor en el sentido de las agujas del reloj hasta una posición
determinada. Cómo argumento se establecen las coordenadas de la ubicación final del extrusor y su
eje de rotación con los parámetros I y J.

El parámetro I especifica cuánto se desplaza el eje X respecto a su posición actual.

El parámetro J establece cuánto se desplaza el eje Y respecto a su posición actual.

Por ejemplo,

G2 X15 Y5 I0 J-12

Se pide que el extrusor realice un movimiento circular en el sentido de las agujas del reloj. El eje
central lo tendrás desplazando 0 mm en el eje X y -12 mm en el eje Y. El movimiento termina
cuando el extrusor alcance las posiciones X=15 mm y Y=5 mm.

El comando G3 usa los mismo parámetros pero específica que el movimiento circular se ejecutar en
sentido contrario al de las agujas del reloj. Por ejemplo,

G3 X-20 Y10 I1 J-15

Comandos G90 y G91 – Modo de posicionamiento del extrusor


Antes de iniciar un movimiento del extrusor, debes especificar si el movimiento es absoluto o
relativo.

Para un movimiento absoluto, el extrusor se mueve a una ubicación específica en los ejes X, Y, Z y E.
El comando G90 se usa para especificar un movimiento absoluto. Un ejemplo se muestra a
continuación:

G90

G1 X25 F3600 E0.02

El movimiento relativo implica que el extrusor avanzará ciertos milímetros en alguno de los ejes
desde su provisión actual. Esto se especifica con el comando G91, tal como se muestra en el
siguiente ejemplo:

G91
G1 X10 Y10 F2400

Comando G92 – Ajustar posición actual


El comando G92 se usa para ajustar el valor actual de alguno de los ejes o funciones a un valor
deseado. Por ejemplo, puedes indicar a la impresora 3D que el filamento se ubique en la posición 0
mm en el extrusor como se muestra a continuación:

G92 E0 ; ajustar posición del filamento en la posición 0 mm.

En este caso, el argumento especifica el tipo de función o movimiento requerido. En vez de E,


pudiste usar las coordenadas X, Y, o Z, para ajustar la posición del extrusor.

Comando G28 – Enviar el extrusor a Home


Lo más recomendable antes de iniciar la impresión 3D es llevar el extrusor hasta la posición
conocida como Home. Esta es la posición en los bordes más lejanos de la impresora y es una
ubicación conocida a nivel de programación.

Con código Gcode se puede hacer iniciar la secuencia de Home con el comando G28, como se
muestra a continuación:

G28

Este es el comando sin el uso de argumentos y totalmente válido para llevar a los 3 ejes a su
posición de Home.

Si queremos hacer Home de 1 o 2 ejes en específico, lo podemos hacer usando argumentos como
se muestra a continuación:

G28 X ; iniciar la secuencia de Home del eje X.

G28 Y Z ; iniciar la secuencia de Home de Los ejes Y y Z.

Comando G0 – Movimiento rápido


Si queremos llevar el extrusor a una posición específica de forma rápida, podemos usar el comando
G0 e indicar las coordenadas del movimiento. Al usar G0, la impresora mueve el extrusor a las
coordenadas indicadas usando la máxima velocidad de viaje de la máquina.

Por ejemplo,

G0 X5 Y10

Comandos G17, G18 y G19 – Establecer planos de circunferencia


Aunque se usan poco, los comandos G17, G18 y G19 te permiten establecer los planos para
circunferencias de tus impresiones tridimensionales. Es decir, cambia el plano de referencia para la
impresión.

G17 establece el plano en los ejes X y Y. En este caso, el círculo va alrededor del eje Z. Este es el
plano predeterminado en todas las impresoras 3D.

G18 establece el plano en los ejes X y Z, mientras que G19 establece el plano en los ejes Y y Z.
Ambos comandos cambian el significado de los parámetros I, j y k para los comandos G2 y G3.

Estos comandos se usan cuando realizar interpolación circular y, para ello, deben estar
acompañados de los comandos G02 y G03.

Usarlos estos comandos en tan simple como se muestra a continuación:

G18

Comandos G20 y G21 – Establecer unidades de medida


Si estás en USA seguro quieres que tus impresiones sean en pulgadas, pero si estás en el resto del
mundo quieres que las medidas de tus coordenadas sean en milímetros.

El comando G20 establece que las medidas sean en pulgadas, mientras que G21 las establece en
milímetros. Sería algo así para pulgadas,

G20

G0 X5 Y13

Así sería para milimetros,

G21

G0 X5 Y13

Los comandos M
Los Comandos M son comandos a nivel de máquina que permiten ejecutar acciones no
geométricas. Por ejemplo, encender o apagar el ventilador, subir o bajar temperatura de la boquilla,
etc. Los comandos M arrancan con una M ( de allí su nombre).

Veamos los comandos M más importantes:

Comandos M104 y M109 – Calentar Extrusor


Cuando queremos calentar el Extrusor para pasar el filamento a través de la boquilla, recurrimos a
los comandos M104 y M109.

El comando M104 inicia el calentamiento del extrusor y al mismo tiempo permite la ejecución de
otras acciones por parte de la impresora 3D. Por ejemplo:

M104 S190 T0 ; Iniciar el calentamiento del Extrusor T0 hasta 190 grados centígrados.

G28 X0 ; enviar todos los ejes a Home, mientras se calienta el Extrusor.

Recordemos que el comando S representa la temperatura deseada en grados centígrados y T se usa


cuando existe más de un extrusor en la impresora.

El comando M109 ejecuta el calentamiento del extrusor pero no permite ejecutar otras actividades
hasta que se alcance la temperatura programada.

M109 S190 T0 ; esperar a que el Extrusor T0 alcance los 190 grados centígrados para poder hacer
alguna otra acción.

Comando M106 – Ajustar Velocidad del ventilador


Para controlar el ventilador que apunta hacia el objeto impreso podemos usar el comando M106 de
la siguiente forma:

M106 S255 ; se ajusta el ventilador a la velocidad máxima.

En este caso, S especifica la velocidad del ventilador y 255 es el valor de velocidad máxima, siendo
255 = 100 % de la velocidad.

En el ejemplo siguiente, la velocidad del ventilador es ajustada a 50% con el 127 (255/2)
acompañando a la S.

M106 S127

Si queremos apagar el ventilador, solo debemos ajustar la velocidad a 0, lo cual significa un 0% de


velocidad.

M106 S0

Comando M112 – Parada de emergencia


Cuando las cosas se salen de control, se puede usar el comando M112 para detener
inmediatamente el proceso de impresión. Los motores y los calentadores se enfrían cuando se
activa este comando.
Comandos M140 y M190 – Calentar la cama
Cuando queremos calentar la cama caliente podemos usar los comandos M140 y M190, los cuales
funcionan de forma similar a los comandos M104 y M109.

Con el comando M140, se iniciar el calentamiento de la plataforma de construcción mientras otros


comandos se ejecutan en paralelo. A continuación se muestra un ejemplo:

M140 S50 ; iniciar el calentamiento de la cama hasta 50 grados centígrados.

G28 ; Llevar los 3 ejes a Home.

Por otro lado, el comando M190 se usa para bloquear cualquier otro comando hasta que se alcance
la temperatura programada. En el ejemplo, a continuación, se muestra como programar el comando
M190:

M190 S50 ; Calentar hasta 50 grados centígrados. Esperar alcanzar esta temperatura para poder
ejecutar algún otro comando.

¿Cómo crear instrucciones G-code?


Todas las impresoras comerciales tienen su propio programa slicer que se encarga de convertir el
modelo 3D y las instrucciones en Gcode. Es un proceso automático realizado por el software y es la
forma recomendada para la mayoría de los proyectos.

En el programa slicer, configuras los parámetros de temperatura, velocidad de ventilador, etc. Todo
lo haces con ventanas fáciles de manejar.

Cuando haces la compilación del código y lo envías a la impresora 3D, el slicer convierte esos
parámetros en comandos M.
El slicer también filetea el modelo 3D (que vino en formato stl) y lo convierte en código G
(Comandos G).
También puedes crear Gcode desde cero como se explica a continuación:

Crear Código Gcode desde cero


Si eres un fanático del DIY o estás creando tu propia impresora 3D, puedes crear tu propio código G
desde cero respetando los comandos asociados al firmware de tu impresora 3D. Recuerda que cada
impresora tiene su propio firmware y cada firmware tiene su propio Gcode.

Para las impresoras Open source RepRap se suele usar el muy popular firmware Marlin. Todas las
impresoras 3D DIY que tienen este firmware respetan los comandos estándares de código G
indicados al principio de este artículo.

Para crear tu código G desde cero solo necesitas un editor de texto como notepad++ y empezar a
escribir las instrucciones y comandos para el firmware de tu impresora 3D.
Nota: no recomendamos realizar la creación de Gcode desde cero a menos que estés muy
especializado en programación de lenguaje máquina. Ten en cuenta que un comando mal colocado
puede causar daños a tu impresora.
Slicers como Simplify3D, Cura o Slic3r tienen herramientas para la edición y prueba de las
instrucciones que vas creando paso a paso

¿Cómo editar un archivo Gcode?


Para editar un archivo de código G necesitas usar un editor de texto como Notepad++. La gente de
Simplify3D ofrecen un archivo XML que permiten remarcar la sintaxis del código. En los siguientes
enlaces puedes descargar el Notepad++ y la el archivo creado por Simplify3D.

https://notepad-plus-plus.org/downloads/
https://www.simplify3d.com/public/3DP-Gcode-Styling.xml
Comandos Gcode Marlin
El lenguaje máquina que usa Marlin para el control de las impresoras 3D es un derivado de gcode y,
por ende, su parecido a inminente. Veamos los códigos gcode para el firmware Marlin más
importantes, a continuación:

Todos los ejemplos fueron tomados desde la página oficial del firmware Marlin.
G0, G1 – Movimiento Lineal
Permite agregar un movimiento lineal al conjunto de movimientos que ya se encuentra en la cola de
ejecución.

Ejemplo
G0 X12 ; mover hasta 12 mm en el eje X

G0 F1500 ; ajustar el feedrate a 1500 mm / minuto

G1 X90.6 Y13.8 ; mover hasta 90.6 mm sobre el eje X y 13.8 mm sobre el


eje Y

G2, G3 – Movimiento circular o de arco


Por un lado, G2 inserta un movimiento en forma de arco en el sentido de las agujas del reloj,
mientras que G3 agrega un movimiento en el sentido contrario al de las agujas del reloj.

Ejemplos
G2 X125 Y32 I10.5 J10.5 ; mover en un arco en el sentido de las agujas
del reloj desde la posición actual hasta [125, 32] con un desplazamiento
desde el centro de (10.5, 10.5).

G3 X125 Y32 I10.5 J10.5

G4 – Pausa
Ejecuta un comando de pausa de todos lo comandos por un periodo de tiempo.
Ejemplo
G4 P500 ; Pausar por 1/2 segundo

G10 – Retraer Filamento


Se encarga de retraer el filamento de acuerdo con los ajustes del código M107.

Ejemplo
G10 ; Retraer

G12 – Limpiar la boquilla


Inicia el proceso de limpieza de la boquilla con alguno de los siguientes patrones de limpieza.

• Trazos rectos.
• Zigzag.
• Trazos circulares.
Ejemplos
G12 ; trazos rectos (default)

G12 P1 S1 T3 ; limpieza en zigzag con 3 triángulos

G12 P2 S1 R10 ; limpieza en forma circular con radio de 10 mm

G28 – Auto Home


Ejecuta el Home de uno o todos los ejes enviándolos hasta sus topes o puntos de origen.

Ejemplos
G28 ; ir todos los ejes al punto de origen

G28 X Z ; ir a Home solo los ejes X y Z

También podría gustarte