Está en la página 1de 18

Comandos G-code para Impresoras 3D – Tutorial

2020

Las impresoras 3D son máquinas basadas en microprocesadores, así como lo son las
computadoras o teléfonos celulares de hoy en día. Todos los dispositivos basados en
microprocesadores tienen un lenguaje máquina específico basados en unos y ceros (lenguaje
binario).

Como este lenguaje es poco entendible por nosotros y es específico para cada
procesador, no es muy práctico trabajarlo directamente. Lo mejor es un lenguaje un
poco menos complejo y más genérico.

El lenguaje de programación de control numérico (CNC programming) se ha consolidado


como el estándar en el mundo de la fabricación automatizada. Existen diversos tipos de
lenguajes de control numérico y Gcode es uno de los populares debido a su menor
complejidad y pequeño tamaño.

¿Que es G-code? Utilizamos cookies...



Ok Leer más
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.

Utilizamos cookies...
2 G1 Z10 F1200 ; mover el eje Z a la posición Z=10 mm, a una velocidad de 1200 mm/min. 
Ok Leer más
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.
Utilizamos cookies...

Ok Leer más
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 Gcode

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. Utilizamos cookies...

Ok Leer más
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.

Utilizamos cookies...

Ok Leer más
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 quecookies...
Utilizamos el comando es lineal, como pasa con los ejes
X, Y y Z.

Ok Leer más
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
Utilizamos cookies...
muestra a continuación: 
Ok Leer más
G1 X30 E10 F1800 ; pasar 10 mm de filamento a través de la boquill

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. Utilizamos cookies...

Ok Leer más
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,


Utilizamos cookies...
pudiste usar las coordenadas X, Y, o Z, para ajustar la posición del extrusor. 
Ok Leer más
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,

Utilizamos cookies...

G0 X5 Y10 Ok Leer más
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

Utilizamos cookies...

Ok Leer más
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

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

Utilizamos cookies...

Ok Leer más
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

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
Utilizamos cookies...

Ok Leer más
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 cen

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

¿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.

Utilizamos cookies...
En el programa slicer, configuras los parámetros de temperatura, velocidad de ventilador, etc.

Ok Leer más
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.
Utilizamos cookies...

Ok
https://notepad-plus-plus.org/downloads/ Leer más
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 sobr

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 agu

Utilizamos cookies...
G3 X125 Y32 I10.5 J10.5

Ok Leer más
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


Utilizamos cookies...

Ok Leer más
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

Contenido 

Utilizamos cookies...

Ok Leer más

También podría gustarte