Add configurable short wall/perimeter cleaning for Arachne (#2790)

* add feature to add configurable value to clean/remove short un-closed walls/perimeters, to improve print times and reduce stringing (and generally lead to a cleaner print).

* fixes to short wall removal, which no longer affects bottom or top surfaces. allowed adjusting Top-surface threshold (renamed from One wall threshold for clarity) when short wall removal value is configured above default of 0.5.

* small fix for toggle_line for min_width_top_surface, to only be visible if min_length_factor > 0.5 and arachne is enabled.

* Use copy of input_params

* revert `One wall threshold"` string change

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
This commit is contained in:
Scott Mudge 2024-01-01 17:21:36 -05:00 committed by GitHub
parent 9701ab18e8
commit 209e9a2bb9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 79 additions and 28 deletions

View file

@ -4540,6 +4540,20 @@ def = this->add("filament_loading_speed", coFloats);
def->min = 0;
def->set_default_value(new ConfigOptionPercent(25));
def = this->add("min_length_factor", coFloat);
def->label = L("Minimum wall length");
def->category = L("Quality");
def->tooltip = L("Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. "
"Higher values remove more and longer walls.\n\n"
"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the ouside of the model. "
"Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. "
"'One wall threshold' is only visibile if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled.");
def->sidetext = L("");
def->mode = comAdvanced;
def->min = 0.0;
def->max = 25.0;
def->set_default_value(new ConfigOptionFloat(0.5));
def = this->add("initial_layer_min_bead_width", coPercent);
def->label = L("First layer minimum wall width");
def->category = L("Quality");