mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-17 02:22:17 +00:00
Make Overhang Printable (#1615)
* First working conical overhang impl * Add settings for Make overhang printable * Added an Advanced setting to the Quality menu for Make overhang printable * Allow toggling the feature and adjusting the angle threshold * Retain recesses in the bottom of the model when "Make Overhangs Printable" is turned on * Add settings for Make overhang printable hole size * Allow disabling conical overhang per modifier * Should check upper layer instead * Skip unnecessary layers * Apply conical overhang before any size compensation which fixs the `lslices` not being updated issue and also the elephant foot compensation * 1. Fix an issue that changing make_overhang_printable related parameters won't clear caches properly. 2. Tweak the logic of make_overhang_printable parameter so that it works for per region/object/print level. Remove make_overhang_printable_disable parameter. * Change default make_overhang_printable_angle to 55 * One more missing commit * 1. Skip checking default_region_config()->make_overhang_printable 2. Handle make_overhang_printable_angle and make_overhang_printable_hole_size value change --------- Co-authored-by: David Bern <odie5533@users.noreply.github.com> Co-authored-by: SoftFever <softfeverever@gmail.com>
This commit is contained in:
@@ -2371,6 +2371,35 @@ void PrintConfigDef::init_fff_params()
|
||||
def->mode = comAdvanced;
|
||||
def->set_default_value(new ConfigOptionString("{input_filename_base}_{filament_type[0]}_{print_time}.gcode"));
|
||||
|
||||
def = this->add("make_overhang_printable", coBool);
|
||||
def->label = L("Make overhang printable");
|
||||
def->category = L("Quality");
|
||||
def->tooltip = L("Modify the geometry to print overhangs without support material.");
|
||||
def->mode = comAdvanced;
|
||||
def->set_default_value(new ConfigOptionBool(false));
|
||||
|
||||
def = this->add("make_overhang_printable_angle", coFloat);
|
||||
def->label = L("Make overhang printable maximum angle");
|
||||
def->category = L("Quality");
|
||||
def->tooltip = L("Maximum angle of overhangs to allow after making more steep overhangs printable."
|
||||
"90° will not change the model at all and allow any overhang, while 0 will "
|
||||
"replace all overhangs with conical material.");
|
||||
def->sidetext = L("°");
|
||||
def->mode = comAdvanced;
|
||||
def->min = 0.;
|
||||
def->max = 90.;
|
||||
def->set_default_value(new ConfigOptionFloat(55.));
|
||||
|
||||
def = this->add("make_overhang_printable_hole_size", coFloat);
|
||||
def->label = L("Make overhang printable hole area");
|
||||
def->category = L("Quality");
|
||||
def->tooltip = L("Maximum area of a hole in the base of the model before it's filled by conical material."
|
||||
"A value of 0 will fill all the holes in the model base.");
|
||||
def->sidetext = L("mm²");
|
||||
def->mode = comAdvanced;
|
||||
def->min = 0.;
|
||||
def->set_default_value(new ConfigOptionFloat(0.));
|
||||
|
||||
def = this->add("detect_overhang_wall", coBool);
|
||||
def->label = L("Detect overhang wall");
|
||||
def->category = L("Quality");
|
||||
|
||||
Reference in New Issue
Block a user