From 1162b101b82664a2d28fefbed3af20b72ef017c2 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Thu, 26 Feb 2026 21:05:54 +0800 Subject: [PATCH] Change bed temperature type to use highest temp by default (#12486) ## Summary - Change default bed temperature type from "By First filament" to "By Highest Temp" - Move `bed_temperature_formula` option from develop mode to advanced mode for better accessibility - Relocate UI control from "Basic Information - Advanced" to "Multimaterial Setup" section where it's more relevant for multi-filament printing Using the highest temperature of all printed filaments is generally safer for bed adhesion than using the first filament's temperature, especially in multi-material prints where different filaments may require different bed temperatures. Screenshot 2026-02-26 at 18 44 56 --- src/libslic3r/PrintConfig.cpp | 4 ++-- src/slic3r/GUI/Tab.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 0bfaac4181..e3458e2de7 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -2405,13 +2405,13 @@ void PrintConfigDef::init_fff_params() def = this->add("bed_temperature_formula", coEnum); def->label = L("Bed temperature type"); def->tooltip = L("This option determines how the bed temperature is set during slicing: based on the temperature of the first filament or the highest temperature of the printed filaments."); - def->mode = comDevelop; + def->mode = comAdvanced; def->enum_keys_map = &ConfigOptionEnum::get_enum_values(); def->enum_values.push_back("by_first_filament"); def->enum_values.push_back("by_highest_temp"); def->enum_labels.push_back(L("By First filament")); def->enum_labels.push_back(L("By Highest Temp")); - def->set_default_value(new ConfigOptionEnum(BedTempFormula::btfFirstFilament)); + def->set_default_value(new ConfigOptionEnum(BedTempFormula::btfHighestTemp)); def = this->add("nozzle_flush_dataset", coInts); def->nullable = true; diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 9965615c19..4f2833d81a 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -4406,7 +4406,6 @@ void TabPrinter::build_fff() optgroup->append_single_option_line("use_relative_e_distances", "printer_basic_information_advanced#use-relative-e-distances"); optgroup->append_single_option_line("use_firmware_retraction", "printer_basic_information_advanced#use-firmware-retraction"); - optgroup->append_single_option_line("bed_temperature_formula", "printer_basic_information_advanced#bed-temperature-type"); // optgroup->append_single_option_line("spaghetti_detector"); optgroup->append_single_option_line("time_cost", "printer_basic_information_advanced#time-cost"); @@ -4891,6 +4890,7 @@ if (is_marlin_flavor) }); }; optgroup->append_single_option_line("manual_filament_change", "printer_multimaterial_setup#manual-filament-change"); + optgroup->append_single_option_line("bed_temperature_formula", "printer_multimaterial_setup#bed-temperature-type"); optgroup = page->new_optgroup(L("Wipe tower"), "param_tower"); optgroup->append_single_option_line("purge_in_prime_tower", "printer_multimaterial_wipe_tower#purge-in-prime-tower");