Cómo utilizar los scripts de G-code de Simplify3D.
Hoy hablaremos de un tema un poco más avanzado en el uso de Simplify3D, un tema que muy pocos explican, ya que son opciones para usuarios más experimentados en el mundo de la impresión 3D. Se trata de los Scripts de G-Code de Simplify3D.
¿Que son los G-Code Scripts de un Slicer?
Estos son secuencias de comandos, en nuestro caso en el lenguaje G-Code, el cual es interpretado por la impresora 3D para realizar determinadas acciones.
Los Slicer son los encargados de generar el G-Code en función a la configuración de la impresión y el modelo 3D.
Con los Scripts podemos ejecutar funciones adicionales, por ejemplo, indicarle a la impresora que enfrié la extrusora al finalizar la impresión 3D.
¿Qué es el G-Code?
Es un lenguaje de programación de control numérico, el cual es utilizado principalmente por máquinas y herramientas de manufactura asistidas por computador como máquinas de CNC e impresoras 3D.
Para las impresoras, las instrucciones en G-Code contienen toda la información de impresión como, por ejemplo: Velocidad de impresión, cuanto filamento será extruido, temperatura de la cama caliente, altura de las capas y muchísima más información.
Todos estos parámetros son generalmente configurados en un Slicer software.
El G-Code se lee y ejecuta en orden, línea a línea, desde arriba hacia abajo.
Para aprender y conocer sobre los términos más utilizados en la impresión 3D, te recomendamos que visites nuestro artículo Términos más utilizados de impresión 3D.
Los comandos G-Code más comunes
G28 – Ir al origen
Con G28 le indicamos a la impresora que vaya al origen, también podemos especificar exactamente que eje queremos que vaya al origen, ejemplo:
G28; Enviamos al origen todos los ejes G28 X Y; Enviamos al origen el eje X y el eje Y G28 Z; Enviamos al origen el eje Z solamente |
G90 y G91 – Coordenadas absolutas o relativas para los ejes y la extrusora
Con estos códigos le indicamos a la impresora si utilizar coordenadas absolutas o relativas, esto se puede ir alternando y cambiando en cualquier momento o lugar dentro del G-Code.
G90; Utilizamos coordenadas absolutas en todos los ejes, incluyendo la extrusora. G91; Utilizamos coordenadas relativas en todos los ejes, incluyendo la extrusora. |
Con las coordenadas absolutas nos movemos a una determinada posición en la cama.
Con las coordenadas relativas, nos moveremos en función a la posición que estemos en un momento determinado.
Es decir, si por ejemplo estamos en la coordenada X10, y nos queremos mover a la coordenada X20, podemos hacerlo de las siguientes dos formas.
Con coordenadas absolutas:
Partiendo de que estamos en X10
G90; Usamos coordenadas absolutas en todos los ejes G1 X20; Nos movemos a X20 G1 X10; Regresamos a X10 |
Con coordenadas relativas:
Partiendo de que estamos en X10
G91; Usamos coordenadas relativas en todos los ejes G1 X10; Nos movemos a X20 G1 X-10; Regresamos a X10 |
El siguiente video podría ayudarte a comprender mejor la diferencia entre usar coordenadas absolutas o relativas.
G1 – Movimiento Lineal
Con este comando le indicamos a la impresora que realice un movimiento lineal en cualquiera de los ejes o la extrusora.
Se puede realizar de manera conjunta o individual.
Veamos unos ejemplos asumiendo que estamos trabajando con coordenadas absolutas (G90):
G1 X10 Y10; Movemos X y Y a las coordenadas X 10mm y Y 10mm G1 Z10; Movemos Z a la coordenada 10mm G1 E5; Extruimos 5mm de filamento G1 E-2; Retraemos 2mm de filamento G1 X30 E10; Nos movemos a la coordenada X 30mm y extruimos 10mm de filamento, todo esto al mismo tiempo |
NOTA: Usualmente lo más cómodo es trabajar las extrusiones y retracciones con coordenadas relativas
Es necesario que sepas que también podemos indicar la velocidad de los movimientos utilizando la letra “F”, en caso de que no indiques una velocidad (como en los ejemplos anteriores), se utilizará la velocidad ya preestablecida en líneas anteriores del G-Code.
La velocidad, se suele indicar en mm/min (milímetros por minutos). A continuación, veamos unos ejemplos.
G1 X10 Y10 F2400; Movemos X y Y a las coordenadas X 10mm y Y 10mm a una velocidad de 2400mm/min G1 Z10 F1500; Movemos Z a la coordenada 10mm a una velocidad de 1500mm/min G1 E5 F1000; Extruimos 5mm de filamento a una velocidad de 1000mm/min |
G92 – Ajustar a la coordenada actual
Este comando te sirve para asignarle a la coordenada actual de algunos de tus ejes, un nuevo valor de posición (configurar un offset). Este comando es útil cuando trabajamos con coordenadas absolutas (G90) el extrusor.
Supongamos que partimos con la coordenada de la extrusión en cero, que estamos con coordenadas absolutas (G90), y ahora queremos extruir 5mm de filamento, para ello enviamos el siguiente código.
G1 E5 F1000; Extruimos 5mm de filamento a una velocidad de 1000mm/min |
Bien, supongamos que ahora queremos extruir 2mm más de filamento, en este caso no podríamos escribir simplemente G1 E2, ya que estamos utilizando coordenadas absolutas, por ende, la posición actual de la extrusora es 5mm, ya no es cero cómo al comienzo.
Por tal motivo, si enviamos ahora el código G1 E2, estaríamos realmente ejecutando una retracción de 3mm, ya que 5mm-2mm = 3mm.
Hay dos maneras de poder realizar otra extrusión de 2mm utilizando coordenadas absolutas (G90).
La primera es simplemente enviar el código G1 E7, ya que antes estábamos en la posición 5mm, y ahora queremos extruir dos milímetros más, quedaría 5mm+2mm = 7mm. Pero ¿Y si no conocemos la posición anterior?
Aquí entra en juego este comando del que hacemos mención (G92), logrando ajustar la posición actual del extrusor como si este fuese el nuevo origen. Veamos un ejemplo completo.
G1 E5 F1000; Extruimos 5mm de filamento a una velocidad de 1000mm/min G92 E0; Ajustamos la posición actual del extrusor como el nuevo origen o cero (0) G1 E2 F1000; Extruimos 2mm de filamento a una velocidad de 1000mm/min |
Por esta razón es que anteriormente te comentábamos que era un poco más fácil trabajar las extrusiones y retracciones con coordenadas relativas.
Si quieres trabajar solamente las coordenadas de la extrusora de modo relativo, y los demás ejes en modo absoluto, los siguientes códigos que explicaremos te ayudarán.
M82 y M83 – Coordenadas absolutas o relativas sólo para la extrusora
Es necesario que hayas aprendido cómo funcionan los comandos anteriores para que puedas comprender sin mucha dificultad y explicación los siguientes dos comandos.
M82; Permite que la extrusora trabaje en modo absoluto independientemente del modo en que estén los otros ejes. M83; Permite que la extrusora trabaje en modo relativo independientemente del modo en que estén los otros ejes. |
De esta manera podrías ajustar los ejes X, Y y Z en modo absoluto y la extrusora en modo relativo. Ya que suele ser un poco más fácil trabajar las extrusiones y retracciones en modo relativo.
NOTA: Debes saber que al utilizar G90 o G91, queda anulado el M82 o M83.
Veamos un ejemplo de cómo utilizar adecuadamente coordenadas absolutas (G90) para los ejes X, Y y Z. Pero, utilizando coordenadas relativas para el extrusor.
G-Code | Sintaxis | Comentarios |
G90; Usamos coordenadas absolutas en todos los ejes M83; Utilizamos coordenadas relativas en el extrusor | Bien | Aquí NO anulamos el M83 |
M83; Utilizamos coordenadas relativas en el extrusor G90; Usamos coordenadas absolutas en todos los ejes | Mal | Aquí Sí anulamos el M83 |
Recuerda, cada vez que utilices el comando G90 o G91, estas anulando el M82 y M83, Por ende, debes volver a enviar el comando si quieres que tenga efecto.
Veamos un ejemplo real.
G90; Usamos coordenadas absolutas en todos los ejes M83; Utilizamos coordenadas relativas en el extrusor G28; Envía al origen todos los ejes G1 Z0.24 F3000; Eleva la boquilla a 0.24mm G1 X4.0 F2000; Nos movemos en X a 4mm G1 Y120 E10 F600; Extruye 10mm de filamento mientras nos movemos a 120mm en Y a una velocidad de 600mm/min G1 Y150 F5000; Nos movemos a 150mm en Y a una velocidad de 5000mm/min para intentar limpiar la boquilla |
M104 y M109 – Comandos para controlar la temperatura del extrusor
Ambos comandos te permiten calentar la extrusora hasta una determinada temperatura, la diferencia es la siguiente, con M104 puedes indicar la temperatura, y seguir ejecutando los comandos posteriores a este.
Con M109, esperamos a que la extrusora alcance la temperatura deseada antes de ejecutar los comandos posteriores.
En impresoras 3D que leen archivos x3g, es probable que debas usar M133 en vez de M109 para estabilizar la temperatura de la extrusora.
Algunas variantes de las impresoras FlashForge Dreamer o Dremel, utilizan M6 en vez de M109.
La temperatura se indica en grados Celsius, y del lado izquierdo de la temperatura colocamos una letra “S”.
En caso de que tengas múltiples extrusoras, con la letra “T” indicamos cual extrusora queremos calentar. Generalmente se utiliza “T0” para la extrusora derecha y “T1” para la extrusora izquierda.
Si posees una sola extrusora, puedes omitir este parámetro.
Veamos unos ejemplos:
M104 S210; Calentamos la extrusora a 210 grados Celsius M104 S210 T0; Calentamos la extrusora T0 (Generalmente la del lado derecho) a 210 grados Celsius M109 S210; Calentamos la extrusora a 210 grados Celsius, y esperamos hasta que alcance la temperatura deseada antes de ejecutar más comandos M109 S210 T1; Calentamos la extrusora T1 (Generalmente la del lado izquierdo) a 210 grados Celsius, y esperamos hasta que alcance la temperatura deseada antes de ejecutar más comandos |
M140 y M190 – Comandos para controlar la temperatura de la cama
El argumento y la explicación es la misma que para M104 y M109, pero en este caso controlamos es la temperatura de la cama.
Con M190 esperamos alcanzar la temperatura deseada y con M140 no esperamos.
Si tu impresora 3D lee archivos 3xg, puedes usar M134 en vez de M190.
En el caso de las variantes de las impresoras FlashForge Dreamer o Dremel, utilizan M7 en vez de M190.
La temperatura se indica en grados Celsius, y del lado izquierdo de la temperatura colocamos una letra “S”. A continuación, te mostraremos unos ejemplos.
M140 S70; Calentamos la cama a 70 grados Celsius M190 S70; Calentamos la cama a 70 grados Celsius, y esperamos hasta que alcance la temperatura deseada antes de ejecutar más comandos |
M106 – Comando para controlar la velocidad del ventilador de capa
Con este comando podemos decidir qué velocidad queremos que tenga el ventilador de capa.
Para este comando se utilizan valores desde 0 hasta 255, donde “0” es apagado, y “255” es la velocidad máxima.
Este comando va acompañado de una letra “S” del lado izquierdo.
Veamos unos ejemplos:
M106 S255; Ajustamos el ventilador de capa a su máxima velocidad M106 S127; Ajustamos el ventilador de capa a una velocidad media, aproximadamente al 50%. M106 S0; Apagamos por completo el ventilador de capa. |
M400 – Esperamos a que todos los movimientos y comandos se hayan ejecutado
Este comando sirve para esperar a que los movimientos y comandos previos hayan finalizado antes de ejecutar un próximo comando.
Veamos un ejemplo:
G1 Y140 F2400; Movemos Y a 140mm, a una velocidad de 2400mm/min M400; Espera que todos los movimientos se hayan completado G1 X220 F2400; Movemos X a 220mm, a una velocidad de 2400mm/min |
G4 – Agregamos un “Delay” o espera
Con este comando podemos agregar un delay o pausa durante un determinado tiempo, antes de continuar ejecutando los siguientes comandos.
Si utilizamos la letra “P”, el tiempo se indica en milisegundos (ms), al utilizar la letra “S”, el tiempo se indica en segundos (s).
Observa los siguientes ejemplos.
G1 Y140 F2400; Movemos Y a 140mm, a una velocidad de 2400mm/min G4 P500; Hacemos una pequeña pausa de 500 milisegundos antes de ejecutar el siguiente comando G1 X220 F2400; Movemos X a 220mm, a una velocidad de 2400mm/min G4 S2; Hacemos una pequeña pausa de 2 segundos antes de ejecutar el siguiente comando G28; Enviamos al origen todos los ejes |
M18, M48 – Comando para desactivar los motores
Ambos comandos en teoría realizan la misma función, la cual es desactivar los motores a pasos para que puedas moverlos manualmente.
En caso de que un código no te funcione, prueba con el otro.
En este comando podemos indicar exactamente cual eje queremos desactivar. Veamos unos ejemplos.
M18; Desactiva los todos los motores M18 X; Desactivar el motor del eje X M18 X Y; Desactiva los motores del eje X y el eje Y |
Agregar comentarios dentro del G-Code
Utilizando el símbolo punto y coma (;) podemos agregar comentarios a las líneas del código para orientarnos dentro del mismo.
Estos comentarios no son interpretados como comandos.
Esto lo hemos venido mostrando en todos los ejemplos anteriores.
Como encontrar más comandos G-Code
Te dejaremos unos enlaces donde se muestran más comandos en lenguaje G-Code.
Es importante que sepas que según la impresora que tengas estos comandos pudiesen variar.
- https://marlinfw.org/docs/gcode/G000-G001.html
- https://reprap.org/wiki/G-code
- https://duet3d.dozuki.com/Wiki/Gcode#Section_Introduction
Las Scripts Tab
En esta es la sección es donde colocaremos los Scripts que queremos que se ejecuten. Los Scripts Tab más utilizados son Starting Script y Ending Script. La opción para colocar estos Scripts lo encontrarás en la siguiente pestaña.
A continuación, te explicaremos cada una de ellas.
Starting Script
En esta sección puedes colocar todo el código que quieras que se ejecute antes de comenzar la impresión 3D.
Normalmente se envía al origen todos los ejes antes de imprimir, además, se suele mandar también a extruir un poco de filamento antes de iniciar la impresión.
A continuación, te mostraremos un ejemplo del código que utilizamos nosotros.
G28 ; Envía al origen todos los ejes G1 Z0.24 F3000 ; Eleva la boquilla a 0.24mm G92 E0 ; Resetear la posición del extrusor G1 X4.0 F2000 ; Nos movemos en X a 4mm G1 Y120 E10 F600 ; Extruye 10mm de filamento mientras nos movemos a 120mm en Y a una velocidad de 600mm/min G1 Y150 F5000 ; Nos movemos a 150mm en Y a una velocidad de 5000mm/min para intentar limpiar la boquilla |
Layer Change Script
En esta sección podemos colocar el código que será ejecutado cada vez que hacemos un cambio de capa.
La utilidad que le damos nosotros es para tomar las fotos y crear nuestros Time-Lapse de las impresiones.
Te mostraremos un ejemplo:
M400 ; Espera que todos los movimientos se hayan completado G1 Y140 F2400 ; Mover Y para posicionar la foto M400 ; Espera que todos los movimientos se hayan completado G1 X228 F3400 ; Mover X para enfocar la foto (tocamos un interruptor con la extrusora) M400 ; Espera que todos los movimientos se hayan completado G4 P1000 ; esperamos 1000 milisegundos a que enfoque la foto G1 X231 F3400 ; mover X para tomar la foto (tocamos un interruptor con la extrusora) M400 ; Espera que todos los movimientos se hayan completado G4 P1500 ; esperamos 1500 milisegundos a que tome la foto G1 X120 F3400 ; mover X al centro de la cama M400 ; Espera que todos los movimientos se hayan completado |
Retraction Script
En esta sección podemos colocar el código que será ejecutado cada vez que hagamos una retracción.
Tool Change Script
En esta sección podemos colocar el código que será ejecutado cada vez que cambiemos de un extrusor a otro.
Obviamente esto solo aplica para las impresoras con múltiples extrusoras.
Si tienes una sola extrusora aquí no se suele colocar nada.
Si tienes dos o más extrusoras, y te basta con las opciones que trae por defecto Simplify3D para trabajar con múltiples extrusoras, pues no es necesario colocar algún G-Code en este Script.
No es obligatorio colocar un código aquí cuando utilizas más de una extrusora, pero usuarios más avanzados podrían colocar un G-Code especifico que les ayude a trabajar mejor con múltiples extrusoras.
Ending Script
En esta sección puedes colocar todo el código que quieras que se ejecute después de finalizar la impresión 3D.
Generalmente se manda a apagar la extrusora, la cama y el ventilador de capa, se puede mandar también al origen al eje X, y mover la cama un poco hacia adelante en dirección del eje Y.
Adicional a esto, se suele mandar a desactivar los motores a pasos.
G91 ; Usamos coordenadas relativas G1 Z0.6 ; Elevamos la extrusora 0.6mm G90 ; Usamos coordenadas absolutas G28 X ; Enviamos al origen el eje X G1 Y170 ; Movemos la cama hacia adelante a 170mm en Y M106 S0 ; Apagamos el ventilador de capa M104 S0 ; Apagamos la extrusora M140 S0 ; Apagamos la cama caliente M84 ; Desactivamos los motores a pasos |
Opciones dentro de Post Processing
Export file format
Permite seleccionar el formato en que se exportará el archivo, generalmente esta opción se deja en “Standard G-Code”, al menos que tengas una impresora que requiera otro formato.
Por ejemplo, algunas impresoras 3D MakerBot pueden utilizar archivos tipo xg3.
Add celebration to end of build
Con esta opción podemos agregar una música de celebración al concluir la impresión, solo es posible activar esta opción cuando se exporta en archivo x3g.
A continuación, te dejaremos el enlace de un video de ejemplo que conseguimos en YouTube.
Additional Terminal Commands
Esta herramienta, raramente un usuario promedio se verá en la necesidad de utilizarla.
Es para opciones avanzada, por ejemplo, supongamos que tu impresora 3D no interpreta la letra “E” como extrusor, en cambio, necesita utilizar la letra “A”. En este recuadro podríamos especificarle a Simplify3D que reemplace las letras “E” por letras “A” al momento de generar el G-Code. Esto se haría de la siguiente manera.
{REPLACE “E” “A”} |
Conclusiones sobre los comandos de G-Code
Ya conoces los Scripts de Simplify3D. Además, también te dejamos los comandos G-Code más utilizados.
En los enlaces plasmados en este mismo artículo también podrás encontrar más comandos.
Recuerda que para algunas impresoras 3D los comandos pudiesen variar.
Te gusto?
Nuestra web se mantiene gracias a la colaboración de personas como tú. Si encuentras nuestro contenido útil y quieres ayudarnos a seguir ofreciéndolo, invitamos un Tecito. Al hacerlo, estarás contribuyendo al mantenimiento y mejora de nuestro sitio. ¡Gracias por tu colaboración!