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 dace84fba..e0a066874 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 3bf8717a9..1a8fc9ea8 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 2e0feb90b..7f1c69877 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 57e58a1ca..7ee2814ef 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