diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index da3f703b4c..d78f6fa919 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -903,6 +903,10 @@ std::string MachineObject::get_filament_id(std::string ams_id, std::string tray_ return this->get_tray(ams_id, tray_id).setting_id; } +std::string MachineObject::get_filament_type(const std::string& ams_id, const std::string& tray_id) const { + return this->get_tray(ams_id, tray_id).type; +} + void MachineObject::_parse_ams_status(int ams_status) { ams_status_sub = ams_status & 0xFF; diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index 9f9762b726..3229c8398c 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -793,6 +793,7 @@ public: AmsTray *get_ams_tray(std::string ams_id, std::string tray_id); std::string get_filament_id(std::string ams_id, std::string tray_id) const; + std::string get_filament_type(const std::string& ams_id, const std::string& tray_id) const; // parse amsStatusMain and ams_status_sub void _parse_ams_status(int ams_status); diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index ad9f90f1b7..f58489e0ee 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -1892,8 +1892,8 @@ void SelectMachineDialog::on_ok_btn(wxCommandEvent &event) continue; } - const auto& mapped_fila_id = obj_->get_filament_id(mapping_info.ams_id, mapping_info.slot_id); - if (!mapped_fila_id.empty() && (mapped_fila_id != mapping_info.filament_id)) { + const auto& mapped_fila_type = obj_->get_filament_type(mapping_info.ams_id, mapping_info.slot_id); + if (!mapped_fila_type.empty() && (mapped_fila_type != mapping_info.type)) { confirm_text.push_back(ConfirmBeforeSendInfo(_L("The filament type setting of external spool is different from the filament in the slicing file."))); has_slice_warnings = true; break;