diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index 138f6ea72..ce646d1d3 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -1694,11 +1694,12 @@ void GCode::print_machine_envelope(GCodeOutputStream &file, Print &print) int(print.config().machine_max_acceleration_y.values.front() + 0.5), int(print.config().machine_max_acceleration_z.values.front() + 0.5), int(print.config().machine_max_acceleration_e.values.front() + 0.5)); - file.write_format("M203 X%d Y%d Z%d E%d ; sets maximum feedrates, mm/sec (or mm/min for RRF)\n", + file.write_format("M203 X%d Y%d Z%d E%d ; sets maximum feedrates, %s\n", int(print.config().machine_max_feedrate_x.values.front() * factor + 0.5), int(print.config().machine_max_feedrate_y.values.front() * factor + 0.5), int(print.config().machine_max_feedrate_z.values.front() * factor + 0.5), - int(print.config().machine_max_feedrate_e.values.front() * factor + 0.5)); + int(print.config().machine_max_feedrate_e.values.front() * factor + 0.5), + factor == 60 ? "mm / min" : "mm / sec"); // Now M204 - acceleration. This one is quite hairy thanks to how Marlin guys care about // backwards compatibility: https://github.com/prusa3d/PrusaSlicer/issues/1089 @@ -1707,7 +1708,7 @@ void GCode::print_machine_envelope(GCodeOutputStream &file, Print &print) int travel_acc = flavor == gcfMarlinLegacy ? int(print.config().machine_max_acceleration_extruding.values.front() + 0.5) : int(print.config().machine_max_acceleration_travel.values.front() + 0.5); - // Retract acceleration not accepeted in M204 in RRF + // Retract acceleration not accepted in M204 in RRF if (flavor == gcfRepRapFirmware) file.write_format("M204 P%d T%d ; sets acceleration (P, T), mm/sec^2\n", int(print.config().machine_max_acceleration_extruding.values.front() + 0.5), @@ -1726,11 +1727,14 @@ void GCode::print_machine_envelope(GCodeOutputStream &file, Print &print) print.config().machine_max_jerk_y.values.front() * factor, print.config().machine_max_jerk_z.values.front() * factor, print.config().machine_max_jerk_e.values.front() * factor); - // M205 Sn Tn not supported in RRF if (flavor != gcfRepRapFirmware) file.write_format("M205 S%d T%d ; sets the minimum extruding and travel feed rate, mm/sec\n", int(print.config().machine_min_extruding_rate.values.front() + 0.5), int(print.config().machine_min_travel_rate.values.front() + 0.5)); + else { + // M205 Sn Tn not supported in RRF. They use M203 Inn to set minimum feedrate for + // all moves. This is currently not implemented. + } } } diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 2fc54465a..044a0c77d 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -2926,13 +2926,13 @@ void TabPrinter::toggle_options() if (!m_active_page || m_presets->get_edited_preset().printer_technology() == ptSLA) return; + const GCodeFlavor flavor = m_config->option>("gcode_flavor")->value; bool have_multiple_extruders = m_extruders_count > 1; if (m_active_page->title() == "Custom G-code") toggle_option("toolchange_gcode", have_multiple_extruders); if (m_active_page->title() == "General") { toggle_option("single_extruder_multi_material", have_multiple_extruders); - auto flavor = m_config->option>("gcode_flavor")->value; bool is_marlin_flavor = flavor == gcfMarlinLegacy || flavor == gcfMarlinFirmware; // Disable silent mode for non-marlin firmwares. toggle_option("silent_mode", is_marlin_flavor); @@ -3002,9 +3002,9 @@ void TabPrinter::toggle_options() } if (m_active_page->title() == "Machine limits" && m_machine_limits_description_line) { - assert(m_config->option>("gcode_flavor")->value == gcfMarlinLegacy - || m_config->option>("gcode_flavor")->value == gcfMarlinFirmware - || m_config->option>("gcode_flavor")->value == gcfRepRapFirmware); + assert(flavor == gcfMarlinLegacy + || flavor == gcfMarlinFirmware + || flavor == gcfRepRapFirmware); const auto *machine_limits_usage = m_config->option>("machine_limits_usage"); bool enabled = machine_limits_usage->value != MachineLimitsUsage::Ignore; bool silent_mode = m_config->opt_bool("silent_mode"); @@ -3963,9 +3963,7 @@ void TabPrinter::update_machine_limits_description(const MachineLimitsUsage usag break; case MachineLimitsUsage::TimeEstimateOnly: text = _L("Machine limits will NOT be emitted to G-code, however they will be used to estimate print time, " - "which may therefore not be accurate as the printer may apply a different set of machine limits. " - "This newly works with RepRapFirmware to estimate time, but the algorithm is unchanged from Marlin. " - "Estimates work well when machine limits are accurately described."); + "which may therefore not be accurate as the printer may apply a different set of machine limits."); break; case MachineLimitsUsage::Ignore: text = _L("Machine limits are not set, therefore the print time estimate may not be accurate.");