mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 20:21:12 -06:00 
			
		
		
		
	New option to only infill where strictly needed for supporting ceilings
This commit is contained in:
		
							parent
							
								
									cf8cfc1380
								
							
						
					
					
						commit
						cac79c0575
					
				
					 7 changed files with 77 additions and 8 deletions
				
			
		|  | @ -2,7 +2,7 @@ package Slic3r::Layer::Region; | |||
| use Moo; | ||||
| 
 | ||||
| use Slic3r::ExtrusionPath ':roles'; | ||||
| use Slic3r::Geometry qw(scale chained_path_items); | ||||
| use Slic3r::Geometry qw(PI scale chained_path_items); | ||||
| use Slic3r::Geometry::Clipper qw(safety_offset union_ex diff_ex intersection_ex); | ||||
| use Slic3r::Surface ':types'; | ||||
| 
 | ||||
|  | @ -16,6 +16,7 @@ has 'layer' => ( | |||
| has 'region'            => (is => 'ro', required => 1); | ||||
| has 'perimeter_flow'    => (is => 'rw'); | ||||
| has 'infill_flow'       => (is => 'rw'); | ||||
| has 'overhang_width'    => (is => 'lazy'); | ||||
| 
 | ||||
| # collection of spare segments generated by slicing the original geometry; | ||||
| # these need to be merged in continuos (closed) polylines | ||||
|  | @ -64,6 +65,12 @@ sub _update_flows { | |||
|         : $self->region->flows->{infill}); | ||||
| } | ||||
| 
 | ||||
| sub _build_overhang_width { | ||||
|     my $self = shift; | ||||
|     my $threshold_rad = PI/2 - atan2($self->perimeter_flow->width / $self->height / 2, 1); | ||||
|     return scale($self->height * ((cos $threshold_rad) / (sin $threshold_rad))); | ||||
| } | ||||
| 
 | ||||
| # build polylines from lines | ||||
| sub make_surfaces { | ||||
|     my $self = shift; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Alessandro Ranellucci
						Alessandro Ranellucci