Comandos de código G en la impresión 3D
Código G o Gcode. Seguramente habrás oído este término antes o lo habrás leído en el glosario si ya te has dedicado a la impresión 3D. En este artículo te diré qué es un G-Code y para qué se utiliza en la impresión 3D. También te mostraré qué comandos G-Code son importantes para ti si quieres empezar a imprimir en 3D o ya has empezado.
G-Code-¿Qué es esto y para qué se utiliza?
Las impresoras 3D no pueden hacer mucho con los modelos 3D en formatos .stl, .obj, etc., porque almacenan la forma geométrica, pero no cómo la impresora 3D debe manejar esa forma. «¿A qué velocidad debe imprimirse el modelo en la capa número 5?» y otras preguntas similares deben ser respondidas por la impresora 3D. Las respuestas están en el código G, que es el lenguaje de la impresora 3D. Sólo con un código G la impresora sabe lo que tiene que hacer.
El slicer traduce el modelo 3D al código G y también inserta datos relevantes para la máquina. Estos fueron definidos exactamente para la impresora 3D utilizada. Esto significa que el G-Code que creó para su kit de impresora 3D como la impresora Creality CR-10 no funcionará para su amigo con una Ultimaker 2.
Para hacer esto, los ajustes relevantes para la máquina tendrían que ser revisados. Estos incluyen, por ejemplo, el tamaño de la cama de impresión. Si este ajuste es incorrecto, la impresora comenzará en el centro de su cama de impresión y tal vez incluso fuera de ella con su amigo.
Por lo tanto, es ventajoso tener un conocimiento básico de los códigos G con el fin de entender los códigos incorrectos y mejorarlos si es necesario. Tenga en cuenta que algunos comandos comienzan con la letra G, mientras que otros comienzan con una M.
Los comandos G-Code de uso frecuente y su significado
A continuación le mostraré lo que dice el respectivo comando G-Code, qué individualizaciones son posibles y cómo puede ser ese comando G-Code.
G1-El comando de movimiento lineal
Su impresora 3D ejecuta el comando G1 la mayoría de las veces. Por eso no está mal echarle un vistazo más de cerca. G1 le dice a tu impresora que se mueva en línea recta hacia el siguiente punto. Puedes usar este comando para controlar uno o más ejes.
Nota: El extrusor se controla como cualquier otro eje. Por lo tanto, puede controlar el flujo de material (extrusión) y la retracción del filamento.
Valores:
Si especifica X, Y y Z, puede indicarle a la impresora a qué puntos moverse. Tenga en cuenta, sin embargo, que estos comandos se ejecutan según el tipo de posicionamiento (absoluto/relativo) y, por lo tanto, o bien se mueven a la coordenada exacta o a la distancia del punto actual.
Si añade un comando E, puede determinar si la impresora 3D también debe extrudir a lo largo del camino, y si es así, cuánto. Tenga en cuenta que la longitud de extrusión se refiere al material que se presiona en la boquilla por el alimentador. Así que si le dices a tu impresora que extruya 10mm, la longitud que sale de la matriz no es de 10mm, sino mucho mayor. Esto se debe a que el filamento tiene un diámetro de 1,75mm o 2,85mm y el troquel suele tener sólo 0,4mm. Por esta razón los valores E de la cortadora son menores que la distancia que la impresora tiene que salvar.
El comando F le dice a su impresora a qué velocidad debe moverse. Esta velocidad se da siempre en mm/min, aunque haya seleccionado mm/s en la cortadora. Así que no se sorprenda si el código G contiene los valores convertidos.
Muchas impresoras 3D sólo necesitan los valores para los ejes que realmente deben moverse. Si quiere que sólo se mueva el eje X, añada X y un valor F para la velocidad.
Ejemplos:
G1 X0 Y0 F3000 | Conduzca en la cama de calentamiento al punto X=0, Y=0 a una velocidad de 3000 mm/min. |
G1 Z10 F1000 | Mover el eje Z al valor Z=10mm con una velocidad de 1000 mm/min. |
G1 X30 E10 F1600 | Presiona filamento de 10mm en la boquilla mientras conduces en la cama de calentamiento hasta el punto X=30 mm a una velocidad de 1600 mm/min. |
G4 pausa la presión durante un tiempo determinado
Con el comando G4 tienes la posibilidad de pausar tu impresora durante un tiempo determinado.
Valores:
P000 – La impresora espera un tiempo determinado en milisegundos.
S000 – La impresora espera un tiempo determinado en segundos (este comando sólo se aplica a Repetier, Marlin, RepRap Firmware y Smoothieware)
Ejemplos:
G4 P500 ; Esperar 500 milisegundos y no hacer nada en el tiempo – Durante este tiempo todos los parámetros de la impresora como la temperatura del lecho térmico, etc. se mantienen para que no tengas que preocuparte de que tu impresión se estropee.
G21-cambio de unidades en milímetros
No debería ocurrir tan a menudo que tengas que usar este comando, porque casi todas las impresoras 3D trabajan en la unidad por defecto. Sin embargo, no está de más que tengas en cuenta este código si parece que tu impresora está configurada en pulgadas.
Valores:
Ninguna
Ejemplo:
G21
G28-Toma el homing a través de
Este comando aspira a que tu impresora 3D realice el llamado homing. Al realizar el homing, el cabezal de impresión vuelve a su «punto cero», que ha alcanzado cuando ha llegado a los topes finales de todos los ejes (X, Y y Z). Esto es importante porque el cabezal de impresión tendrá el mismo punto de partida para cada impresión. Las trayectorias en el código G se definen a partir de este punto de partida. Sin esta referencia a un punto específico, la impresión 3D no sería razonable. Al final de una impresión, este comando también se ejecuta a menudo. Esto facilita la eliminación de los modelos impresos en 3D.
Valores:
Si no se especifican valores, la impresora se ejecutará hasta los topes finales de los tres ejes. Sin embargo, también puede elegir a qué ejes moverse simplemente añadiendo las letras X, Y o Z.
Ejemplos:
G28 | Homing para todos los ejes (X, Y y Z) |
G28 X Y | Homing para los ejes X e Y |
G28 Z | Homing sólo para el eje Z |
G90 y G91-Ajuste el modo de posicionamiento (Positioning Mode).
Su impresora puede realizar el posicionamiento de forma absoluta o relativa:
– Posicionamiento absoluto: Aquí le das a tu impresora 3D la coordenada exacta para X, Y o Z a la que debe moverse. Para ello se utiliza el comando G90.
– Posicionamiento relativo: Esto le dice a tu impresora 3D a qué distancia debe moverse desde su posición actual (X,Y,Z) en la dirección (X,Y,Z). Esto funciona con el comando G91.
– Probablemente encontrará posicionamiento absoluto en sus códigos G más a menudo, porque el slicer ya conoce las coordenadas exactas de los tres ejes y las utiliza para determinar la posición absoluta.
Valores:
Ninguno.
Ejemplos:
G90 | Utilizar el posicionamiento absoluto para los tres ejes |
G1 X10 F3000 | Conducir en la cama de calentamiento al punto X=10mm con una velocidad de 3000 mm/min (F3000) |
G1 X20 F3000 | Conduce en la cama de calentamiento al punto X=20mm con una velocidad de 3000 mm/min. |
G91 | Utilizar el posicionamiento relativo para los tres ejes |
G1 X10 F3000 | Desplazarse desde la posición actual en la cama de calentamiento 10mm hacia la derecha con una velocidad de 3000 mm/min. |
G1 X10 F3000 | Desplazarse otros 10mm hacia la derecha desde la posición actual en la bancada de calentamiento a una velocidad de 3000 mm/min. |
G92-Determinación de la posición actual (Current Position)
Utilice este comando si desea definir la posición actual de sus ejes. De esta manera puede compensar desviaciones en ciertos ejes. Este comando se suele utilizar junto con el extrusor, es decir, el eje E, para determinar la posición del filamento. Puede sobrescribir la posición actual del filamento y todos los demás comandos relacionados con el extrusor tomarán esta posición como punto de referencia.
Valores:
Especifique la coordenada absoluta para el eje que desea sobrescribir con el comando G92. Esto funciona para X, Y, Z y también E. Si omite un eje, su valor no se sobrescribirá con la posición actual.
Ejemplos:
G92 E0 | Establece la posición actual del filamento en E=0 en el extrusor. |
G1 E10 F800 | Filamento extruido con una longitud de 10mm |
Comandos M104 y M109 para el ajuste de la temperatura del extrusor
Estos dos comandos G-Code se utilizan para establecer el ajuste de la temperatura del extrusor.
– M104: Este comando comienza con el calentamiento del extrusor y permite la ejecución directa de otros comandos.
– M109: Este comando espera hasta que se alcance la temperatura deseada en el extrusor. Sólo entonces se pueden ejecutar otros comandos.
El comando G-Code M109 se puede ver probablemente más a menudo, de lo contrario la presión puede comenzar antes de que se alcance la temperatura deseada.
¿Son los códigos G para cada impresora 3D así?
Aunque M104 y M109 se utilizan muy a menudo, también hay casos en los que se utilizan otros comandos. Esto sucede, por ejemplo, cuando la impresora lee códigos .x3g en lugar de archivos .gcode. Entonces se utiliza M133 en lugar de M109. Algunas impresoras 3D (Flashforge Dreamer, Dremel o similares) utilizan entonces el comando M6. Esto depende del firmware utilizado.
Valores:
Con el valor S puedes establecer la temperatura del extrusor en grados centígrados (S190= 190 grados centígrados).
El valor T se utiliza mejor si tu impresora 3D tiene varios extrusores y quieres establecer una determinada temperatura en el valor deseado. Normalmente T0 es el extrusor derecho, mientras que T1 describe el extrusor izquierdo.
Ejemplos:
M104 S190 T0 | Inicie el calentamiento de T0 a 190 grados Celsius. |
G28 X0 | Realizar el homing para el eje X mientras el extrusor sigue calentando. |
M109 S190 T0 | Espere hasta que T0 haya alcanzado la temperatura de 190 grados Celsius, para poder ejecutar otros comandos. |
Control de velocidad del ventilador M106 (Set Fan Speed)
Con el comando M106 puede ajustar la velocidad del ventilador del componente de su impresora 3D. Ten en cuenta que tu impresora puede tener también un ventilador que refrigere el extrusor. Por lo tanto, primero debes ver si tienes el ventilador correcto. También es posible que aún no haya instalado un ventilador de componentes.
Valores:
Aquí el valor S determina la velocidad del ventilador, donde 0=off y 255=100% de velocidad media.
Ejemplos:
M106 S255 | Ajuste la velocidad del ventilador al 100%. |
M106 S127 | Ajuste la velocidad del ventilador al 50% aproximadamente. (255/2=127,5) |
M106 S0 | Apague el ventilador completamente. |
Códigos M140 y M190-G Comandos para el ajuste de la temperatura de la cama de calentamiento (Comandos de calentamiento de la cama)
Con los comandos M140 y M190 se determina el ajuste de la temperatura de la cama de calentamiento de forma análoga a los comandos M104 y M109, como se ha descrito anteriormente.
– M140: Este comando comienza calentando la cama de calentamiento y le permite ejecutar otros comandos directamente.
– M190: Este comando espera hasta que se alcance la temperatura deseada de la cama de calentamiento. Sólo entonces se pueden ejecutar otros comandos.
Tenga en cuenta que el calentamiento de la cama de calentamiento puede llevar algún tiempo. No se sorprenda si su impresora 3D hace una pausa repentina durante la impresión (en M190) hasta que continúe.
A menudo el comando M140 se coloca al principio del código G para poder ejecutar los otros comandos como el homing, etc.. Sin embargo, antes de que comience la presión, se debe instalar un comando M190 para asegurar una temperatura estable para la primera capa.
¿Esto se aplica a cualquier impresora 3D?
Al igual que con los comandos M104 y M109, esto también depende del firmware utilizado. Si tu impresora 3D lee archivos .x3g entonces se utiliza M134 en lugar de M190 y las impresoras Flashforge Dreamer, Dremel o similares utilizan M7.
Valores:
Con el valor S puedes establecer la temperatura de la cama de calentamiento en grados Celsius (S30= 30 grados Celsius). Dado que la mayoría de las impresoras 3D sólo tienen un lecho de calentamiento, no es necesario realizar más ajustes, etc..
Ejemplos:
M140 S50 | Comience calentando el lecho de calentamiento a 50 grados Celsius. |
G28 | Realizar el homing para todos los ejes y simultáneamente calentar la cama de calentamiento a 50 grados Celsius. |
M190 S50 | Esperar hasta que se alcance la temperatura de 50 grados Celsius para la cama de calentamiento, para luego poder ejecutar otros comandos. |