diff --git a/resources/printers/filaments_blacklist.json b/resources/printers/filaments_blacklist.json index e5edcf9eb..685f3cb53 100644 --- a/resources/printers/filaments_blacklist.json +++ b/resources/printers/filaments_blacklist.json @@ -7,12 +7,30 @@ "type": "TPU", "action": "prohibition", "description": "TPU is not supported by AMS." + }, + { + "vendor": "Bambulab", + "type": "TPU", + "action": "prohibition", + "description": "TPU is not supported by AMS." }, { "vendor": "Third Party", "type": "PVA", "action": "warning", "description": "Damp PVA will become flexible and get stuck inside AMS,please take care to dry it before use." + }, + { + "vendor": "Third Party", + "type": "PLA-CF", + "action": "warning", + "description": "CF/GF filaments are hard and brittle, It's easy to break or get stuck in AMS, please use with caution." + }, + { + "vendor": "Third Party", + "type": "PETG-CF", + "action": "warning", + "description": "CF/GF filaments are hard and brittle, It's easy to break or get stuck in AMS, please use with caution." }, { "vendor": "Third Party", @@ -22,9 +40,21 @@ }, { "vendor": "Third Party", - "type": "PLA-CF", + "type": "PAHT-CF", "action": "warning", "description": "CF/GF filaments are hard and brittle, It's easy to break or get stuck in AMS, please use with caution." + }, + { + "vendor": "Bambulab", + "type": "PET-CF", + "action": "prohibition", + "description": "Bambu PET-CF/PA6-CF is not supported by AMS." + }, + { + "vendor": "Bambulab", + "type": "PA6-CF", + "action": "prohibition", + "description": "Bambu PET-CF/PA6-CF is not supported by AMS." } ] } diff --git a/src/libslic3r/ProjectTask.hpp b/src/libslic3r/ProjectTask.hpp index fbcdb9118..930fbbdc3 100644 --- a/src/libslic3r/ProjectTask.hpp +++ b/src/libslic3r/ProjectTask.hpp @@ -39,6 +39,7 @@ struct FilamentInfo std::string type; std::string color; std::string filament_id; + std::string brand; float used_m; float used_g; int tray_id; // start with 0 diff --git a/src/slic3r/GUI/AMSMaterialsSetting.cpp b/src/slic3r/GUI/AMSMaterialsSetting.cpp index 8d6f3bbad..9cc496dec 100644 --- a/src/slic3r/GUI/AMSMaterialsSetting.cpp +++ b/src/slic3r/GUI/AMSMaterialsSetting.cpp @@ -473,6 +473,9 @@ void AMSMaterialsSetting::on_select_ok(wxCommandEvent &event) if (ams_filament_id.empty() || nozzle_temp_min.empty() || nozzle_temp_max.empty() || m_filament_type.empty()) { BOOST_LOG_TRIVIAL(trace) << "Invalid Setting id"; + MessageDialog msg_dlg(nullptr, _L("You need to select the material type and color firet."), wxEmptyString, wxICON_WARNING | wxOK); + msg_dlg.ShowModal(); + return; } else { if (obj) { if (obj->is_function_supported(PrinterFunction::FUNC_EXTRUSION_CALI)) { diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index 21ba43600..7f45a65ce 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -2068,14 +2068,34 @@ void SelectMachineDialog::on_ok_btn(wxCommandEvent &event) auto mapping_result = m_mapping_popup.parse_ams_mapping(obj_->amsList); auto has_unknown_filament = false; // check if ams mapping is has errors, tpu - bool has_tpu_filament = false; + bool has_prohibited_filament = false; + wxString prohibited_error = wxEmptyString; + for (auto i = 0; i < m_ams_mapping_result.size(); i++) { + auto tid = m_ams_mapping_result[i].tray_id; + std::string filament_type = boost::to_upper_copy(m_ams_mapping_result[i].type); - if (filament_type == "TPU") { - has_tpu_filament = true; + std::string filament_brand; + + for (auto fs : m_filaments) { + if (fs.id == m_ams_mapping_result[i].id) { + filament_brand = boost::to_upper_copy(m_filaments[i].brand); + } } + + if (filament_type == "TPU") { + has_prohibited_filament = true; + prohibited_error = wxString::Format(_L("%s is not supported by AMS."), "TPU"); + }else if (filament_type == "PET-CF" && filament_brand == "BAMBULAB") { + has_prohibited_filament = true; + prohibited_error = wxString::Format(_L("%s is not supported by AMS."), "PET-CF"); + }else if (filament_type == "PA6-CF" && filament_brand == "BAMBULAB") { + has_prohibited_filament = true; + prohibited_error = wxString::Format(_L("%s is not supported by AMS."), "PA6-CF"); + } + for (auto miter : mapping_result) { //matching if (miter.id == tid) { @@ -2087,8 +2107,8 @@ void SelectMachineDialog::on_ok_btn(wxCommandEvent &event) } } - if (has_tpu_filament && obj_->has_ams() && ams_check->GetValue()) { - wxString tpu_tips = wxString::Format(_L("The %s filament is too soft to be used with the AMS"), "TPU"); + if (has_prohibited_filament && obj_->has_ams() && ams_check->GetValue()) { + wxString tpu_tips = prohibited_error; show_errors(tpu_tips); return; } @@ -3043,6 +3063,7 @@ void SelectMachineDialog::set_default() //sizer_thumbnail->Layout(); std::vector materials; + std::vector brands; std::vector display_materials; { auto preset_bundle = wxGetApp().preset_bundle; @@ -3053,6 +3074,7 @@ void SelectMachineDialog::set_default() std::string filament_type = iter->config.get_filament_type(display_filament_type); display_materials.push_back(display_filament_type); materials.push_back(filament_type); + brands.push_back(iter->vendor->name); } } } @@ -3147,6 +3169,7 @@ void SelectMachineDialog::set_default() FilamentInfo info; info.id = extruder; info.type = materials[extruder]; + info.brand = brands[extruder]; info.color = colour_rgb.GetAsString(wxC2S_HTML_SYNTAX).ToStdString(); m_filaments.push_back(info); }