diff --git a/src/libslic3r/GCode/GCodeProcessor.cpp b/src/libslic3r/GCode/GCodeProcessor.cpp index b2ab4d2943..063785ce90 100644 --- a/src/libslic3r/GCode/GCodeProcessor.cpp +++ b/src/libslic3r/GCode/GCodeProcessor.cpp @@ -4415,33 +4415,43 @@ void GCodeProcessor::run_post_process() } } } - } - else if (line == reserved_tag(ETags::Estimated_Printing_Time_Placeholder)) { + } else if (line == reserved_tag(ETags::Estimated_Printing_Time_Placeholder)) { for (size_t i = 0; i < static_cast(PrintEstimatedStatistics::ETimeMode::Count); ++i) { - const TimeMachine& machine = m_time_processor.machines[i]; - PrintEstimatedStatistics::ETimeMode mode = static_cast(i); + const TimeMachine& machine = m_time_processor.machines[i]; + PrintEstimatedStatistics::ETimeMode mode = static_cast(i); if (mode == PrintEstimatedStatistics::ETimeMode::Normal || machine.enabled) { char buf[128]; - sprintf(buf, "; estimated printing time (%s mode) = %s\n", - (mode == PrintEstimatedStatistics::ETimeMode::Normal) ? "normal" : "silent", - get_time_dhms(machine.time).c_str()); + if (!s_IsBBLPrinter) + // Orca: compatibility with klipper_estimator + sprintf(buf, "; estimated printing time (%s mode) = %s\n", + (mode == PrintEstimatedStatistics::ETimeMode::Normal) ? "normal" : "silent", + get_time_dhms(machine.time).c_str()); + else { + sprintf(buf, "; model printing time: %s; total estimated time: %s\n", + get_time_dhms(machine.time - machine.prepare_time).c_str(), get_time_dhms(machine.time).c_str()); + } export_lines.append_line(buf); - processed = true; } } for (size_t i = 0; i < static_cast(PrintEstimatedStatistics::ETimeMode::Count); ++i) { - const TimeMachine& machine = m_time_processor.machines[i]; - PrintEstimatedStatistics::ETimeMode mode = static_cast(i); + const TimeMachine& machine = m_time_processor.machines[i]; + PrintEstimatedStatistics::ETimeMode mode = static_cast(i); if (mode == PrintEstimatedStatistics::ETimeMode::Normal || machine.enabled) { char buf[128]; sprintf(buf, "; estimated first layer printing time (%s mode) = %s\n", - (mode == PrintEstimatedStatistics::ETimeMode::Normal) ? "normal" : "silent", - get_time_dhms(machine.prepare_time).c_str()); + (mode == PrintEstimatedStatistics::ETimeMode::Normal) ? "normal" : "silent", + get_time_dhms(machine.prepare_time).c_str()); export_lines.append_line(buf); processed = true; } } } + // Orca: write total layer number, this is used by Bambu printers only as of now + else if (line == reserved_tag(ETags::Total_Layer_Number_Placeholder)) { + char buf[128]; + sprintf(buf, "; total layer number: %u\n", m_layer_id); + export_lines.append_line(buf); + } } return processed;