J’essaie d'aborder le sujet sous le maximum d'angles.
- vitesse de rétractation
- distance de rétractation
et tous les paramètres qui interfères (accélération, e-jerk, non-linearité,etc)
2020-11-08 : ajout de Junction Deviation
Quelques chiffre, basé sur une distance de rétractation ramené à une longueur sur un fil de 1.75mm de diamètre. Les valeurs sont prise sur un systeme E3dv6 mais c'et pareil pour les autres
- volume de la partie extrudé : (0.4/2)²*pi*0.6/(1.75/2)²pi= 0.4²*0.6/1.75²=0.03 mm3
- volume de le buse : [10.5+1.4/3]=10.97*pi =34 mm3 ; ramené au linéaire du file de la bobine 10.97/(1.75/2)²=14.3mm
- volume de la buse dépassant du corps de chauffe : [3+1.4/3]pi=4.5pi mm3 ; ramené en linéaire de fil = [3+1.4/3]/(1.75/2)²=4.6mm
Note: même si le comportement n'est pas continue car on "rétracte" sur un fil qui se comporte comme un mauvais élastique, on parle aussi bien de diminuer la pression sur la tête que de rétracter du fil.
Conclusion : La longueur que l'on rétracte est environ ce qui est dans la partie conique de la tête
Le but du jeu est d'avoir le moins long de rétractation possible.
Le mode opératoire est d'imprimer l'un des modèles de test pour le "stringing" en procédant comme suit :
1) on commence avec 0.5mm à une vitesse moyenne (25mm/s)
2) on monte la vitesse jusqu’à ce qui est acceptable (40mm/s souvent mais on peut monter jusqu’à 70).
3) on allonge la distance de rétractation par pas de 0.5mm. Jusqu'à avoir une impression propre et sans déformation.
S'il y a déformation c'est que la valeur est trop élevé.
Rester en dessous des 2mm est idéal. La valeur commune est de 3mm. En bowden c'est souvent un peu plus ; exemple avec un bowden de 65cm je suis à 3mm et avec un de 45cm à 2.5mm.
Les modèles de test :
http://www.thingiverse.com/thing:1535485
http://www.thingiverse.com/thing:3332137
Penser à désactiver ua moins dans un premier temps :
- Coasting
Le fonctionnement standard de Marlin une vitesse impression/extrusion est : d'appliquer une accélération pour atteindre la vitesse cible. Si le parcours est inferieur au jerk, on applique directement la vitesse.
Ca se comprend bien sur un déplacement long : 20cm de déplacement à 100mm/s on a besoin que d'une faible accélération de 200mm/s² passer 75% du temps à la vitesse max. Et a 500mm/s² on serait à 90% su temps de parcours à 100mm/s
Le jerk n'intervient que si le déplacement est inférieur à la valeur de x/y-jerk autour de 5 à 10 mm en moyenne.
Si vous voulez vous attaquer à ce sujet : https://www.youmagine.com/designs/multi-angle-test-tower-for-calibrating-jerk
On imprimer une figure en changeant la valeur de X/Y Jerk ou de Junction Deviation
Et pour la rétractation
Pour un déplacement de rétractation ca se complique : les déplacements sont tous inférieur à 10mm et on essaye de rester autour 2. Et donc le jerk peut rentrer en compte.
Si la distance à extruder est inférieur à la valeur de jerk, le moteur monte directement à la vitesse max sans phase d’accélération. Hors autant sur un déplacement de 20cm sur les X/Y ça sert à quelques chose [mais à remplacer par la Junction Déviation], autant sur des déplacement sur l'extrusion c'est pas évident.
En effet soit on est sur une extrusion continue (on fais un bord long) et là pas d’accélération. Soit on fait des petit morceaux et on arrête pas de faire des rétractation d'un longueur inférieur au jerk.
En résumé : garder le jerk de l'extrusion (E-jerk) supérieur à la valeur de rétractation. Par exemple 5mm pour une valeur générique
C'est une fonction qui remplace le Jerk dans Marlin - ca existe déjà dans d'autre firmware et c'est natif dans les CNC. On essaie de garder une accélération constante en courbe (essayez de penser à une voiture qui tourne). La Junction Deviation c'est d ici.
En Marlin 2.0 c'est active quand le "//#define CLASSIC_JERK" est désactivé.
Un valeur haute permet une vitesse rapide dans les angles mais augmente le risque de sauter un pas ou de précision . Inversement, un valeur faible réduit la vitesse à l'angle diminuant le risque de pas manqué et augmentant la précision
Choisir une Valeur
/image%2F1607858%2F20201107%2Fob_80e079_jd1.gif)
V= La vitesse que l'on veut avoir en courbe
A= c'est l'accélération radial = Acceleration de l'impression (entre 500 et 1000mm/s²)
On peut aussi faire son calcul à partir du jerk :
/image%2F1607858%2F20201107%2Fob_55eb29_jd-jerk.gif)
Piece à imprimer pour calibrer son Junction Déviation dans CURA : https://www.thingiverse.com/thing:3463159
Mon Experience : Pour X&Y ca fonctionne plutôt bien. Pour le Z c'est pas sensible. Par contre je rencontre un problème avec l'extrudeur : quand on a le Junction déviation activé sur les 3 axes, le firmware ne prend plus en compte le jerk de l'extrudeur. Donc jusqu'à comprendre pourquoi, je reste en full jerk
Junction déviation et E-jerk
La valeur de E-jerk est directement calculé à partir de N (Accélération maximal de E) :
max_ejerk [mm/s] = SQRT((SQRT(0.5) * max_acceleration_mm_per_s2[E_AXIS] * junction_deviation_mm) / (1 - SQRT(0.5)))
Avec une junction deviation = 0.02 et une max acceleration E of 517,9 pour une ejerk of ~5,0
ou ejerk of ~12,0 pour une max acceleration of 3000
Conclusion : il faut tuner la valeur de l'accélération de l'extrudeur, un valeur qu'on place élevé par défaut.
- C'est une option à activer dans le firmware si on veut et On place la valeur K=0.0 pour que ce soit désactivé par defaut.
- Lineare advance est incompatible avec le S-curve
- On l'active via le pré-set du gcode du slicer avec la valeru que l'on aura parametré [M900 K=0.]