Marlin Réglage de l'avance

9

J'utilise le firmware Marlin (1.1.0-RC7 - 31 juillet 2016) pour une imprimante 3D. Actuellement, l'impression n'est pas parfaite en raison de légères inexactitudes dans les mouvements le long des axes x et y. J'essaie de changer la vitesse d'avance le long de l'axe xy pendant que l'imprimante fonctionne pour m'assurer que l'imprimante s'arrête à temps et imprime avec précision.

J'ai du code pour contrôler la vitesse d'avance mais le problème est que je ne sais pas où je suis censé faire ces ajustements. Dans le fichier configuration.h, je vois ce code: (lignes 742 et 753)

/*line 742*/ #define HOMING_FEEDRATE_XY (50*60) 
/*line 753*/ #define DEFAULT_MAX_FEEDRATE {300, 300, 5, 25}  // (mm/sec)

Je ne comprends probablement pas quelque chose, mais il semble que cela règle la vitesse d'avance sur une valeur par défaut qui est la même que la valeur maximale.

Si la vitesse d'avance change pendant l'impression, je suppose que ce serait fait dans Marlin_main.cpp mais je ne sais pas quelle partie elle change réellement. Quelqu'un peut-il me diriger dans la bonne direction ici?

Arangez-vous pour que cela arrive
la source
Le débit d'alimentation est défini par le code g que vous fournissez, pourquoi ne pas simplement régler le débit d'alimentation d'impression plus bas? La seule chose que vous allez changer dans le firmware sans le modifier, ce sont les débits d'alimentation max et homing.
tjb1

Réponses:

3

Vous pouvez modifier la vitesse d' avance maximale autorisée dans Configuration.h, mais la vitesse d'avance réelle utilisée n'est pas déterminée par votre micrologiciel. La vitesse d'avance est spécifiée dans le fichier G-Code. Une commande comme

G0 X10.0 Y15.0 Z3.0 F9000

indique un déplacement vers (10,15,3) à une vitesse d'avance de 9000 mm / min. Si F n'est pas spécifié, la dernière vitesse d'avance utilisée est utilisée.

Il vous suffit de fournir les commandes de code G appropriées avec la vitesse souhaitée. Il n'y a aucune raison de modifier le firmware pour obtenir une vitesse d'avance différente.

Tom van der Zanden
la source
Alors, la vitesse d'avance devrait-elle être la même pour tous les axes x, y et z? Savez-vous également quelle partie du fichier Marlin_main.cpp est responsable de la lecture des commandes du fichier G-Code?
que cela se produise
Non, l'avance pour les différents axes est calculée de sorte que l'avance totale soit de 9000 mm / s (par exemple, la distance euclidienne entre les points divisée par le temps de déplacement est égale à l'avance). Si vous passez de 0,0 à 2,1, la vitesse d'avance pour X sera deux fois plus élevée que la vitesse d'avance pour Y. Je ne suis pas sûr de ce que vous essayez de réaliser, mais changer le firmware n'est probablement pas la bonne option . Si vous insistez, vous devriez probablement regarder la prepare_movefonction.
Tom van der Zanden
Vous ne pouvez pas définir la vitesse d'avance des axes indépendamment car un axe pourrait atteindre sa destination avant un autre. Vous voulez que le déplacement de X, Y vers X ', Y' se traduise par une ligne droite. Par conséquent, les vitesses d'avance dépendent les unes des autres.
Tom van der Zanden
2

Il semble que vous souhaitiez peut-être regarder les pas par ligne mm.

#define DEFAULT_AXIS_STEPS_PER_UNIT

Cette ligne est l'endroit où vous calibrez le nombre de pas par mm. Pour calibrer, marquez un point le long d'un axe, puis déplacez cet axe quelque chose comme 100 mm. S'il n'a pas bougé de 100 mm exactement, faites un changement

(how far it moved)       (how far it should have moved)
------------------   =   ------------------------------
(current steps/mm)         (new steps/mm) --> find this
Curt Hayes
la source
1

Vous avez les lignes pour ajuster la vitesse d'avance. La première (ligne 742) concerne la vitesse d'avance maximale XY pendant la prise d'origine (pas pendant l'impression). Je pense que ce n'est pas un problème dans votre cas particulier et vous pouvez le laisser tel quel.

La seconde (ligne 753) est la vitesse d'avance lors de l'impression pour XY. En particulier, les chiffres entre parenthèses se réfèrent à (X, Y, Z, E). Si votre imprimante bouge, cela peut affecter XY plus que Z et E. Vous pouvez donc essayer d'ajuster les deux premiers nombres.

En raison de la situation très spécifique, il est impossible de vous donner un débit basé sur le calcul, car vous faites face à des accélérations externes causées par la situation mobile. Vous devrez essayer de l'ajuster jusqu'à ce que vous ayez raison.

Un autre paramètre qui peut également vous aider à compenser l'accélération externe, le cas échéant, est l'accélération de ces deux axes.Vous devriez trouver deux lignes comme celles-ci:

#define DEFAULT_MAX_ACCELERATION {1500,1500,50,250}    
#define DEFAULT_ACCELERATION 1500 // Accélération maximale X, Y, Z et E en mm / s ^ 2 pour les mouvements d'impression

Cependant, l'accélération des axes peut avoir un impact sur la qualité de l'impression.

FeliceM
la source