mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-14 09:02:06 +00:00
SPE-2397: Fixed order of traversing time blocks in GCodeProcessor::TimeMachine::calculate_time() to match what is done in firmware
(cherry picked from commit 9b7961ddcb824c5b18cb414ed5b975d999a24641)
This commit is contained in:
committed by
Andrew Sun
parent
7814605906
commit
acd3c94955
@@ -398,16 +398,16 @@ void GCodeProcessor::TimeMachine::calculate_time(GCodeProcessorResult& result, P
|
||||
|
||||
assert(keep_last_n_blocks <= blocks.size());
|
||||
|
||||
// forward_pass
|
||||
for (size_t i = 0; i + 1 < blocks.size(); ++i) {
|
||||
planner_forward_pass_kernel(blocks[i], blocks[i + 1]);
|
||||
}
|
||||
|
||||
// reverse_pass
|
||||
for (int i = static_cast<int>(blocks.size()) - 1; i > 0; --i) {
|
||||
planner_reverse_pass_kernel(blocks[i - 1], blocks[i]);
|
||||
}
|
||||
|
||||
// forward_pass
|
||||
for (size_t i = 0; i + 1 < blocks.size(); ++i) {
|
||||
planner_forward_pass_kernel(blocks[i], blocks[i + 1]);
|
||||
}
|
||||
|
||||
recalculate_trapezoids(blocks);
|
||||
|
||||
const size_t n_blocks_process = blocks.size() - keep_last_n_blocks;
|
||||
@@ -1874,7 +1874,7 @@ void GCodeProcessor::apply_config(const PrintConfig& config)
|
||||
size_t filament_count = config.filament_diameter.values.size();
|
||||
m_result.filaments_count = filament_count;
|
||||
|
||||
// Orca:
|
||||
// Orca:
|
||||
m_is_XL_printer = is_XL_printer(config);
|
||||
m_preheat_time = config.preheat_time;
|
||||
m_preheat_steps = config.preheat_steps;
|
||||
@@ -3023,7 +3023,7 @@ void GCodeProcessor::process_tags(const std::string_view comment, bool producers
|
||||
float filament_diameter = (static_cast<size_t>(filament_id) < m_result.filament_diameters.size()) ? m_result.filament_diameters[filament_id] : m_result.filament_diameters.back();
|
||||
float filament_radius = 0.5f * filament_diameter;
|
||||
float area_filament_cross_section = static_cast<float>(M_PI) * sqr(filament_radius);
|
||||
|
||||
|
||||
float dE = std::stof(match.str());
|
||||
float volume_extruded_filament = area_filament_cross_section * dE;
|
||||
m_used_filaments.update_flush_per_filament(filament_id, volume_extruded_filament);
|
||||
|
||||
Reference in New Issue
Block a user