diff --git a/src/slic3r/GUI/PartPlate.cpp b/src/slic3r/GUI/PartPlate.cpp index 12a7670fb5..c95494608d 100644 --- a/src/slic3r/GUI/PartPlate.cpp +++ b/src/slic3r/GUI/PartPlate.cpp @@ -1730,7 +1730,7 @@ std::vector PartPlate::get_used_filaments() bool PartPlate::check_filament_printable(const DynamicPrintConfig &config, wxString& error_message) { error_message.clear(); - FilamentMapMode mode = config.option>("filament_map_mode")->value; + FilamentMapMode mode = this->get_real_filament_map_mode(config); // only check printablity if we have explicit map result if (mode != fmmManual) return true; diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 5e7d51597b..469533ea9c 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -7879,6 +7879,18 @@ void Plater::priv::on_select_preset(wxCommandEvent &evt) preset_name = physical_printers.get_selected_printer_preset_name(); else physical_printers.unselect_printer(); + + + // sync extruder info when select multi_extruder preset + if (Slic3r::DeviceManager *dev = Slic3r::GUI::wxGetApp().getDeviceManager()) { + MachineObject *obj = dev->get_selected_machine(); + if (obj && obj->is_multi_extruders()) { + PresetBundle *preset_bundle = wxGetApp().preset_bundle; + if (preset_bundle->printers.get_edited_preset().get_printer_type(preset_bundle) == obj->printer_type) { + GUI::wxGetApp().sidebar().sync_extruder_list(); + } + } + } } //BBS //wxWindowUpdateLocker noUpdates1(sidebar->print_panel());