diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 3957325f65..8a7ad88365 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -3976,8 +3976,12 @@ bool GUI_App::select_filament_preset(const Preset* preset, size_t extruder_index void GUI_App::search_and_select_filaments(const std::string& material, bool avoid_abrasive, size_t extruder_index, std::string& out_message) { const Preset* preset = preset_bundle->extruders_filaments[extruder_index].get_selected_preset(); + bool b = preset->config.option("filament_abrasive")->get_at(0); // selected is ok - if (!preset->is_default && preset->config.has("filament_type") && preset->config.option("filament_type")->serialize() == material) { + if (!preset->is_default && preset->config.has("filament_type") + && (!avoid_abrasive || preset->config.option("filament_abrasive")->get_at(0) == false) + && preset->config.option("filament_type")->serialize() == material) + { return; } // find installed compatible filament that is Prusa with suitable type and select it @@ -3987,7 +3991,7 @@ void GUI_App::search_and_select_filaments(const std::string& material, bool avoi && filament.preset->is_visible && (!filament.preset->vendor || !filament.preset->vendor->templates_profile) && filament.preset->config.has("filament_type") - && (!avoid_abrasive || filament.preset->config.opt_bool("filament_abrasive") == false) + && (!avoid_abrasive || filament.preset->config.option("filament_abrasive")->get_at(0) == false) && filament.preset->config.option("filament_type")->serialize() == material && filament.preset->name.compare(0, 9, "Prusament") == 0 && select_filament_preset(filament.preset, extruder_index) @@ -4006,7 +4010,7 @@ void GUI_App::search_and_select_filaments(const std::string& material, bool avoi && filament.preset->is_visible && (!filament.preset->vendor || !filament.preset->vendor->templates_profile) && filament.preset->config.has("filament_type") - && (!avoid_abrasive || filament.preset->config.opt_bool("filament_abrasive") == false) + && (!avoid_abrasive || filament.preset->config.option("filament_abrasive")->get_at(0) == false) && filament.preset->config.option("filament_type")->serialize() == material && select_filament_preset(filament.preset, extruder_index) ) @@ -4024,7 +4028,7 @@ void GUI_App::search_and_select_filaments(const std::string& material, bool avoi && !filament.preset->is_default && (!filament.preset->vendor || !filament.preset->vendor->templates_profile) && filament.preset->config.has("filament_type") - && (!avoid_abrasive || filament.preset->config.opt_bool("filament_abrasive") == false) + && (!avoid_abrasive || filament.preset->config.option("filament_abrasive")->get_at(0) == false) && filament.preset->config.option("filament_type")->serialize() == material && filament.preset->name.compare(0, 9, "Prusament") == 0 && select_filament_preset(filament.preset, extruder_index)) diff --git a/src/slic3r/GUI/UserAccountUtils.cpp b/src/slic3r/GUI/UserAccountUtils.cpp index c82a9731e6..7cde12db6e 100644 --- a/src/slic3r/GUI/UserAccountUtils.cpp +++ b/src/slic3r/GUI/UserAccountUtils.cpp @@ -288,7 +288,7 @@ void fill_material_from_json(const std::string& json, std::vector& } if (result_map.find("hardened") != result_map.end()) { for (const std::string& val : result_map["hardened"]) { - avoid_abrasive_result.emplace_back(val == "false" ? 1 : 0); + avoid_abrasive_result.emplace_back(val == "0" ? 1 : 0); } } }