This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Cura doble extrusion
#1
Buenas tardes,



Tengo un problema con el cura, resultando que estoy imprimiendo con dos extrusores una boquilla. Resulta que cura cuando hace el cambio de extrusor genera un gcode, el gcode hace lo siguiente:



G92 E0

T0

G92 E0

M105

M109 S190

M104 T1 S175

G1 F1200 E9.5

; MALLA: 20mm_Cube_A.stl

G0 F4500 X9.009 Y10.789 Z1.5



Al final lo que hace, eleva 1 mm por encima de la capa que esta imprimiendo, entonces, hace el cambio y las retracciones oportunas. El problema es que al hacerlo sobre la pieza y no desplazarse a la torre de purga genera problemas de exceso de material.

¿Hay alguna manera de solucionar esto?



gracias
  Responder
#2
Hola, no entiendo muy bien a que parte pertenecen esos comandos que indicas, si al fichero gcode de la impresión o a uno de los scripts de alguno de los extrusores.
Tampoco veo ahí las acciones que describes, por lo que no sé si están antes o después de esas líneas.
En ellas se realiza lo siguiente:

G92 E0  ; marca como cero la posición actual del eje del extrusor activo (es de suponer que el E1, pues se va a cambiar al E0).
T0   ; cambia el extrusor activo al E0.
G92 E0   ; marca como cero la posición actual del eje E0.
M105   ; solicita que se reporten las temperaturas al host.
M109 S190  ; ordena una temperatura de 190 ºC para el extrusor activo (E0) y espera que se alcance. Si tienes una sola boquilla, tendrás habilitado el parámetro SINGLENOZZLE y debería estar ya.
M104 T1 S175  ; ordena una temperatura de 175 ºC para E1 (entiendo que para mantenerlo caliente). No se debería tener ningún efecto, por lo indicado antes.
G1 F1200 E9.5  ; extruye 9,5 mm de filamento en el extrusor activo (E0), a 20 mm/s de velocidad.
G0 F4500 X9.009 Y10.789 Z1.5   ; mueve el cabezal de impresión al punto indicado por los valores de esos ejes, a una velocidad de 75 mm/s (la que estará configurada para los desplazamientos).

Lo que se realiza en el proceso de cambio de extrusor (herramienta), se configura en los scripts de los extrusores: en el de incio, lo que se hace al seleccionar ese extrusor y en el de final, lo que se realiza al deseleccionarlo.
Por lo tanto, en el archivo gcode de la pieza, antes de una orden T tiene que estar el script de final del otro extrusor y después de ella, el script de inicio de ese extrusor.
Si configuras las acciones que quieres que se realicen en cada cambio en los scripts correspondientes, estas deberían realizarse correctamente cuando se produzcan (en teoría).
  Responder
#3
Muchas gracias por tu respuesta.

En el script de inicio y fin no he editado nada, supongo que si no haces un script personalizado, cura hace esto mismo.

Mañana iba a probar a cambiarlo, a ver si así solucionó el problema, y se sustituye ese código por el que ponga yo. Aunque es muy probable que lo mantenga entre el script de inicio y fin que escriba yo. Habrá que probarlo.

Como tú bien dices ese gcode es el cambio de herramienta, eso lo genera cura, para mi no es lo ideal ya que cuando extruye esos 9 mm lo hace justo encima de la pieza.

A mi me gustaría que después de la retracción se fuese directamente a la torre de purga. Si tienes alguna sugerencia de cómo realizar ese scrit soy todo oídos.

Un saludo
Gracias
  Responder
#4
Hola, he estado mirando un poco más detenidamente como gestiona CURA la doble extrusión y la verdad es que, como en muchas otras cosas, es bastante desastre.
Lo primero decir que esas líneas que has puesto no son todas las que realizan el cambio de herramienta, faltan algunas por encima que son en donde se realiza la retracción del cambio de tobera.
En todo caso, por las que has puesto, tengo la impresión de que no tienes bien configurada ni la impresora, ni el apartado del perfil relacionado con la doble extrusión.
Si no me equivoco, la A10M lleva un doble extrusor con un solo fusor, por lo que hay que indicarselo a CURA marcando la casilla Calentador compartido en la configuración de la impresora. De esa forma, se evita que coloque en el archivo gcode de la pieza, órdenes de calentamiento independientes para cada extrusor.
Por otra parte, la orden que parece ser una extrusión de 9,5 mm no es tal, debido a que se parte de la posición en que se quedó después de hacer la retracción del cambio de tobera, por lo que seguramente no extruya filamento con ella. Para estar seguro, tendría que saber que retracciones tienes configuradas, pero ese valor debería ser la retracción del cambio de tobera menos la retracción general. Por ello creo que, si no te está haciendo bien el proceso de ir a la torre de purga, quizá no tengas bien configurada la extrusión doble.
Sobre los scripts, los de los extrusores vienen vacios por defecto, pero creo que no se van a poder utilizar debido a que CURA coloca, en el comienzo de la impresión de la pieza, una orden de cambio de herramienta al extrusor que tiene que comenzar la impresión y coloca el script de inicio de este por lo que, si se pone algo ahí para que se realice en los cambios de herramienta, se colocará también en el inicio de la pieza, donde no es necesario en absoluto. Me parece que es algo que no han tenido en cuenta en Ultimaker.
  Responder
#5
Hola,
Muchas gracias por la contestación, voy avanzando pero a pasos pequeñitos jejej, pero contento.

Probé a marcar la casilla de calentador compartido, pero con esa casilla marcada, cuando hace el cambio de extrusor se pone en calentamiento. Alomejor es un poco lenta la lectura en mi placa trigorilla. De todas formas he metido unos script y ya me va bastante bien.

Ahora estoy peleado con el mezclado de colores, hay un pluging en cura aque se llama ColorMix pero no me funciona. No sé si será porque no tengo bien configurado marlin. Yo en marlin solo tengo configurado 2 extrusores y singlenozzle, más abajo me he fijado que hay un código que pone MIXING_EXTRUDER pero no sé cómo activarlo.

Es necesario configurar marlin para que los dos extrusores puedan funcionar a la vez??
Si es así, claro está que no me funcionará nunca ese pluging.

Gracias por ayudarme
Saludos
  Responder
#6
Hola, efectivamente tienes que descomentar la línea que define el MIXING_EXTRUDER.
Si te fijas, en el script de inicio que trae CURA para esa impresora, se utiliza el comando M163 para configurar la mezcla de los dos extrusores, pero si no tienes habilitado el parámetro, Marlin no tiene en cuenta ese comando.
Sobre lo que indicas del calentador compartido, lo he probado y marcando la casilla en el gcode desaparecen las órdenes de calentamiento separadas para los extrusores.
Por cierto,  ¿has descomentado en Marlin la línea que indica que tienes un fusor común para los dos extrusores?
  Responder
#7
Sí, la de singlenozzle está descomentada.

Por cierto no veo M163 por ningun lado en cura.

El problema es que cuando descomento la de mixing no compila.
No se que puede pasar. Ayuda porfavooorrr jejejejej

quieres que comentemos el error que da? mi placa es trigorilla

----------------------------------------------

Te escribo esto por aquí porque he probado cosas y te las expongo a ver que opinas:

yo intentaba compilar de la siguiente manera; poniendo 2 extruder, singlenozzle y tambien mixing
        - de esta manera no compilaba

Ahora compilo con 1 extruder, desactivando single nozzle, y activando mixing.
       -  resulta que así, sí que compila. Pero en marlin 1.1.9 en marlir bugfix 2.0 ,me da el siguiente error (algo que ver con ultralcd, que yo no tengo claro)

In file included from sketch\src\lcd\menu\menu_mixer.cpp:34:0:

c:\users\p52sarup\appdata\local\temp\arduino_build_944320\sketch\src\lcd\dogm\ultralcd_dogm.h:29:20: fatal error: U8glib.h: No such file or directory

(SOLUCION)(AÑADIR LIBRERIA U8glib en marlin 2.0)

entonces mis dudas son las siguientes:
-¿activando solo MIXING ya tengo todas las opciones de doble extrusion?, bien sea para mezclar o para imprimir con dos colores por separado.
  Responder
#8
Bueno he conseguido hacer funcionar todo excepto una cosa que explico al final. Comentare los pasos seguidos por si alguien se encuenta con las mismas dificultados que yo.

1- Para el problema inicial he encontrado unos pluging de cura que anulan los comandos M104 y M109, asi no se para a comprobar temperaturas y evitas los goteos. Ojo hay que precalentar todo antes de imprimir.

2- para activar mixing_extruder debes de tener la configuracion basica de marlin en cuanto a numero de extrusores, por tanto #define EXTRUDERS 1.

3- tampoco puedes tener activado singlenozzle por tanto //#define SINGLENOZZLE.

4- Yo tuve que añadir la libreria U8glib.h

Por ultima tengo un problema, resulta que cuando tengo configurado MIXING_EXTRUDER me copia los mismos pasos del extrusor 1 y 2, por mucho que lo configure en configuration.h hay algo en MIXING_EXTRUDER que me los cambia y me los pone iguales. El problema es que yo tengo extrusores diferentes y claro, asi no hay manera porque no tienen la misma relación. Si encontrase donde hace esto y pudiese multiplicar por un factor seria genial.

Gracias un saludo.
  Responder
#9
Hola, me parece que me he liado con la impresora que tienes, pues pensaba que era una A10M, pero veo que es una Kossel a la que le has añadido un doble estrusor con fusor único.
Efectivamente, el funcionamiento de Marlin con la multiextrusión es bastante enrevesado.
Por lo que entiendo, existen dos formas de realizar la multiextrusión: definiendo varios extrusores (compartan o no el mismo fusor) o utilizando la funcionalidad mixing extruder, que necesariamente tiene que ser con un sistema de dos extrusores y un solo fusor.
Para la primera, hay que configurar el número de extrusores y activar el parámetro SINGLENOZZLE si los extrusores comparten el fusor, tanto en el firmware como en el programa de corte y en principio nada más: a partir de aquí se encarga el programa de corte de todo lo demás. Naturalmente, de esta forma solo se puede imprimir de forma separada, no hay posibilidad de mezcla de varios materiales.
Para la segunda, hay que definir solo un extrusor y activar el parámetro MIXING_EXTRUDER y no el SINGLENOZZLE, definiendo el número de extrusores que se van a utilizar (aunque de momento solo permite 2) e indicando la relación de mezcla con el comando M163 y asignándola a uno de los extrusores virtuales con M164.
De esta forma se define la mezcla estática, pero si se quiere realizar un gradiente en la mezcla (variar la proporción en función de la altura de la pieza), hay que definirlo con el comando M166, pero ya no he profundizado más en como se realiza.
Si es tal y como lo he indicado, las dos formas son incompatibles a nivel de firmware, por lo que hay que decidir si se quiere tener mezcla y en ese caso, hay que utilizar obligatoriamente el segundo método.
Sobre la librería U8Glib, se necesita si la pantalla configurada es de tipo gráfico, pero si antes no te daba ese error, puede que la borrases sin darte cuenta. Se encuentra en la carpeta Documentos\Arduino\libraries\.
Por supuesto, el funcionamiento del MIXING_EXTRUDER no te permite poner distintos ajustes para los dos extrusores en el firmware directamente, tienes que ajustarlos con las proporciones de mezcla que se definen con el comando M163.
  Responder
#10
Hola Simemart,

En primer lugar gracias por mantener la conversación me es de gran ayuda.

Centrémonos en la ultima frase de tu respuesta, donde comentas que marlin no nos permite cambios, ya que ahí, es donde radica nuestro problema.

He observado Que Marlin hace una cosa curiosa a la hora de darle valores de pasos a los diferentes extrusores E0, E1, E2, Descomentando DISTINCT_E_FACTOR.
Cuando descomentamos esa linea podemos poner manualmente los valores de los pasos de los extrusores en la siguiente linea:

#define DEFAULT_AXIS_STEPS_PER_UNIT   { DEFAULT_XYZ_STEPS_PER_UNIT, DEFAULT_XYZ_STEPS_PER_UNIT, DEFAULT_XYZ_STEPS_PER_UNIT, 98.68, 415,2

 X, Y, Z, E0 [, E1[, E2[, E3[, E4[, E5]]]]]


Donde, en mi caso, se supone que E0=98.68 y E1=415,2 pues bien cuando cargas esto en la placa, comentar que mi placa es una trigorilla con bugfix 2.0 , si desde el LCD te vas a configuración y entras en el menú donde puedes modificar los pasos te encuentras lo que podrás ver en la imagen.
[Imagen: IMG-20200411-142653-1.jpg]


Resulta que marlin adjudica 98,68 a E y E1, y ademas, si intentas modificar alguno de los dos desde la pantalla LCD, se cambian los dos simultáneamente.

Debido a esto ocurre lo siguiente, y aquí, es donde viene el meollo de la cuestión.

Si usamos la primera configuración, de doble extrusión, a la que haces mención en tu respuesta anterior:

#define EXTRUDERS 2
#define SINGLENOZZLE

No hay problema porque marlin adjudica los valores E1 y E2 a los extrusores, y aunque E=E1 no pasa nada porque para el extrusor dos, coge bien los 415,2 p/mm

El problema es cuando usamos la segunda configuración MIXING_EXTRUDER:

En este caso al extrusor 1 se le adjudica E y al extrusor 2, E1. Al tener extrusores diferentes tengo problemas porque adjudica los mismos pasos a uno y al otro.

Ayer estuve buscando por el codigo a ver donde hace estas cosas, pero nada, tampoco soy un experto en soft.

Se pueden hacer varias soluciones a nivel soft, para mi la mejor seria que E y E1 no cojan el mismo valor, así ya puedes jugar tanto en una configuración como en la otra.

¿Que opinas?

Gracias

saludos
  Responder
#11
Efectivamente, al definir el parámetro DISTINCT_E_FACTORS se posibilita la asignación individualizada de los parametros de cada extrusor, pero siempre que no se utilice el MIXING_EXTRUDER, pues en este caso obligatoriamente solo hay un extrusor definido.
Esta es una utilidad pensada para mezclar dos filamentos alimentados mediante dos impulsores conectados a un solo fusor, dandose por supuesto que ambos impulsores son idénticos.
La relación de mezcla, o lo que es lo mismo, la cantidad de filamento que mueve cada impulsor, se tiene que fijar mediante el comando M163 y no mediante los micropasos por milímetro, ya que este valor lo comparten ambos impulsores.
Es decir, si la relación de impulsión real de los dos impulsores es distinta, hay que incorporarla en la configuración de la mezcla para que se tenga en cuenta.
Por ejemplo, por los valores que indicas de los micropasos por milímetro, en tu caso tienes dos extrusores con una relación entre ellos de 1:4,2.
Por lo que he visto en el código, parece que el parámetro P del comando puede tener los valores que se necesiten para conseguir la relación correcta entre ambos extrusores. Si esto es así, lo lógico sería configurar los pasos por milímetro del eje a los que tiene el menos desmultiplicado (98,68) y multiplicar el valor del parámetro del otro extrusor en el comando M163 por 4,2.
Sobre lo que indicas de modificar el código interno de la utilidad, para que se puedan utilizar distintas configuraciones para ambos impulsores, me parece que sería algo muy difícil (si no imposible) y no creo que sea muy práctico dado que, si no estoy equivocado, se puede realizar algo similar mediante la implementación actual.
Resumiendo, creo que lo primero que hay que hacer es decidir si se quiere imprimir con mezcla pues, si no la vamos a utilizar, no tiene mucho sentido configurar la mutiextrusión mediante el MIXING_EXTRUDER y si se configura este último y no se tienen dos impulsores idénticos como sería lo lógico, habrá que configurar la mezcla de forma apropiada para compensar esa diferencia.
  Responder
#12
Perfecto me queda claro,

En cuanto a la utilidad que le daré a la impresora será variada, una veces será únicamente doble extrusión y otra mixer.

Entiendo que tendría que cargar el firmware apropiado para cada vez que cambie ya que con mixing no tendré las funciones de doble extrusión.¿Estoy en lo cierto?

Dicho esto, la mejor solución para los problemas encontrados será conseguir dos extrusores identicos, es lo que haré en un futuro.

En cuanto a modificar el gcode haciendo l aproporcion, hay un factor de proporcionalidad demasiado grande, sería un engorro.

Pues nada muchas gracias por todo.
Nos vemos en otra lucha, un placer.

Saludos
  Responder
#13
Pues realmente no creo que sea necesario tener dos firmwares distintos, pues hay máquinas que vienen de serie con el sistema de extrusor doble que tienes y funcionan para las dos formas de multiextrusión, como la Geeetech A10M, que trae como firmware Marlin con MIXING_EXTRUDER activado.
Incluso se puede ver y descargar aquí, una aplicación que realiza la conversión de un gcode para imprimirlo con mezcla.
En todo caso, un placer también para mí y nos vemos por aquí.
Un saludo.
  Responder
#14
Probarė mañana con el mixing, a ver cómo hace la doble extrusión independiente.
La aplicación la he visto, está muy bien. Cura también tiene unos pluging que van bien, además encontré uno que se carga los M104 y M109 y me va la a impresión mucho más fluida, sin parones. Eso si tienes que calentar manualmente. Te paso una fotillo de la máquina para que veas cómo ha quedado.
[Imagen: IMG-20200409-194714-1.jpg]

[Imagen: IMG-20200409-194741.jpg]
  Responder
#15
Tiene buena pinta tu kossel.
Cuando dices que vas a probar la doble impresión independiente, supongo que te refieres a la impresión sin mezcla.
El concepto de doble extrusión independiente se aplica a las impresoras que tienen dos extrusores en bloques separados y que se mueven independientemente a lo largo de uno de los ejes, normalmente el X. Con ellas se pueden realizar impresiones normales utilizando cualquiera de los dos extrusores, simultáneas de dos piezas iguales o bien una pieza con dos materiales distintos.  Llevo tiempo con la idea de construir una de este tipo.
Sobre ese plugin que elimina las órdenes de calentamiento, no debería eliminar la primera del fichero para no tener que precalentar a mano.
En todo caso, ese proceso no parece muy difícil de implementar, por ejemplo mediante una sencilla aplicación en vbs que utilice como entrada el archivo gcode a limpiar.
  Responder
#16
Gracias, bueno estoy imprimiendo sin ventilador de capa, a ver si me llega pronto.

Si si, me refiero a la impresión sin mezcla.
Eso de la aplicación parece interesante, ya no solo para eso, sino para modificar gcode a gusto de uno.
Lo miraré si tengo un hueco algún dia.
  Responder
#17
Donde se encuentra la opcion de calentador compartido en CURA? U os referis a una opcion de MARLIN?
Gracias
  Responder
#18
Hola @Carline89, bienvenido al foro.
Respondiendo a tu pregunta, para indicarle a CURA que varios extrusores comparten el fusor, hay que marcar la casilla Calentador compartido en las propiedades de la impresora.
Como es lógico, para utilizar cualquier tipo de multiextrusión habrá que configurar más cosas, tanto en el firmware como en el programa de corte.
  Responder
#19
Muchas gracias por la rapida respuesta!

Perdona pero no encuentro la opcion que comentas...

[Imagen: image.png]

En principio el tema de las modificaciones de MARLIN lo tengo controlado.

Estoy interesado en los scripts de CURA, tanto inicial y final (si son relevantes) y los de cambio de extrusor especificos.

Muchas gracias!
  Responder
#20
No uso CURA, por lo que  hacía tiempo que no descargaba las últimas versiones y tenía instalada la 4.6.2.
Por lo que veo, a partir de la versión 4.7 se ha eliminado de la configuración de la impresora ese ajuste, parece ser que debido a que hay problemas con la implementación de esa característica.
Puedes dar un vistazo a este post de la Github de Ultimaker donde hablan de este tema y en el que se indica una forma de conseguir que vuelva ese ajuste a las propiedades de la impresora, para lo que hay que sustituir un archivo.
Lo que no queda claro es si el funcionamiento de ese ajuste será correcto o no, por lo que habrá que probarlo en la práctica.
  Responder


Posibles temas similares…
Tema Autor Respuestas Vistas Último mensaje
  Marlin 2.0 doble motor en Y Piluso1968 1 0 08-08-2023, 03:44 PM
Último mensaje: Simemart
Exclamación CONSULTA Perdida de pasos Extrusor doble engrane Ender 3 JairoRC 3 0 26-07-2023, 10:07 PM
Último mensaje: Simemart
  CONSULTA Problema Extrusión Filamento Flexible con Hemera Alroma 7 1,291 29-05-2021, 10:21 AM
Último mensaje: jukillo
  Ender 3 - Extrusión directa hace "cleck" apares8 7 1,344 17-02-2021, 04:07 PM
Último mensaje: SolomeoParedes
  Problemas de extrusión Anet a8 FranRp48 2 685 09-01-2021, 10:59 PM
Último mensaje: FranRp48