Avoid overextrusion when support material spacing is configured to < the extrusion spacing. #821

This commit is contained in:
Alessandro Ranellucci 2012-11-23 17:15:52 +01:00
parent e7b307df02
commit d6d96391a9

View File

@ -514,6 +514,9 @@ sub generate_support_material {
my $threshold_rad = deg2rad($Slic3r::Config->support_material_threshold + 1); # +1 makes the threshold inclusive my $threshold_rad = deg2rad($Slic3r::Config->support_material_threshold + 1); # +1 makes the threshold inclusive
my $overhang_width = $threshold_rad == 0 ? undef : scale $Slic3r::Config->layer_height * ((cos $threshold_rad) / (sin $threshold_rad)); my $overhang_width = $threshold_rad == 0 ? undef : scale $Slic3r::Config->layer_height * ((cos $threshold_rad) / (sin $threshold_rad));
my $distance_from_object = 1.5 * $flow->scaled_width; my $distance_from_object = 1.5 * $flow->scaled_width;
my $pattern_spacing = ($Slic3r::Config->support_material_spacing > $flow->spacing)
? $Slic3r::Config->support_material_spacing
: $flow->spacing;
# determine support regions in each layer (for upper layers) # determine support regions in each layer (for upper layers)
Slic3r::debugf "Detecting regions\n"; Slic3r::debugf "Detecting regions\n";
@ -577,7 +580,7 @@ sub generate_support_material {
foreach my $expolygon (@support_material_areas) { foreach my $expolygon (@support_material_areas) {
my @paths = $filler->fill_surface( my @paths = $filler->fill_surface(
Slic3r::Surface->new(expolygon => $expolygon), Slic3r::Surface->new(expolygon => $expolygon),
density => $flow->spacing / $Slic3r::Config->support_material_spacing, density => $flow->spacing / $pattern_spacing,
flow_spacing => $flow->spacing, flow_spacing => $flow->spacing,
); );
my $params = shift @paths; my $params = shift @paths;