mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-12 09:17:52 -06:00
Allow reverse on odd without detect overhang wall (SoftFever/OrcaSlicer#6920)
This commit is contained in:
parent
17492c1e5b
commit
8709f22597
3 changed files with 16 additions and 2 deletions
|
@ -735,6 +735,12 @@ static ExtrusionEntityCollection traverse_loops(const PerimeterGenerator &perime
|
|||
if(paths.empty()) continue;
|
||||
chain_and_reorder_extrusion_paths(paths, &paths.front().first_point());
|
||||
} else {
|
||||
if (overhangs_reverse && perimeter_generator.layer_id > perimeter_generator.object_config->raft_layers) {
|
||||
// Always reverse if detect overhang wall is not enabled
|
||||
steep_overhang_contour = true;
|
||||
steep_overhang_hole = true;
|
||||
}
|
||||
|
||||
ExtrusionPath path(role);
|
||||
//BBS.
|
||||
path.polyline = polygon.split_at_first_point();
|
||||
|
@ -1219,6 +1225,12 @@ static ExtrusionEntityCollection traverse_extrusions(const PerimeterGenerator& p
|
|||
}
|
||||
}
|
||||
else {
|
||||
if (overhangs_reverse && perimeter_generator.layer_id > perimeter_generator.object_config->raft_layers) {
|
||||
// Always reverse if detect overhang wall is not enabled
|
||||
steep_overhang_contour = true;
|
||||
steep_overhang_hole = true;
|
||||
}
|
||||
|
||||
extrusion_paths_append(paths, *extrusion, role, is_external ? perimeter_generator.ext_perimeter_flow : perimeter_generator.perimeter_flow);
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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<WallDirection>("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");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue