diff --git a/resources/profiles/QIDITechnology/X-MAX 3_bed.STL b/resources/profiles/QIDITechnology/X-MAX 3_bed.stl similarity index 100% rename from resources/profiles/QIDITechnology/X-MAX 3_bed.STL rename to resources/profiles/QIDITechnology/X-MAX 3_bed.stl diff --git a/resources/profiles/QIDITechnology/X-Plus 3_bed.STL b/resources/profiles/QIDITechnology/X-Plus 3_bed.stl similarity index 100% rename from resources/profiles/QIDITechnology/X-Plus 3_bed.STL rename to resources/profiles/QIDITechnology/X-Plus 3_bed.stl diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index d0f5289..8bf45dc 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -831,7 +831,7 @@ void GUI_App::post_init() // preset_updater->sync downloads profile updates on background so it must begin after config wizard finished. bool cw_showed = this->config_wizard_startup(); this->preset_updater->sync(preset_bundle, this); - //B52 + //B57 //if (! cw_showed) { // // The CallAfter is needed as well, without it, GL extensions did not show. // // Also, we only want to show this when the wizard does not, so the new user diff --git a/src/slic3r/GUI/OptionsGroup.cpp b/src/slic3r/GUI/OptionsGroup.cpp index 7766722..7ce73b7 100644 --- a/src/slic3r/GUI/OptionsGroup.cpp +++ b/src/slic3r/GUI/OptionsGroup.cpp @@ -618,7 +618,11 @@ void ConfigOptionsGroup::back_to_sys_value(const std::string& opt_key) void ConfigOptionsGroup::back_to_config_value(const DynamicPrintConfig& config, const std::string& opt_key) { boost::any value; + //B52 if (opt_key == "bed_shape") { + value = get_config_value(config, "bed_exclude_area"); + this->change_opt_value("bed_exclude_area", value); + OptionsGroup::on_change_OG("bed_exclude_area", value); for (const std::string& key : {"bed_custom_texture", "bed_custom_model"}) { value = config.opt_string(key); this->change_opt_value(key, value); diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 81d5d9f..397145d 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -629,8 +629,9 @@ void Tab::update_changed_ui() { auto check_bed_custom_options = [](std::vector& keys) { size_t old_keys_size = keys.size(); + //B52 keys.erase(std::remove_if(keys.begin(), keys.end(), [](const std::string& key) { - return key == "bed_custom_texture" || key == "bed_custom_model"; }), keys.end()); + return key == "bed_custom_texture" || key == "bed_custom_model" || key == "bed_exclude_area"; }), keys.end()); if (old_keys_size != keys.size() && std::find(keys.begin(), keys.end(), "bed_shape") == keys.end()) keys.emplace_back("bed_shape"); }; diff --git a/tests/fff_print/test_perimeters.cpp b/tests/fff_print/test_perimeters.cpp index 7b18261..42bbf9e 100644 --- a/tests/fff_print/test_perimeters.cpp +++ b/tests/fff_print/test_perimeters.cpp @@ -45,6 +45,8 @@ SCENARIO("Perimeter nesting", "[Perimeters]") ExtrusionEntityCollection loops; ExtrusionEntityCollection gap_fill; ExPolygons fill_expolygons; + //B56 + ExPolygons fill_expolygons_no_overlap; Flow flow(1., 1., 1.); PerimeterGenerator::Parameters perimeter_generator_params( 1., // layer height @@ -61,6 +63,7 @@ SCENARIO("Perimeter nesting", "[Perimeters]") // if (config.perimeter_generator == PerimeterGeneratorType::Arachne) // PerimeterGenerator::process_arachne(); // else + //B56 PerimeterGenerator::process_classic( // input: perimeter_generator_params, @@ -71,7 +74,7 @@ SCENARIO("Perimeter nesting", "[Perimeters]") upper_layer_polygons_cache, lower_layer_polygons_cache, // output: - loops, gap_fill, fill_expolygons); + loops, gap_fill, fill_expolygons,fill_expolygons_no_overlap); THEN("expected number of collections") { REQUIRE(loops.entities.size() == data.expolygons.size());