diff --git a/src/libslic3r/Model.cpp b/src/libslic3r/Model.cpp index d20be486fd..17e30d0278 100644 --- a/src/libslic3r/Model.cpp +++ b/src/libslic3r/Model.cpp @@ -71,6 +71,7 @@ Model& Model::assign_copy(const Model &rhs) // BBS this->plates_custom_gcodes = rhs.plates_custom_gcodes; this->curr_plate_index = rhs.curr_plate_index; + this->calib_pa_pattern.reset(); if (rhs.calib_pa_pattern) { this->calib_pa_pattern = std::make_unique( @@ -106,7 +107,8 @@ Model& Model::assign_copy(Model &&rhs) // BBS this->plates_custom_gcodes = std::move(rhs.plates_custom_gcodes); this->curr_plate_index = rhs.curr_plate_index; - this->calib_pa_pattern = std::move(rhs.calib_pa_pattern); + this->calib_pa_pattern.reset(); + this->calib_pa_pattern.swap(rhs.calib_pa_pattern); //BBS: add auxiliary path logic // BBS: backup, all in one temp dir diff --git a/src/libslic3r/calib.hpp b/src/libslic3r/calib.hpp index 11f797b19a..986442c0fe 100644 --- a/src/libslic3r/calib.hpp +++ b/src/libslic3r/calib.hpp @@ -116,7 +116,7 @@ private: bool m_draw_numbers {true}; }; -struct SuggestedCalibPressureAdvancePatternConfig { +struct SuggestedConfigCalibPAPattern { const std::vector> float_pairs { {"initial_layer_print_height", 0.25}, {"layer_height", 0.2}, @@ -130,8 +130,11 @@ struct SuggestedCalibPressureAdvancePatternConfig { }; const std::vector> int_pairs { + {"skirt_loops", 0}, {"wall_loops", 3} }; + + const std::pair brim_pair {"brim_type", BrimType::btNoBrim}; }; class CalibPressureAdvancePattern : public CalibPressureAdvance { diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index bc492af231..93ae0802c2 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -4150,6 +4150,7 @@ void Plater::priv::delete_all_objects_from_model() object_list_changed(); //BBS + model.calib_pa_pattern.reset(); model.plates_custom_gcodes.clear(); } @@ -4201,6 +4202,7 @@ void Plater::priv::reset(bool apply_presets_change) wxGetApp().load_current_presets(false, false); //BBS + model.calib_pa_pattern.reset(); model.plates_custom_gcodes.clear(); // BBS @@ -8142,14 +8144,14 @@ void Plater::_calib_pa_pattern(const Calib_Params& params) const DynamicPrintConfig& printer_config = wxGetApp().preset_bundle->printers.get_edited_preset().config; DynamicPrintConfig& print_config = wxGetApp().preset_bundle->prints.get_edited_preset().config; - for (const auto opt : SuggestedCalibPressureAdvancePatternConfig().float_pairs) { + for (const auto opt : SuggestedConfigCalibPAPattern().float_pairs) { print_config.set_key_value( opt.first, new ConfigOptionFloat(opt.second) ); } - for (const auto opt : SuggestedCalibPressureAdvancePatternConfig().nozzle_ratio_pairs) { + for (const auto opt : SuggestedConfigCalibPAPattern().nozzle_ratio_pairs) { double nozzle_diameter = printer_config.option("nozzle_diameter")->get_at(0); print_config.set_key_value( opt.first, @@ -8157,13 +8159,18 @@ void Plater::_calib_pa_pattern(const Calib_Params& params) ); } - for (const auto opt : SuggestedCalibPressureAdvancePatternConfig().int_pairs) { + for (const auto opt : SuggestedConfigCalibPAPattern().int_pairs) { print_config.set_key_value( opt.first, new ConfigOptionInt(opt.second) ); } + print_config.set_key_value( + SuggestedConfigCalibPAPattern().brim_pair.first, + new ConfigOptionEnum(SuggestedConfigCalibPAPattern().brim_pair.second) + ); + wxGetApp().get_tab(Preset::TYPE_PRINT)->update_dirty(); wxGetApp().get_tab(Preset::TYPE_PRINT)->reload_config();