diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 1ddadcb5e..8a5e55f21 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -666,9 +666,11 @@ int MachineObject::ams_filament_mapping(std::vector filaments, std } } + // is_support_ams_mapping if (!is_support_ams_mapping()) { BOOST_LOG_TRIVIAL(info) << "ams_mapping: do not support, use order mapping"; + result.clear(); for (int i = 0; i < filaments.size(); i++) { FilamentInfo info; info.id = filaments[i].id; diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index 996d58a6e..a6f171f6d 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -1991,6 +1991,18 @@ void SelectMachineDialog::update_show_status() reset_timeout(); update_ams_check(obj_); + // do ams mapping if no ams result + if (obj_->has_ams() && m_ams_mapping_result.empty()) { + if (obj_->ams_support_use_ams) { + if (ams_check->GetValue()) { + do_ams_mapping(obj_); + } else { + m_ams_mapping_result.clear(); + sync_ams_mapping_result(m_ams_mapping_result); + } + } + } + // reading done if (obj_->is_in_upgrading()) { show_status(PrintDialogStatus::PrintStatusInUpgrading);