mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 20:21:12 -06:00 
			
		
		
		
	Bugfix: solid-infill-below-area wasn't ignored when fill_density = 0, causing solid layers here and there. #1049
This commit is contained in:
		
							parent
							
								
									2f046799f2
								
							
						
					
					
						commit
						aae9625a13
					
				
					 2 changed files with 19 additions and 1 deletions
				
			
		|  | @ -462,7 +462,7 @@ sub prepare_fill_surfaces { | ||||||
|     } |     } | ||||||
|          |          | ||||||
|     # turn too small internal regions into solid regions according to the user setting |     # turn too small internal regions into solid regions according to the user setting | ||||||
|     { |     if ($Slic3r::Config->fill_density > 0) { | ||||||
|         my $min_area = scale scale $Slic3r::Config->solid_infill_below_area; # scaling an area requires two calls! |         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, @{$self->fill_surfaces}; |         my @small = grep $_->surface_type == S_TYPE_INTERNAL && $_->expolygon->contour->area <= $min_area, @{$self->fill_surfaces}; | ||||||
|         $_->surface_type(S_TYPE_INTERNALSOLID) for @small; |         $_->surface_type(S_TYPE_INTERNALSOLID) for @small; | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								t/fill.t
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								t/fill.t
									
										
									
									
									
								
							|  | @ -95,4 +95,22 @@ sub scale_points (@) { map [scale $_->[X], scale $_->[Y]], @_ } | ||||||
|     ok Slic3r::Test::gcode($print), 'successful hilbertcurve infill generation'; |     ok Slic3r::Test::gcode($print), 'successful hilbertcurve infill generation'; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | { | ||||||
|  |     my $config = Slic3r::Config->new_from_defaults; | ||||||
|  |     $config->set('skirts', 0); | ||||||
|  |     $config->set('perimeters', 0); | ||||||
|  |     $config->set('fill_density', 0); | ||||||
|  |     $config->set('top_solid_layers', 0); | ||||||
|  |     $config->set('bottom_solid_layers', 0); | ||||||
|  |     $config->set('solid_infill_below_area', 20000000); | ||||||
|  |      | ||||||
|  |     my $print = Slic3r::Test::init_print('20mm_cube', config => $config); | ||||||
|  |     Slic3r::Test::GCodeReader->new(gcode => Slic3r::Test::gcode($print))->parse(sub { | ||||||
|  |         my ($self, $cmd, $args, $info) = @_; | ||||||
|  |          | ||||||
|  |         fail "solid_infill_below_area should be ignored when fill_density is 0" | ||||||
|  |             if $info->{extruding}; | ||||||
|  |     }); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| __END__ | __END__ | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Alessandro Ranellucci
						Alessandro Ranellucci