Comecei a escrever um aplicativo que calcula o tempo total estimado de impressão do arquivo de código G para um modelo já fatiado.
O programa funciona e é bastante preciso.
Funciona da seguinte maneira:
- Ele verifica todo o arquivo de código G para identificar todos os movimentos
- Ele calcula o tempo de cada movimento dividindo a distância do segmento pela velocidade em mm / s.
Vamos assumir que este é o código G:
G28 ; home all axes
G1 Z0.200 F5400.000
G1 X158.878 Y27.769 E6.65594 F900.000
Este é o cálculo que faz:
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
Neste exemplo, a impressão levará aproximadamente 10,7 segundos.
De maneira mais geral, a fórmula usada é, para cada movimento:
moveTime = segmentLength / mmPerSecond
Ao resumir todos os tempos de movimentação, temos o tempo total estimado de impressão.
Vi que alguns fóruns afirmam que o tempo de impressão 3D também depende de algumas configurações da impressora 3D, especialmente Aceleração X, Aceleração Y, Aceleração Z, Jerk e Z-Jerk.
Gostaria de possibilitar o uso desses valores para calcular com mais precisão o tempo de impressão; no entanto, não entendo como esses valores afetam o tempo de movimentação:
- Como devem ser consideradas a aceleração e o Jerk; e como eles aceleram ou diminuem o tempo de impressão?
- Como devo editar minha fórmula para incluir Aceleração e Jerk no cálculo do tempo de impressão?