Ho iniziato a scrivere un'applicazione che calcola il tempo di stampa totale stimato dal file G-code per un modello già suddiviso.
Il programma funziona ed è abbastanza preciso.
Funziona come segue:
- Esegue la scansione dell'intero file G-code per identificare tutti i movimenti
- Calcola il tempo per ogni spostamento dividendo la distanza del segmento per la velocità in mm / s.
Supponiamo che questo sia il codice G:
G28 ; home all axes
G1 Z0.200 F5400.000
G1 X158.878 Y27.769 E6.65594 F900.000
Questo è il calcolo che fa:
totalTime = 0
# G28 ; home all axes
currentX = 0 mm
currentY = 0 mm
currentZ = 0 mm
# G1 Z0.200 F5400.000
newZ = 0.2 mm
mmPerSecond = 5400 / 60 = 90 mm/s
deltaZ = newZ - currentZ = 0.2 - 0 = 0.2 mm
segmentLength = deltaZ = 0.2 mm
moveTime = segmentLength / mmPerSecond = 0.2 / 90 = 0.002 s
totalTime = totalTime + moveTime = 0 + 0.002 = 0.002 s
# G1 X158.878 Y27.769 E6.65594 F900.000
newX = 158.878 mm
newY = 27.769 mm
mmPerSecond = 900 / 60 = 15 mm/s
deltaX = newX - currentX = 158.878 - 0 = 158.878 mm
deltaY = newY - currentY = 27.769 - 0 = 27.769 mm
segmentLength = square_root(deltaX² + deltaY²) = 161.287 mm
moveTime = deltaZ / mmPerSecond = 161.287 / 15 = 10.755 s
totalTime = totalTime + moveTime = 0.002 + 10.755 = 10.757 s
In questo esempio, la stampa richiederà circa 10,7 secondi.
Più in generale, la formula utilizzata è, per ogni movimento:
moveTime = segmentLength / mmPerSecond
Sommando tutti i tempi di spostamento, abbiamo il tempo di stampa totale stimato.
Ho visto che alcuni forum affermano che il tempo di stampa 3D dipende anche da alcune impostazioni della stampante 3D, in particolare Accelerazione X, Accelerazione Y, Accelerazione Z, Jerk e Z-Jerk.
Vorrei rendere possibile l'uso di questi valori per calcolare in modo più preciso il tempo di stampa; tuttavia, non capisco come tali valori influenzino il tempo di spostamento:
- Come dovrebbero essere considerati Acceleration e Jerk; e come accelerano o rallentano i tempi di stampa?
- Come devo modificare la mia formula per includere Acceleration e Jerk nel calcolo del tempo di stampa?