Empecé a escribir una aplicación que calcula el tiempo de impresión total estimado del archivo de código G para un modelo ya cortado.
El programa funciona y es bastante preciso.
Funciona de la siguiente manera:
- Escanea todo el archivo de código G para identificar todos los movimientos
- Calcula el tiempo de cada movimiento dividiendo la distancia del segmento por la velocidad en mm / s.
Asumamos que este es el código G:
G28 ; home all axes
G1 Z0.200 F5400.000
G1 X158.878 Y27.769 E6.65594 F900.000
Este es el cálculo que hace:
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
En este ejemplo, la impresión tardará aproximadamente 10.7 segundos.
Más generalmente, la fórmula utilizada es, para cada movimiento:
moveTime = segmentLength / mmPerSecond
Al resumir todos los tiempos de movimiento, tenemos el tiempo de impresión total estimado.
He visto que algunos foros afirman que el tiempo de impresión en 3D también depende de algunas configuraciones en la impresora 3D, especialmente Acceleration X, Acceleration Y, Acceleration Z, Jerk y Z-Jerk.
Me gustaría hacer posible el uso de esos valores para calcular con mayor precisión el tiempo de impresión; Sin embargo, no entiendo cómo esos valores afectan el tiempo de movimiento:
- ¿Cómo deben considerarse la aceleración y el tirón? y, ¿cómo aceleran o ralentizan el tiempo de impresión?
- ¿Cómo debo editar mi fórmula para incluir Aceleración y Jerk en el cálculo del tiempo de impresión?