diff --git a/lib/Slic3r/Fill.pm b/lib/Slic3r/Fill.pm index 9cb831928..3bbe68ee9 100644 --- a/lib/Slic3r/Fill.pm +++ b/lib/Slic3r/Fill.pm @@ -214,14 +214,16 @@ sub make_fill { # calculate flow spacing for infill pattern generation my $using_internal_flow = 0; - my $infill_combined_flow = 0; # multiply the required layer height by infill_every_layers - if ($layerm->region->config->infill_every_layers > 1) { - $infill_combined_flow = - $layerm->layer->object->config->layer_height*$layerm->region->config->infill_every_layers; - } else { - $infill_combined_flow = - $layerm->layer->object->config->layer_height; + my $infill_combined_flow = $layerm->layer->object->config->layer_height * $layerm->region->config->infill_every_layers; # multiply the required layer height by infill_every_layers + if ($infill_combined_flow == 0) { + # just in case something happens we don't want to put in a 0mm layer. + $infill_combined_flow = $layerm->layer->object->config->layer_height; } + if ($infill_combined_flow > $flow->nozzle_diameter) { + # can't put out layers bigger than the nozzle width, go as big as possible + $infill_combined_flow = (($flow->nozzle_diameter / $layerm->layer->object->config->layer_height) % 1) * $layerm->layer->object->config->layer_height + } + if (!$is_solid && !$is_bridge) { # it's internal infill, so we can calculate a generic flow spacing # for all layers, for avoiding the ugly effect of