Cómo utilizar los scripts de G-code de Simplify3D

Compartir en tus redes sociales:
Cómo utilizar los scripts de G-code de Simplify3D

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.

Cómo utilizar los scripts de G-code de Simplify3D.
Video que muestra la diferencia entre usar coordenadas absolutas (G90) y relativas (G91)

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-CodeSintaxisComentarios
G90; Usamos coordenadas absolutas en todos los ejes M83; Utilizamos coordenadas relativas en el extrusor BienAquí NO anulamos el M83
M83; Utilizamos coordenadas relativas en el extrusor G90; Usamos coordenadas absolutas en todos los ejes MalAquí  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.

Cómo utilizar los scripts de G-code de Simplify3D

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.

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.

Cómo utilizar los scripts de G-code de Simplify3D

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
Cómo utilizar los scripts de G-code de Simplify3D

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
Cómo utilizar los scripts de G-code de Simplify3D

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.

Cómo utilizar los scripts de G-code de Simplify3D

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.

https://youtu.be/Y64z4WdjR2g

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”}
Cómo utilizar los scripts de G-code de Simplify3D

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!

Compartir en tus redes sociales: