New separate option to control the addition of automatic extra perimeters. Also, add none if perimeters are set to 0. #459

This commit is contained in:
Alessandro Ranellucci 2012-06-23 17:10:30 +02:00
parent f61a1f5a07
commit 410279823c
6 changed files with 58 additions and 48 deletions

View File

@ -160,6 +160,7 @@ The author is Alessandro Ranellucci.
home X axis [G28 X], disable motors [M84]).
--layer-gcode Load layer-change G-code from the supplied file (default: nothing).
--support-material Generate support material for overhangs
--extra-perimeters Add more perimeters when needed (default: yes)
--randomize-start Randomize starting point across layers (default: yes)
Retraction options:

View File

@ -120,6 +120,7 @@ our $fill_pattern = 'rectilinear';
our $solid_fill_pattern = 'rectilinear';
our $fill_density = 0.4; # 1 = 100%
our $fill_angle = 45;
our $extra_perimeters = 1;
our $randomize_start = 1;
our $support_material = 0;
our $support_material_tool = 0;

View File

@ -235,7 +235,7 @@ our $Options = {
# print options
'perimeters' => {
label => 'Perimeters (minimum)',
label => 'Perimeters',
cli => 'perimeters=i',
type => 'i',
aliases => [qw(perimeter_offsets)],
@ -269,6 +269,11 @@ our $Options = {
cli => 'fill-angle=i',
type => 'i',
},
'extra_perimeters' => {
label => 'Generate extra perimeters when needed',
cli => 'extra-perimeters!',
type => 'bool',
},
'randomize_start' => {
label => 'Randomize starting points',
cli => 'randomize-start!',

View File

@ -78,7 +78,7 @@ sub new {
},
other => {
title => 'Other',
options => [$Slic3r::have_threads ? qw(threads) : ()],
options => [ ($Slic3r::have_threads ? qw(threads) : ()), qw(extra_perimeters) ],
},
notes => {
title => 'Notes',
@ -112,7 +112,7 @@ sub new {
$make_tab->([qw(cooling)]),
$make_tab->([qw(printer filament)], [qw(print_speed speed)]),
$make_tab->([qw(gcode)]),
$make_tab->([qw(extrusion other sequential_printing)], [qw(output)]),
$make_tab->([qw(extrusion sequential_printing)], [qw(output other)]),
);
$tabpanel->AddPage(Slic3r::GUI::Plater->new($tabpanel), "Plater");

View File

@ -170,6 +170,7 @@ sub make_perimeters {
# one additional inner perimeter, like the top of domed objects-
# this algorithm makes sure that almost one perimeter is overlapping
if ($Slic3r::extra_perimeters && $Slic3r::perimeters > 0) {
for my $layer_id (0 .. $self->layer_count-2) {
my $layer = $self->layers->[$layer_id];
my $upper_layer = $self->layers->[$layer_id+1];
@ -220,6 +221,7 @@ sub make_perimeters {
}
}
}
}
$_->make_perimeters for @{$self->layers};
}

View File

@ -205,6 +205,7 @@ $j
home X axis [G28 X], disable motors [M84]).
--layer-gcode Load layer-change G-code from the supplied file (default: nothing).
--support-material Generate support material for overhangs
--extra-perimeters Add more perimeters when needed (default: yes)
--randomize-start Randomize starting point across layers (default: yes)
Retraction options: