From 88c94180f7539bdf108e3a816fd2cd90cc100a95 Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Tue, 16 Apr 2024 11:12:36 +0200 Subject: [PATCH] Fixed mismatch with firmware in calculating acceleration in time estimates --- src/libslic3r/GCode/GCodeProcessor.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/libslic3r/GCode/GCodeProcessor.cpp b/src/libslic3r/GCode/GCodeProcessor.cpp index 354d5c07d4..2f52c8366d 100644 --- a/src/libslic3r/GCode/GCodeProcessor.cpp +++ b/src/libslic3r/GCode/GCodeProcessor.cpp @@ -2730,8 +2730,9 @@ void GCodeProcessor::process_G1(const std::array, 4>& axes for (unsigned char a = X; a <= E; ++a) { const float axis_max_acceleration = get_axis_max_acceleration(static_cast(i), static_cast(a)); - if (acceleration * std::abs(delta_pos[a]) * inv_distance > axis_max_acceleration) - acceleration = axis_max_acceleration; + const float scale = std::abs(delta_pos[a]) * inv_distance; + if (acceleration * scale > axis_max_acceleration) + acceleration = axis_max_acceleration / scale; } block.acceleration = acceleration;