Marlin Regolazione dell'avanzamento


9

Sto usando il firmware Marlin (1.1.0-RC7 - 31 luglio 2016) per una stampante 3d. Attualmente la stampa non è perfetta a causa di leggere imprecisioni nei movimenti lungo gli assi xey. Sto cercando di cambiare la velocità di avanzamento per la velocità lungo l'asse xy mentre la stampante è in funzione per assicurarmi che la stampante si arresti in tempo e stampi accuratamente.

Ho del codice per controllare l'avanzamento, ma il problema è che non sono sicuro di dove dovrei fare queste regolazioni. Nel file configuration.h vedo questo codice: (righe 742 e 753)

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

Probabilmente sto fraintendendo qualcosa, ma sembra che questo imposta la velocità di avanzamento su un valore predefinito che è lo stesso del massimo.

Se l'avanzamento cambia durante la stampa, immagino che sarebbe fatto in Marlin_main.cpp ma non sono sicuro di quale parte cambi effettivamente. Qualcuno può indicarmi la giusta direzione qui?


La velocità di avanzamento è impostata dal codice g fornito, perché non impostare una velocità di avanzamento inferiore? L'unica cosa che modificherai nel firmware senza modificarlo sono le velocità di feed massime e di homing.
1616

Risposte:


3

È possibile modificare la velocità di avanzamento massima consentita in Configuration.h, ma la velocità di avanzamento effettiva utilizzata non è determinata dal firmware. L'avanzamento è specificato nel file G-Code. Un comando simile

G0 X10.0 Y15.0 Z3.0 F9000

indica un passaggio a (10,15,3) con una velocità di avanzamento di 9000 mm / min. Se non viene specificato F, viene utilizzato l'ultimo avanzamento utilizzato.

Devi solo fornire i comandi del codice G appropriati con l'avanzamento desiderato in essi. Non c'è motivo di modificare il firmware per ottenere un avanzamento diverso.


Quindi l'avanzamento dovrebbe essere lo stesso per tutti gli assi x, ye z? Conosci anche quale parte di Marlin_main.cpp è responsabile della lettura dei comandi dal file G-Code?
fallo accadere il

No, la velocità di avanzamento per i singoli assi viene calcolata in modo che la velocità di avanzamento totale sia di 9000 mm / s (ad es. La distanza euclidea tra i punti divisa per il tempo per lo spostamento è uguale alla velocità di avanzamento). Se passi da 0,0 a 2,1, la velocità di avanzamento per X sarà due volte superiore alla velocità di avanzamento per Y. Non sono sicuro di ciò che stai cercando di ottenere, ma probabilmente cambiare il firmware non è l'opzione giusta . Se insisti, dovresti probabilmente guardare la prepare_movefunzione.
Tom van der Zanden,

Non è possibile impostare la velocità di avanzamento per gli assi in modo indipendente perché un asse potrebbe raggiungere la sua destinazione prima di un altro. Volete passare da X, Y a X ', Y' per ottenere una linea retta. Pertanto i feedrate dipendono l'uno dall'altro.
Tom van der Zanden,

2

Sembra che potresti voler esaminare i passaggi per mm.

#define DEFAULT_AXIS_STEPS_PER_UNIT

Questa riga è dove si calibra il numero di passi per mm. Per calibrare, segna un punto lungo un asse, quindi sposta quell'asse di qualcosa come 100 mm. Se non si sposta esattamente di 100 mm, apportare una modifica

(how far it moved)       (how far it should have moved)
------------------   =   ------------------------------
(current steps/mm)         (new steps/mm) --> find this

1

Hai le linee per regolare la velocità di avanzamento. Il primo (riga 742) è relativo alla velocità di avanzamento massima XY durante la ricerca del punto di riferimento (non durante la stampa). Penso che questo non sia un problema nel tuo caso particolare e potresti lasciarlo così com'è.

Il secondo (riga 753) è la velocità di avanzamento durante la stampa per XY. In particolare i numeri tra parentesi si riferiscono a (X, Y, Z, E). Se la tua stampante si sta muovendo, potrebbe influire su XY più di Z ed E. Quindi potresti provare a regolare i primi due numeri.

A causa della situazione molto specifica è impossibile darti una velocità di avanzamento basata sul calcolo perché hai a che fare con accelerazioni esterne causate dalla situazione mobile. Dovrai provare a regolarlo fino a quando non avrai ragione.

Un'altra impostazione che può anche aiutarti a compensare l'eventuale accelerazione esterna è l'accelerazione di quei due assi. Dovresti trovare due linee come queste:

#define DEFAULT_MAX_ACCELERATION {1500,1500,50,250}    
#define DEFAULT_ACCELERATION 1500 // X, Y, Z ed E accelerazione massima in mm / s ^ 2 per le mosse di stampa

Tuttavia, l'accelerazione degli assi può influire sulla qualità della stampa.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.