diff --git a/src/slic3r/GUI/PartPlate.cpp b/src/slic3r/GUI/PartPlate.cpp index 6281ac4a7..ae9cfa29a 100644 --- a/src/slic3r/GUI/PartPlate.cpp +++ b/src/slic3r/GUI/PartPlate.cpp @@ -1314,7 +1314,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 68d5ab7f9..35132b7c1 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -7937,6 +7937,17 @@ void Plater::priv::on_select_preset(wxCommandEvent &evt) // update plater with new config q->on_config_change(wxGetApp().preset_bundle->full_config()); }); + + // 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(); + } + } + } } else { // BBS // wxWindowUpdateLocker noUpdates1(sidebar->print_panel());