New option to configure the threshold for enforcing solid infill. #224

degen-loop-screen
Alessandro Ranellucci 2012-08-24 19:38:36 +02:00
parent ba58e0733f
commit 92518d28fc
5 changed files with 16 additions and 2 deletions

View File

@ -170,6 +170,9 @@ The author of the Silk icon set is Mark James.
--layer-gcode Load layer-change G-code from the supplied file (default: nothing).
--extra-perimeters Add more perimeters when needed (default: yes)
--randomize-start Randomize starting point across layers (default: yes)
--solid-infill-below-area
Force solid infill when a region has a smaller area than this threshold
(mm^2, default: 70)
Support material options:
--support-material Generate support material for overhangs

View File

@ -449,6 +449,14 @@ our $Options = {
max => 359,
default => 45,
},
'solid_infill_below_area' => {
label => 'Solid infill threshold area',
tooltip => 'Force solid infill for regions having a smaller area than the specified threshold.',
sidetext => 'mm²',
cli => 'solid-infill-below-area=f',
type => 'f',
default => 70,
},
'extra_perimeters' => {
label => 'Generate extra perimeters when needed',
cli => 'extra-perimeters!',

View File

@ -401,7 +401,7 @@ sub build {
},
{
title => 'Advanced',
options => [qw(infill_every_layers fill_angle)],
options => [qw(infill_every_layers fill_angle solid_infill_below_area)],
},
]);

View File

@ -365,7 +365,7 @@ sub prepare_fill_surfaces {
# turn too small internal regions into solid regions
{
my $min_area = ((7 * $self->infill_flow->spacing / &Slic3r::SCALING_FACTOR)**2) * PI;
my $min_area = scale scale $Slic3r::Config->solid_infill_below_area; # scaling an area requires two calls!
my @small = grep $_->surface_type == S_TYPE_INTERNAL && $_->expolygon->contour->area <= $min_area, @surfaces;
$_->surface_type(S_TYPE_INTERNALSOLID) for @small;
Slic3r::debugf "identified %d small surfaces at layer %d\n", scalar(@small), $self->id if @small > 0;

View File

@ -213,6 +213,9 @@ $j
--layer-gcode Load layer-change G-code from the supplied file (default: nothing).
--extra-perimeters Add more perimeters when needed (default: yes)
--randomize-start Randomize starting point across layers (default: yes)
--solid-infill-below-area
Force solid infill when a region has a smaller area than this threshold
(mm^2, default: $config->{solid_infill_below_area})
Support material options:
--support-material Generate support material for overhangs