diff --git a/src/libslic3r/PerimeterGenerator.cpp b/src/libslic3r/PerimeterGenerator.cpp index 6cae4756a3b..e8f9965ce20 100644 --- a/src/libslic3r/PerimeterGenerator.cpp +++ b/src/libslic3r/PerimeterGenerator.cpp @@ -2166,8 +2166,8 @@ void PerimeterGenerator::process_classic() bool steep_overhang_contour = false; bool steep_overhang_hole = false; const WallDirection wall_direction = config->wall_direction; - if (wall_direction != WallDirection::Auto) { - // Skip steep overhang detection if wall direction is specified + if (wall_direction != WallDirection::Auto || !config->detect_overhang_wall) { + // Skip steep overhang detection if wall direction is specified, or detect overhang wall not enabled steep_overhang_contour = true; steep_overhang_hole = true; } @@ -3180,8 +3180,8 @@ void PerimeterGenerator::process_arachne() bool steep_overhang_contour = false; bool steep_overhang_hole = false; const WallDirection wall_direction = config->wall_direction; - if (wall_direction != WallDirection::Auto) { - // Skip steep overhang detection if wall direction is specified + if (wall_direction != WallDirection::Auto || !config->detect_overhang_wall) { + // Skip steep overhang detection if wall direction is specified, or detect overhang wall not enabled steep_overhang_contour = true; steep_overhang_hole = true; } diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 33941656dae..5dbf78c0da9 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -1056,7 +1056,8 @@ void PrintConfigDef::init_fff_params() def->category = L("Quality"); // xgettext:no-c-format, no-boost-format def->tooltip = L("Number of mm the overhang need to be for the reversal to be considered useful. Can be a % of the perimeter width." - "\nValue 0 enables reversal on every even layers regardless."); + "\nValue 0 enables reversal on every even layers regardless." + "\nWhen Detect overhang wall is not enabled, this option is ignored and reversal happens on every even layers regardless."); def->sidetext = L("mm or %"); def->ratio_over = "line_width"; def->min = 0; diff --git a/src/slic3r/GUI/ConfigManipulation.cpp b/src/slic3r/GUI/ConfigManipulation.cpp index 3f4399d68e3..704fdf0dac1 100644 --- a/src/slic3r/GUI/ConfigManipulation.cpp +++ b/src/slic3r/GUI/ConfigManipulation.cpp @@ -736,8 +736,9 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co bool has_detect_overhang_wall = config->opt_bool("detect_overhang_wall"); bool has_overhang_reverse = config->opt_bool("overhang_reverse"); bool force_wall_direction = config->opt_enum("wall_direction") != WallDirection::Auto; - bool allow_overhang_reverse = has_detect_overhang_wall && !has_spiral_vase && !force_wall_direction; + bool allow_overhang_reverse = !has_spiral_vase && !force_wall_direction; toggle_field("overhang_reverse", allow_overhang_reverse); + toggle_field("overhang_reverse_threshold", has_detect_overhang_wall); toggle_line("overhang_reverse_threshold", allow_overhang_reverse && has_overhang_reverse); toggle_line("overhang_reverse_internal_only", allow_overhang_reverse && has_overhang_reverse); bool has_overhang_reverse_internal_only = config->opt_bool("overhang_reverse_internal_only");