mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-08-14 19:45:54 +08:00
SPE-2441: Fix discontinuity between the processed blocks' exit speed and the new first block's entry speed.
This discontinuity affected both time estimation and actual speed visualization.
This commit is contained in:
parent
392aad64a4
commit
90073dce70
@ -412,10 +412,20 @@ void GCodeProcessor::TimeMachine::calculate_time(GCodeProcessorResult& result, P
|
|||||||
it_stop_time->elapsed_time = time;
|
it_stop_time->elapsed_time = time;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (keep_last_n_blocks)
|
if (keep_last_n_blocks) {
|
||||||
blocks.erase(blocks.begin(), blocks.begin() + n_blocks_process);
|
blocks.erase(blocks.begin(), blocks.begin() + n_blocks_process);
|
||||||
else
|
|
||||||
|
// Ensure that the new first block's entry speed will be preserved to prevent discontinuity
|
||||||
|
// between the erased blocks' exit speed and the new first block's entry speed.
|
||||||
|
// Otherwise, the first block's entry speed could be recalculated on the next pass without
|
||||||
|
// considering that there are no more blocks before this first block. This could lead
|
||||||
|
// to discontinuity between the exit speed (of already processed blocks) and the entry
|
||||||
|
// speed of the first block.
|
||||||
|
TimeBlock &first_block = blocks.front();
|
||||||
|
first_block.max_entry_speed = first_block.feedrate_profile.entry;
|
||||||
|
} else {
|
||||||
blocks.clear();
|
blocks.clear();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GCodeProcessor::TimeProcessor::reset()
|
void GCodeProcessor::TimeProcessor::reset()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user