Haz que tu impresora 3D funcione a la perfección con expulsión automática, colas de impresión y bucles infinitos

Haz que tu impresora 3D funcione a la perfección con expulsión automática, colas de impresión y bucles infinitos

¡Empecemos ya! Si tienes una impresora Klipper, esto es muy fácil, porque estas funciones están incorporadas directamente en el firmware Klipper, aunque a menudo se pasan por alto.

Para este tutorial utilizaremos Orca Slicer, pero funcionará con cualquier slicer de tu elección.


‼️ ATENCIÓN ‼️ ATENCIÓN ‼️ ATENCIÓN ‼️ ATENCIÓN ‼️ ATENCIÓN

Las siguientes instrucciones se refieren a la edición de código G y firmware. Si cometes errores, puedes dañar la impresora. A partir de ahora, actúa bajo tu propia responsabilidad.

‼️ ATENCIÓN ‼️ ATENCIÓN ‼️ ATENCIÓN ‼️ ATENCIÓN ‼️


Configurar una cola de impresión

Abre Orca Slicer y ve a la configuración del dispositivo. A continuación, ve a opciones de la máquina (para Mainsail) o configuración (para Fluidd) en la barra de herramientas de la izquierda. Abre el archivo moonraker.conf y añade lo siguiente:

[job_queue]
load_on_startup: True
automatic_transition: True
retardo_transición_trabajo: 10
job_transition_gcode: CLEAR_BED

Asegúrate también de que se incluye lo siguiente:

[file_manager]
queue_gcode_uploads: True
enable_object_processing: False

Guarda el archivo y reinicia el sistema.

Esto configura la cola: un trabajo sigue automáticamente al siguiente. Esto es exactamente lo que hacen las dos primeras líneas. El retardo de transición asegura una pausa de 10 segundos entre los trabajos de impresión: por supuesto, este valor se puede ajustar como se desee. El llamado código G de transición es el código G que se ejecuta entre dos trabajos de impresión. Aquí debes especificar que la impresora expulse automáticamente el trabajo de impresión finalizado antes de que comience el siguiente.

Ahora vuelve a la máquina y abre el archivo gcode_macro.cfg. Aquí, añade lo siguiente:

[gcode_macro CLEAR_BED]

G-code:

M190 S30 #wait for bed temp to be 30
G91 #relative positioning
G1 Z10 #Raise Z10
G90 #absolute positioning
G1 X110 Y218 F3000 #Move printhead to middle and back
G1 Z1 #Move printhead down
G90 #absolute positioning
G1 X110 Y1 Z1 F2400 #Push Print off

Esta macro limpia el cabezal de impresión entre dos trabajos de impresión. El primer comando espera a que la cama se enfríe a 30 °C. Para nosotros, la temperatura ideal era de 30 °C. Usamos una placa PEI texturizada de 3DJake. Si utilizas una placa o filamento diferente, puede que tengas que experimentar un poco. Nosotros utilizamos exclusivamente nuestra 3DJake ecoPLA para nuestras pruebas.

G91 activa el posicionamiento relativo, es decir, todos los comandos de movimiento posteriores se refieren a la posición actual del cabezal de impresión. Con G1, el cabezal de impresión se mueve ligeramente hacia arriba y se aleja de la pieza impresa. A continuación, G90 vuelve al posicionamiento absoluto: el cabezal de impresión se desplaza ahora a unas coordenadas XY fijas en el área de impresión, independientemente de su posición actual. El siguiente comando G1 mueve el cabezal de impresión exactamente al centro del eje X y de vuelta al borde del lecho de impresión a una velocidad de 3000 mm/min. A continuación, el cabezal de impresión se mueve hacia abajo 1 mm en la cama con G1 y con el último comando G90 empuja el modelo terminado hacia adelante.

¡Ya está! Ahora todo lo que tienes que hacer es preparar e imprimir un archivo e inmediatamente enviar el siguiente. En la página del dispositivo verás que se ha iniciado una cola. En cuanto termine la primera impresión, se activará automáticamente la macro CLEAR_BED. A continuación, la impresora espera a que la cama se enfríe a 30 °C y retira el modelo. ¡Sin ningún esfuerzo por tu parte!


Repetir una impresión en un bucle sin fin

Bien, ya hemos visto qué hacer con las colas de impresión. Pero, ¿y si deseas imprimir el mismo archivo varias veces? Para eso está el comando SD_LOOP.

Para ello, simplemente ve al archivo printer.cfg e inserta la sección [sdcard_loop] en algún lugar. La ubicación exacta no importa. Básicamente, esto te permite imprimir en un bucle. Ahora todo lo que necesitas es un comando G-code adecuado para poner todo en marcha. La mejor manera de hacerlo es directamente en el slicer, por lo que recomiendo crear tu propio perfil de impresión. De esta forma puedes cambiar fácilmente entre "impresión normal" e "impresión en bucle".

En el perfil de impresión, ve a los códigos G de la máquina e introduce lo siguiente en el código G de inicio: SDCARD_LOOP_BEGIN COUNT=5. En este caso, la impresión se repite 5 veces. Por supuesto, puedes ajustar el valor y, si deseas que la impresión se repita indefinidamente, establece COUNT=0.

Incluso si no utilizas una cola de impresión, puedes utilizar la misma macro de código G para limpiar el plan de impresión. Aquí tienes dos opciones: puedes copiar el contenido de la macro creada previamente directamente en el End-G-code de tu slicer o puedes simplemente escribir el comando CLEAR_BED en el End-G-code, asumiendo que ya has creado la macro en tu macro.cfg.

Muy importante: SDCARD_LOOP_END debe estar al final del End-G-code. Esta es la señal a la impresora de que el bucle termina aquí. Todo entre SDCARD_LOOP_BEGIN COUNT=5 Y SDCARD_LOOP_END se repite entonces con la misma frecuencia.

Ahora guarda y comienza a imprimir. ¡Ahora tu bucle se ejecutará automáticamente!

Una vez finalizada la impresión, la barra de progreso simplemente permanece en 99% hasta que la temperatura de la cama de impresión desciende a 30 °C. Sólo entonces se eliminará automáticamente el patrón y comenzará la siguiente tirada.

Para interrumpir el ciclo después de la impresión actual, simplemente escribe SDCARD_LOOP_DESIST en la consola. En este caso, no se iniciará la siguiente impresión.


Impresora Marlin

¿Y si no tienes una impresora Klipper? No hay problema: puedes hacer algo muy parecido a lo que acabamos de mostrar. Todo lo que tienes que hacer es ajustar el código G final para que la impresora expulse automáticamente la impresión terminada. La idea básica es la misma, pero los valores pueden variar en función del modelo de impresora.

Veámoslo más de cerca:

M190 S30 #wait for bed temp to be 30
G91 #relative positioning
G1 Z10 #Raise Z10
G90 #absolute positioning
G1 X110 Y218 F3000 #Move printhead to middle and back
G1 Z1 #Move printhead down
G90 #absolute positioning
G1 X110 Y1 Z1 F2400 #Push Print off

Básicamente puedes usar los comandos mostrados aquí para cualquier impresora, pero ten cuidado: los comandos G1 para X e Y (líneas 5 y 8) sólo son adecuados para la impresora K1 o impresoras CoreXY similares con idéntico volumen de impresión.

Necesitas saber qué tan grande es el espacio de construcción. Si tu cama de impresión, por ejemplo, es de 250 mm de ancho, la línea 5 debe tener este aspecto:

G1 X125 Y248 F3000 #Move printhead to middle and back

Esto mueve el cabezal de impresión a la mitad del eje X (125 mm desde el borde) y todo el camino de vuelta al eje Y, a sólo 2 mm desde el borde posterior.

Así que la línea 8 debería verse así

G1 X125 Y1 Z1 F2400 #Push Print off

De esta manera, el cabezal de impresión permanece en el centro del eje X, pero se mueve completamente hacia adelante, a sólo 1 mm del borde delantero, para empujar la impresión fuera de la cama.

Nota: Este método está diseñado para empujar con el cabezal de impresión. Sin embargo, no es necesariamente necesario utilizar el cabezal de impresión para esta operación: a menudo es incluso mejor utilizar todo el bastidor del pórtico para empujar.

Sin embargo, con el K1 esto es problemático porque las correas son una molestia. Por lo tanto, se debe ejercer la menor fuerza posible sobre el pórtico, por lo que recomendamos empujar la K1 con el cabezal de impresión.

Para mover el pórtico, simplemente cambie la posición del cabezal de impresión en el eje X. A continuación, simplemente muévalo hacia un lado. Para una cama de impresión con una anchura de 250 mm, las líneas 5 y 8 podrían tener este aspecto:

Línea 5: G1 X1 Y248 F3000 #Move printhead to middle and back
Línea 8: G1 X1 Y1 Z1 F2400 #Push Print off

¿Y qué pasa con los bucles en Marlin? Si tienes una impresora Marlin, puedes hacer básicamente lo mismo que con el bucle en Klipper, sólo que con el comando M808. El principio sigue siendo el mismo: se establece el bucle utilizando el código G inicial y final en la slicer. En el sitio web de Marlin encontrarás información más detallada y ejemplos: merece la pena echarle un vistazo si quieres profundizar.


Looping para impresoras que no son Klipper

Si no dispones de una impresora Klipper, puedes configurar un bucle simplemente concatenando varios archivos de código G e imprimiéndolos desde la tarjeta SD. Alternativamente, puedes exportar todo como un archivo .3mf, que es básicamente una carpeta comprimida.

Así es como funciona con Orca Slicer:

Haz el corte de tu impresión como de costumbre y luego expórtalo como un "Plate Sliced File". Puedes abrir este archivo con un descompresor como WinRAR: ahí encontrarás el código G en la carpeta de metadatos. Abre el archivo en un editor de texto. Ahora puedes copiar todo el contenido. Si quieres imprimir el mismo archivo varias veces, simplemente pega el código copiado varias veces seguidas. Si deseas crear una cola de impresión con diferentes plantillas, también debes dividir las otras plantillas, exportar su código G e insertarlos después del primer código G.

Ahora solo tienes que guardar el fichero de texto modificado y cerrarlo. WINRAR te preguntará si deseas actualizar el archivo con los cambios: haz clic en "Sí" y se aplicarán los cambios. Luego, vuelve a abrir el archivo .3mf en Orca Slicer. En la vista previa verás que las plantillas se solapan y que el tiempo de impresión también ha cambiado: ¡esto es exactamente lo que querías!

Ahora solo tienes que enviar el archivo a tu impresora: automáticamente imprimirá y expulsará la plantilla tantas veces como hayas introducido el código G.

► Si haces esto con una impresora Bambu Lab —es decir, un modelo de las series A, P o X— el funcionamiento es básicamente el mismo. Pero te recomendamos encarecidamente que veas los vídeos de Factorian Design: entra en detalles y se ha esforzado mucho en hacer los cambios necesarios en el código G para que sea perfecto para las impresoras Bambu. Vale mucho la pena si quieres hacerlo bien.



Algunas cosas a tener en cuenta:

Editar código-G final

Puede aparecer un mensaje de error indicando que la impresora debe devolver todos los ejes a su posición inicial antes de poder ejecutar la macro CLEAR_BED. En nuestro caso, esto ocurrió porque la macro END_PRINT contenía un comando M84 en el End-G-code. Y esto también podría ocurrirte a ti: muchas impresoras utilizan macros en el código G final en lugar de escribir cada línea de código G individualmente.

¿Qué hay que hacer? Busca en tu macro.cfg la macro correspondiente (por ejemplo, END_PRINT) y edítala directamente allí. Si el código G completo se encuentra en el campo End-G-code, puedes simplemente editarlo allí.

► Sustituir completamente el código G final

Para algunas impresoras, en particular aquellas en las que no tienes acceso a archivos de macros, puede ser necesario sustituir completamente el código G final. En tales casos, un código muy simple es a menudo suficiente, por ejemplo:

M104 S0 ; extruder heater off
M140 S0 ; heated bed heater off (if you have it)
G91 ; relative positioning
G1 E-1 F300 ; retract the filament a bit before lifting the nozzle, to release some of the pressure
G1 Z+0.5 E-5 X-20 Y-20 F9000 ; move Z up a bit and retract filament even more
G28 X0 Y0 ; move X/Y to min endstops, so the head is out of the way
M84 ; steppers off
G90 ; absolute positioning

Si tu impresora está equipada con un Nozzle-Wiper, puedes insertar fácilmente algunos comandos G1 para mover el nozzle sobre él y limpiarlo después de la impresión.

► Ten en cuenta las necesidades de espacio

Para que el cabezal de impresión empuje el modelo fuera de la cama, primero debe posicionarse correctamente, es decir, debe tener suficiente libertad de movimiento para acercarse lo suficiente a la cama antes de avanzar y empujar el modelo.

En nuestra prueba, hemos colocado el cabezal de impresión en la parte trasera del lecho. En el caso de la K1, esto significa concretamente: los 55 mm posteriores del espacio de impresión no pueden utilizarse debido al tamaño del cabezal de impresión. Antes de probar esta solución, asegúrate de medir el espacio libre del cabezal de impresión y comprueba que tu modelo no se encuentra en esta zona de peligro.

Igualmente importante: el tamaño del propio modelo. Los modelos muy pequeños o planos con una gran superficie de contacto suelen adherirse con demasiada fuerza, lo que hace casi imposible la extracción. Los modelos muy grandes también se adhieren muy tenazmente y son difíciles de extraer. En estos casos, suele ser mejor utilizar todo el bastidor del pórtico para empujar: esto proporciona mucha más potencia y es más eficaz para los modelos grandes que el cabezal de impresión solo.

► Adherencia al lecho de impresión

Tanto una adhesión deficiente como una demasiado buena pueden ser un problema: si la adhesión es demasiado débil, será difícil realizar varias impresiones seguidas exactamente en el mismo lugar, y el modelo puede desprenderse o deslizarse durante la segunda impresión. Si la adherencia es demasiado fuerte, el cabezal de impresión no podrá retirar la pieza y, en el peor de los casos, puede incluso dañar la impresora.

¿La solución? Para utilizar este método de expulsión automática de forma fiable, es esencial contar con un buen lecho de impresión (por ejemplo, una placa PEI de alta calidad) y un offset Z perfectamente ajustado.

► Filamentos adecuados

Los filamentos que requieren una carcasa cerrada no son adecuados para este método, ya que la puerta de la impresora debe permanecer abierta para permitir la expulsión del modelo. Esto significa que ABS, nylon, ASA y materiales similares están excluidos. El PETG también puede ser un problema porque suele adherirse muy bien y es difícil de retirar de la cama.

► Purge Lines

Si la impresora dibuja una línea de purga antes de cada impresión, debe sustituirse por otra cosa. Por ejemplo, en nuestra K1 se activa una línea de purga KAMP. Si ésta se reimprime en cada bucle sin ser eliminada, podrían producirse problemas.

Pero la impresora DEBE avanzar el material antes de cada impresión para preparar la boquilla. Por eso nuestro consejo es sustituir la Línea de Purga por un borde pequeño (por ejemplo 2 mm), que será expulsado con el modelo.

► Hot hotend = riesgo de oozing

Asegúrate de que el hotend se apaga cuando se enfría la superficie calentada, de lo contrario el material puede seguir rezumando (gotear) y estropear la primera capa. Esto puede ocurrir si se elimina por completo la macro END_PRINT. En este caso, el comando para apagar el hotend ya no se ejecuta automáticamente.

Añade un comando M104 S0 al código End-G: este comando apaga el bloque calefactor. Importante: asegúrate de colocarlo antes de SDCARD_LOOP_END, de lo contrario no se ejecutará correctamente.

► ¡Utiliza la gravedad!

Si tu modelo no cae completamente de la cama al ser expulsado, ¡puedes simplemente usar la gravedad a tu favor! Una ligera inclinación de la impresora, como se muestra en el vídeo de Factorian Design, puede aumentar significativamente la fiabilidad de la expulsión automática.

Pero ten cuidado: si inclinas la impresora, hazlo de forma consistente y segura, ¡y asegúrate de recalibrar la conformación de entrada después para seguir obteniendo resultados de impresión limpios!

► Inclina el modelo, ¡pero hazlo de la forma correcta!

Si tienes un Bedslinger, la pieza expulsada puede quedar atascada entre la cama y el cuerpo de la impresora. Simplemente coloca un trozo de papel o cartón firmemente debajo de la cama de impresión - esto permitirá que el modelo ruede hacia abajo suavemente, sin atascarse en ninguna parte.

► Placa de empuje: el refuerzo de la expulsión

Para una fiabilidad aún mayor durante la expulsión, puedes imprimir una pequeña Pusher Plate, es decir, una placa atornillable para el cabezal de impresión que puede empujar la impresión fuera de la cama con mayor eficacia. Pero en este caso, ¡presta atención al rango máximo de movimiento de tu impresora! La placa no debe tocar ni chocar en ningún punto, de lo contrario se producirá rápidamente un choque.