diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 7e2edb3395..9b7e5b38f3 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -912,6 +912,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; +} + void MachineObject::get_ams_colors(std::vector &ams_colors) { ams_colors.clear(); ams_colors.reserve(amsList.size()); @@ -4299,6 +4313,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 6a74fd5cab..ce12a34270 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -700,6 +700,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 bc5e8340ca..e3e811d21e 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -1743,6 +1743,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 7588fcbc8b..e3ae28736e 100644 --- a/src/slic3r/GUI/SelectMachine.hpp +++ b/src/slic3r/GUI/SelectMachine.hpp @@ -75,6 +75,7 @@ enum PrintDialogStatus { PrintStatusInSystemPrinting, PrintStatusInPrinting, PrintStatusDisableAms, + PrintStatusAmsOnSettingup, PrintStatusAmsMappingSuccess, PrintStatusAmsMappingInvalid, PrintStatusAmsMappingU0Invalid,