diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 5ff3f5436..e2750dd33 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -903,6 +903,20 @@ bool MachineObject::is_support_amx_ext_mix_mapping() { return true; } +/* the API is developing by AP, not completed now*/ +bool MachineObject::is_ams_on_settingup() const +{ + for (const auto& ext : m_extder_data.extders) + { + if (ext.ams_stat != 0) + { + return true; + } + } + + return false; +} + static float calc_color_distance(wxColour c1, wxColour c2) { float lab[2][3]; @@ -4338,6 +4352,8 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) /*AMS without initialization*/ if (nozzle_id == 0xE) { + ams_id_set.erase(ams_id); + amsList.erase(ams_id); continue; } diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index ec7b2d8d6..572b97a34 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -695,6 +695,8 @@ public: bool is_ams_need_update; inline bool is_ams_unload() { return m_tray_tar.compare("255") == 0; } + [[nodiscard]] bool is_ams_on_settingup() const; + Ams* get_curr_Ams(); AmsTray* get_curr_tray(); AmsTray *get_ams_tray(std::string ams_id, std::string tray_id); diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index 3c9ec35a1..e711b0a9e 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -1737,6 +1737,10 @@ void SelectMachineDialog::show_status(PrintDialogStatus status, std::vectoris_ams_on_settingup()) + { + show_status(PrintDialogStatus::PrintStatusAmsOnSettingup); + return; + } + struct ExtruderStatus { bool has_ams{false}; diff --git a/src/slic3r/GUI/SelectMachine.hpp b/src/slic3r/GUI/SelectMachine.hpp index 72f1e15e9..eb108e6b7 100644 --- a/src/slic3r/GUI/SelectMachine.hpp +++ b/src/slic3r/GUI/SelectMachine.hpp @@ -73,6 +73,7 @@ enum PrintDialogStatus { PrintStatusInSystemPrinting, PrintStatusInPrinting, PrintStatusDisableAms, + PrintStatusAmsOnSettingup, PrintStatusAmsMappingSuccess, PrintStatusAmsMappingInvalid, PrintStatusAmsMappingU0Invalid,