FIX: add clumping detect area parameter

1. add wrapping detect area parameter
2. fix spiral retract bug
3. modify the enable parameter to print config
4. close clumping detect for manual cali mode
jira: STUDIO-13761 & STUDIO-13766

Change-Id: Ib597ca48a0342a8ae3930f5e790085987f252374
(cherry picked from commit 698a5e6bc0b281ba77fc1fd7692daec09cb440b4)
This commit is contained in:
zhimin.zeng
2025-08-01 19:19:18 +08:00
committed by Noisyfox
parent b39bc5bf8f
commit 89c58fb4d9
20 changed files with 56 additions and 78 deletions

View File

@@ -4946,8 +4946,8 @@ std::map<std::string, std::string> Plater::get_bed_texture_maps()
bool Plater::get_enable_wrapping_detection()
{
const DynamicPrintConfig & printer_config = wxGetApp().preset_bundle->printers.get_edited_preset().config;
const ConfigOptionBool * wrapping_detection = printer_config.option<ConfigOptionBool>("enable_wrapping_detection");
const DynamicPrintConfig & print_config = wxGetApp().preset_bundle->prints.get_edited_preset().config;
const ConfigOptionBool * wrapping_detection = print_config.option<ConfigOptionBool>("enable_wrapping_detection");
return (wrapping_detection != nullptr) && wrapping_detection->value;
}
@@ -11588,10 +11588,10 @@ void Plater::_calib_pa_pattern(const Calib_Params& params)
);
}
print_config.set_key_value(
SuggestedConfigCalibPAPattern().brim_pair.first,
new ConfigOptionEnum<BrimType>(SuggestedConfigCalibPAPattern().brim_pair.second)
);
print_config.set_key_value(SuggestedConfigCalibPAPattern().brim_pair.first,
new ConfigOptionEnum<BrimType>(SuggestedConfigCalibPAPattern().brim_pair.second));
print_config.set_key_value("enable_wrapping_detection", new ConfigOptionBool(false));
// Orca: Set the outer wall speed to the optimal speed for the test, cap it with max volumetric speed
if (speeds.empty()) {
@@ -11778,6 +11778,7 @@ void Plater::_calib_pa_tower(const Calib_Params& params) {
const double nozzle_diameter = printer_config->option<ConfigOptionFloats>("nozzle_diameter")->get_at(0);
print_config.set_key_value("enable_wrapping_detection", new ConfigOptionBool(false));
filament_config->set_key_value("slow_down_layer_time", new ConfigOptionFloats{ 1.0f });
@@ -11942,7 +11943,7 @@ void adjust_settings_for_flowrate_calib(ModelObjectPtrs& objects, bool linear, i
print_config->set_key_value("alternate_extra_wall", new ConfigOptionBool(false));
print_config->set_key_value("initial_layer_print_height", new ConfigOptionFloat(first_layer_height));
print_config->set_key_value("reduce_crossing_wall", new ConfigOptionBool(true));
print_config->set_key_value("enable_wrapping_detection", new ConfigOptionBool(false));
wxGetApp().get_tab(Preset::TYPE_PRINT)->update_dirty();
wxGetApp().get_tab(Preset::TYPE_FILAMENT)->update_dirty();
@@ -12015,6 +12016,9 @@ void Plater::calib_temp(const Calib_Params& params) {
model().objects[0]->config.set_key_value("alternate_extra_wall", new ConfigOptionBool(false));
model().objects[0]->config.set_key_value("seam_slope_type", new ConfigOptionEnum<SeamScarfType>(SeamScarfType::None));
auto print_config = &wxGetApp().preset_bundle->prints.get_edited_preset().config;
print_config->set_key_value("enable_wrapping_detection", new ConfigOptionBool(false));
changed_objects({ 0 });
wxGetApp().get_tab(Preset::TYPE_PRINT)->update_dirty();
wxGetApp().get_tab(Preset::TYPE_FILAMENT)->update_dirty();
@@ -12095,6 +12099,7 @@ void Plater::calib_max_vol_speed(const Calib_Params& params)
print_config->set_key_value("timelapse_type", new ConfigOptionEnum<TimelapseType>(tlTraditional));
print_config->set_key_value("spiral_mode", new ConfigOptionBool(true));
print_config->set_key_value("max_volumetric_extrusion_rate_slope", new ConfigOptionFloat(0));
print_config->set_key_value("enable_wrapping_detection", new ConfigOptionBool(false));
changed_objects({ 0 });
wxGetApp().get_tab(Preset::TYPE_PRINT)->update_dirty();
@@ -12135,6 +12140,8 @@ void Plater::calib_retraction(const Calib_Params& params)
auto printer_config = &wxGetApp().preset_bundle->printers.get_edited_preset().config;
auto obj = model().objects[0];
print_config->set_key_value("enable_wrapping_detection", new ConfigOptionBool(false));
double layer_height = 0.2;
auto max_lh = printer_config->option<ConfigOptionFloats>("max_layer_height");
@@ -12187,6 +12194,7 @@ void Plater::calib_VFA(const Calib_Params& params)
print_config->set_key_value("overhang_reverse", new ConfigOptionBool(false));
print_config->set_key_value("detect_thin_wall", new ConfigOptionBool(false));
print_config->set_key_value("spiral_mode", new ConfigOptionBool(true));
print_config->set_key_value("enable_wrapping_detection", new ConfigOptionBool(false));
model().objects[0]->config.set_key_value("brim_type", new ConfigOptionEnum<BrimType>(btOuterOnly));
model().objects[0]->config.set_key_value("brim_width", new ConfigOptionFloat(3.0));
model().objects[0]->config.set_key_value("brim_object_gap", new ConfigOptionFloat(0.0));