mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-11-02 20:51:23 -07:00 
			
		
		
		
	Merge branch 'master' into overhang
This commit is contained in:
		
						commit
						61c1045331
					
				
					 7 changed files with 11 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -68,6 +68,7 @@ use constant SCALING_FACTOR         => 0.000001;
 | 
			
		|||
use constant RESOLUTION             => 0.0125;
 | 
			
		||||
use constant SCALED_RESOLUTION      => RESOLUTION / SCALING_FACTOR;
 | 
			
		||||
use constant OVERLAP_FACTOR         => 1;
 | 
			
		||||
use constant BRIDGE_OVERLAP_FACTOR  => 0.2;
 | 
			
		||||
use constant SMALL_PERIMETER_LENGTH => (6.5 / SCALING_FACTOR) * 2 * PI;
 | 
			
		||||
use constant LOOP_CLIPPING_LENGTH_OVER_SPACING      => 0.15;
 | 
			
		||||
use constant INFILL_OVERLAP_OVER_SPACING  => 0.45;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,7 +20,7 @@ has 'polyline' => (
 | 
			
		|||
 | 
			
		||||
# height is the vertical thickness of the extrusion expressed in mm
 | 
			
		||||
has 'height'       => (is => 'rw');
 | 
			
		||||
has 'flow_spacing' => (is => 'rw');
 | 
			
		||||
has 'flow_spacing' => (is => 'rw', required => 1);
 | 
			
		||||
has 'role'         => (is => 'rw', required => 1);
 | 
			
		||||
 | 
			
		||||
use constant EXTR_ROLE_PERIMETER                    => 0;
 | 
			
		||||
| 
						 | 
				
			
			@ -244,6 +244,7 @@ sub detect_arcs {
 | 
			
		|||
            my $arc = Slic3r::ExtrusionPath::Arc->new(
 | 
			
		||||
                polyline    => Slic3r::Polyline->new(\@arc_points),
 | 
			
		||||
                role        => $self->role,
 | 
			
		||||
                flow_spacing => $self->flow_spacing,
 | 
			
		||||
                orientation => $orientation,
 | 
			
		||||
                center      => $arc_center,
 | 
			
		||||
                radius      => $arc_center->distance_to($points[$i]),
 | 
			
		||||
| 
						 | 
				
			
			@ -253,6 +254,7 @@ sub detect_arcs {
 | 
			
		|||
            push @paths, (ref $self)->new(
 | 
			
		||||
                polyline        => Slic3r::Polyline->new(@points[0..$i]),
 | 
			
		||||
                role            => $self->role,
 | 
			
		||||
                flow_spacing    => $self->flow_spacing,
 | 
			
		||||
                height          => $self->height,
 | 
			
		||||
            ) if $i > 0;
 | 
			
		||||
            
 | 
			
		||||
| 
						 | 
				
			
			@ -272,6 +274,7 @@ sub detect_arcs {
 | 
			
		|||
    push @paths, (ref $self)->new(
 | 
			
		||||
        polyline        => Slic3r::Polyline->new(\@points),
 | 
			
		||||
        role            => $self->role,
 | 
			
		||||
        flow_spacing    => $self->flow_spacing,
 | 
			
		||||
        height          => $self->height,
 | 
			
		||||
    ) if @points > 1;
 | 
			
		||||
    
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -99,7 +99,7 @@ sub _build_width {
 | 
			
		|||
sub _build_spacing {
 | 
			
		||||
    my $self = shift;
 | 
			
		||||
    my $width = $self->width;
 | 
			
		||||
    return $width + &Slic3r::OVERLAP_FACTOR * ($width * PI / 4 - $width);
 | 
			
		||||
    return $width - (&Slic3r::BRIDGE_OVERLAP_FACTOR * $width);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
1;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -699,7 +699,7 @@ sub make_brim {
 | 
			
		|||
        # JT_SQUARE ensures no vertex is outside the given offset distance
 | 
			
		||||
        # -0.5 because islands are not represented by their centerlines
 | 
			
		||||
        # TODO: we need the offset inwards/offset outwards logic to avoid overlapping extrusions
 | 
			
		||||
        push @loops, offset2(\@islands, ($i - 2) * $flow->scaled_spacing, ($i + 1.5) * $flow->scaled_spacing, undef, JT_SQUARE);
 | 
			
		||||
        push @loops, offset2(\@islands, ($i - 1.5) * $flow->scaled_spacing, +1.0 * $flow->scaled_spacing, undef, JT_SQUARE);
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    @{$self->brim} = map Slic3r::ExtrusionLoop->pack(
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -543,6 +543,8 @@ sub get_connected_facets {
 | 
			
		|||
sub split_mesh {
 | 
			
		||||
    my $self = shift;
 | 
			
		||||
    
 | 
			
		||||
    $self->analyze;
 | 
			
		||||
    
 | 
			
		||||
    my @meshes = ();
 | 
			
		||||
    
 | 
			
		||||
    # loop while we have remaining facets
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue