From f8ae8d3e8de9e4262959ffe2f5381df44133eda4 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Fri, 5 Jul 2013 22:12:58 +0200 Subject: [PATCH] New option to disable overhang flow --- lib/Slic3r/Config.pm | 7 +++++++ lib/Slic3r/GCode.pm | 2 +- lib/Slic3r/GUI/Tab.pm | 3 ++- slic3r.pl | 2 ++ 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/Slic3r/Config.pm b/lib/Slic3r/Config.pm index dace84fbad..e0a0668743 100644 --- a/lib/Slic3r/Config.pm +++ b/lib/Slic3r/Config.pm @@ -594,6 +594,13 @@ our $Options = { type => 'bool', default => 1, }, + 'adjust_overhang_flow' => { + label => 'Adjust overhang flow', + tooltip => 'Experimental option to adjust flow for overhangs (bridge flow will be used).', + cli => 'adjust-overhang-flow!', + type => 'bool', + default => 1, + }, 'avoid_crossing_perimeters' => { label => 'Avoid crossing perimeters', tooltip => 'Optimize travel moves in order to minimize the crossing of perimeters. This is mostly useful with Bowden extruders which suffer from oozing. This feature slows down both the print and the G-code generation.', diff --git a/lib/Slic3r/GCode.pm b/lib/Slic3r/GCode.pm index 3bf8717a93..1a8fc9ea87 100644 --- a/lib/Slic3r/GCode.pm +++ b/lib/Slic3r/GCode.pm @@ -197,7 +197,7 @@ sub extrude_loop { my @paths = (); # detect overhanging/bridging perimeters - if ($extrusion_path->is_perimeter && @{$self->_layer_overhangs}) { + if ($Slic3r::Config->adjust_overhang_flow && $extrusion_path->is_perimeter && @{$self->_layer_overhangs}) { # get non-overhang paths by subtracting overhangs from the loop push @paths, $extrusion_path->subtract_expolygons($self->_layer_overhangs); diff --git a/lib/Slic3r/GUI/Tab.pm b/lib/Slic3r/GUI/Tab.pm index 2e0feb90bb..7f1c698775 100644 --- a/lib/Slic3r/GUI/Tab.pm +++ b/lib/Slic3r/GUI/Tab.pm @@ -412,7 +412,7 @@ sub build { }, { title => 'Quality (slower slicing)', - options => [qw(extra_perimeters avoid_crossing_perimeters start_perimeters_at_concave_points start_perimeters_at_non_overhang thin_walls)], + options => [qw(extra_perimeters avoid_crossing_perimeters start_perimeters_at_concave_points start_perimeters_at_non_overhang thin_walls adjust_overhang_flow)], lines => [ Slic3r::GUI::OptionsGroup->single_option_line('extra_perimeters'), Slic3r::GUI::OptionsGroup->single_option_line('avoid_crossing_perimeters'), @@ -421,6 +421,7 @@ sub build { options => [qw(start_perimeters_at_concave_points start_perimeters_at_non_overhang)], }, Slic3r::GUI::OptionsGroup->single_option_line('thin_walls'), + Slic3r::GUI::OptionsGroup->single_option_line('adjust_overhang_flow'), ], }, { diff --git a/slic3r.pl b/slic3r.pl index 57e58a1ca5..7ee2814efb 100755 --- a/slic3r.pl +++ b/slic3r.pl @@ -278,6 +278,8 @@ $j --start-perimeters-at-non-overhang Try to start perimeters at non-overhang points if any (default: no) --thin-walls Detect single-width walls (default: yes) + --adjust-overhang-flow + Experimental option to use bridge flow for overhangs (default: yes) Support material options: --support-material Generate support material for overhangs