New option to change perimeter order. #534
This commit is contained in:
parent
33b40eda18
commit
db2e76a0df
@ -197,6 +197,7 @@ The author of the Silk icon set is Mark James.
|
|||||||
--extra-perimeters Add more perimeters when needed (default: yes)
|
--extra-perimeters Add more perimeters when needed (default: yes)
|
||||||
--randomize-start Randomize starting point across layers (default: yes)
|
--randomize-start Randomize starting point across layers (default: yes)
|
||||||
--avoid-crossing-perimeters Optimize travel moves so that no perimeters are crossed (default: no)
|
--avoid-crossing-perimeters Optimize travel moves so that no perimeters are crossed (default: no)
|
||||||
|
--external-perimeters-first Reverse perimeter order. (default: no)
|
||||||
--only-retract-when-crossing-perimeters
|
--only-retract-when-crossing-perimeters
|
||||||
Disable retraction when travelling between infill paths inside the same island.
|
Disable retraction when travelling between infill paths inside the same island.
|
||||||
(default: yes)
|
(default: yes)
|
||||||
|
@ -562,6 +562,13 @@ our $Options = {
|
|||||||
type => 'bool',
|
type => 'bool',
|
||||||
default => 0,
|
default => 0,
|
||||||
},
|
},
|
||||||
|
'external_perimeters_first' => {
|
||||||
|
label => 'External perimeters first',
|
||||||
|
tooltip => 'Print contour perimeters from the outermost one to the innermost one instead of the default inverse order.',
|
||||||
|
cli => 'external-perimeters-first!',
|
||||||
|
type => 'bool',
|
||||||
|
default => 0,
|
||||||
|
},
|
||||||
'only_retract_when_crossing_perimeters' => {
|
'only_retract_when_crossing_perimeters' => {
|
||||||
label => 'Only retract when crossing perimeters',
|
label => 'Only retract when crossing perimeters',
|
||||||
tooltip => 'Disables retraction when travelling between infill paths inside the same island.',
|
tooltip => 'Disables retraction when travelling between infill paths inside the same island.',
|
||||||
|
@ -407,7 +407,7 @@ sub build {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
title => 'Advanced',
|
title => 'Advanced',
|
||||||
options => [qw(avoid_crossing_perimeters)],
|
options => [qw(avoid_crossing_perimeters external_perimeters_first)],
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
@ -404,10 +404,14 @@ sub make_perimeters {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# do holes, then contours starting from innermost one
|
# first do holes
|
||||||
$self->_add_perimeter($holes[$_], $is_external{$_} ? EXTR_ROLE_EXTERNAL_PERIMETER : undef)
|
$self->_add_perimeter($holes[$_], $is_external{$_} ? EXTR_ROLE_EXTERNAL_PERIMETER : undef)
|
||||||
for reverse 0 .. $#holes;
|
for reverse 0 .. $#holes;
|
||||||
for my $depth (reverse 0 .. $#$island) {
|
|
||||||
|
# then do contours according to the user settings
|
||||||
|
my @contour_order = 0 .. $#$island;
|
||||||
|
@contour_order = reverse @contour_order if !$Slic3r::Config->external_perimeters_first;
|
||||||
|
for my $depth (@contour_order) {
|
||||||
my $role = $depth == $#$island ? EXTR_ROLE_CONTOUR_INTERNAL_PERIMETER
|
my $role = $depth == $#$island ? EXTR_ROLE_CONTOUR_INTERNAL_PERIMETER
|
||||||
: $depth == 0 ? EXTR_ROLE_EXTERNAL_PERIMETER
|
: $depth == 0 ? EXTR_ROLE_EXTERNAL_PERIMETER
|
||||||
: EXTR_ROLE_PERIMETER;
|
: EXTR_ROLE_PERIMETER;
|
||||||
|
@ -250,6 +250,7 @@ $j
|
|||||||
--extra-perimeters Add more perimeters when needed (default: yes)
|
--extra-perimeters Add more perimeters when needed (default: yes)
|
||||||
--randomize-start Randomize starting point across layers (default: yes)
|
--randomize-start Randomize starting point across layers (default: yes)
|
||||||
--avoid-crossing-perimeters Optimize travel moves so that no perimeters are crossed (default: no)
|
--avoid-crossing-perimeters Optimize travel moves so that no perimeters are crossed (default: no)
|
||||||
|
--external-perimeters-first Reverse perimeter order. (default: no)
|
||||||
--only-retract-when-crossing-perimeters
|
--only-retract-when-crossing-perimeters
|
||||||
Disable retraction when travelling between infill paths inside the same island.
|
Disable retraction when travelling between infill paths inside the same island.
|
||||||
(default: no)
|
(default: no)
|
||||||
|
Loading…
Reference in New Issue
Block a user