Bugfix: fill density = 0 was preventing generation of extra solid layers. #75
This commit is contained in:
parent
248ed8589a
commit
d168ecbb4e
@ -349,6 +349,9 @@ sub remove_small_perimeters {
|
|||||||
sub process_bridges {
|
sub process_bridges {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
|
||||||
|
# no bridges are possible if we have no internal surfaces
|
||||||
|
return if $Slic3r::fill_density == 0;
|
||||||
|
|
||||||
my @bridges = ();
|
my @bridges = ();
|
||||||
|
|
||||||
# a bottom surface on a layer > 0 is either a bridge or a overhang
|
# a bottom surface on a layer > 0 is either a bridge or a overhang
|
||||||
|
@ -171,13 +171,6 @@ sub detect_surfaces_type {
|
|||||||
Slic3r::debugf " layer %d has %d bottom, %d top and %d internal surfaces\n",
|
Slic3r::debugf " layer %d has %d bottom, %d top and %d internal surfaces\n",
|
||||||
$layer->id, scalar(@bottom), scalar(@top), scalar(@internal);
|
$layer->id, scalar(@bottom), scalar(@top), scalar(@internal);
|
||||||
}
|
}
|
||||||
|
|
||||||
# remove internal surfaces if no infill is requested
|
|
||||||
if ($Slic3r::fill_density == 0) {
|
|
||||||
foreach my $layer (@{$self->layers}) {
|
|
||||||
@{$layer->surfaces} = grep $_->surface_type ne 'internal', @{$layer->surfaces};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sub discover_horizontal_shells {
|
sub discover_horizontal_shells {
|
||||||
@ -283,7 +276,7 @@ sub extrude_skirt {
|
|||||||
# combine fill surfaces across layers
|
# combine fill surfaces across layers
|
||||||
sub infill_every_layers {
|
sub infill_every_layers {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
return unless $Slic3r::infill_every_layers > 1;
|
return unless $Slic3r::infill_every_layers > 1 && $Slic3r::fill_density > 0;
|
||||||
|
|
||||||
printf "==> COMBINING INFILL\n";
|
printf "==> COMBINING INFILL\n";
|
||||||
|
|
||||||
|
@ -37,7 +37,6 @@ sub go {
|
|||||||
|
|
||||||
# this will clip $layer->surfaces to the infill boundaries
|
# this will clip $layer->surfaces to the infill boundaries
|
||||||
# and split them in top/bottom/internal surfaces;
|
# and split them in top/bottom/internal surfaces;
|
||||||
# if fill density is null, it will delete all internal surfaces
|
|
||||||
$self->status_cb->(30, "Detecting solid surfaces...");
|
$self->status_cb->(30, "Detecting solid surfaces...");
|
||||||
$print->detect_surfaces_type;
|
$print->detect_surfaces_type;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user