From 2942485a94c522f829ccfc5e5552081984823c51 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Sun, 10 Mar 2013 18:15:44 +0100 Subject: [PATCH] New option to make infill before perimeters. #1039 --- README.markdown | 1 + lib/Slic3r/Config.pm | 7 +++++++ lib/Slic3r/GUI/Tab.pm | 2 +- lib/Slic3r/Print.pm | 3 ++- slic3r.pl | 1 + 5 files changed, 12 insertions(+), 2 deletions(-) diff --git a/README.markdown b/README.markdown index 5a8a1ba54..5015e2314 100644 --- a/README.markdown +++ b/README.markdown @@ -205,6 +205,7 @@ The author of the Silk icon set is Mark James. (mm^2, default: 70) --infill-only-where-needed Only infill under ceilings (default: no) + --infill-first Make infill before perimeters (default: no) Support material options: --support-material Generate support material for overhangs diff --git a/lib/Slic3r/Config.pm b/lib/Slic3r/Config.pm index 7dee230ac..5bd91a288 100644 --- a/lib/Slic3r/Config.pm +++ b/lib/Slic3r/Config.pm @@ -395,6 +395,13 @@ our $Options = { type => 'bool', default => 0, }, + 'infill_first' => { + label => 'Infill before perimeters', + tooltip => 'This option will switch the print order of perimeters and infill, making the latter first.', + cli => 'infill-first!', + type => 'bool', + default => 0, + }, # flow options 'extrusion_width' => { diff --git a/lib/Slic3r/GUI/Tab.pm b/lib/Slic3r/GUI/Tab.pm index 0463fb041..35637c886 100644 --- a/lib/Slic3r/GUI/Tab.pm +++ b/lib/Slic3r/GUI/Tab.pm @@ -419,7 +419,7 @@ sub build { { title => 'Advanced', options => [qw(infill_every_layers infill_only_where_needed solid_infill_every_layers fill_angle - solid_infill_below_area only_retract_when_crossing_perimeters)], + solid_infill_below_area only_retract_when_crossing_perimeters infill_first)], }, ]); diff --git a/lib/Slic3r/Print.pm b/lib/Slic3r/Print.pm index 727f46a8d..027202867 100644 --- a/lib/Slic3r/Print.pm +++ b/lib/Slic3r/Print.pm @@ -909,7 +909,8 @@ sub write_gcode { }; # give priority to infill if we were already using its extruder - if ($gcodegen->multiple_extruders && $region->extruders->{infill} eq $gcodegen->extruder) { + if ($Slic3r::Config->infill_first + || ($gcodegen->multiple_extruders && $region->extruders->{infill} eq $gcodegen->extruder)) { $extrude_fills->(); $extrude_perimeters->(); } else { diff --git a/slic3r.pl b/slic3r.pl index d73874d26..301c6b85d 100755 --- a/slic3r.pl +++ b/slic3r.pl @@ -258,6 +258,7 @@ $j (mm^2, default: $config->{solid_infill_below_area}) --infill-only-where-needed Only infill under ceilings (default: no) + --infill-first Make infill before perimeters (default: no) Support material options: --support-material Generate support material for overhangs