mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-11-02 20:51:23 -07:00 
			
		
		
		
	Refactored the travel/retract/avoid_crossing_perimeters logic. Several edge cases are now handled correctly. #2498
This commit is contained in:
		
							parent
							
								
									7e82159620
								
							
						
					
					
						commit
						2562070232
					
				
					 6 changed files with 98 additions and 103 deletions
				
			
		| 
						 | 
				
			
			@ -354,7 +354,12 @@ sub process_layer {
 | 
			
		|||
        }
 | 
			
		||||
        $self->_skirt_done->{$layer->print_z} = 1;
 | 
			
		||||
        $self->_gcodegen->avoid_crossing_perimeters->use_external_mp(0);
 | 
			
		||||
        $self->_gcodegen->avoid_crossing_perimeters->disable_once(1);
 | 
			
		||||
        
 | 
			
		||||
        # allow a straight travel move to the first object point if this is the first layer
 | 
			
		||||
        # (but don't in next layers)
 | 
			
		||||
        if ($layer->id == 0) {
 | 
			
		||||
            $self->_gcodegen->avoid_crossing_perimeters->disable_once(1);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    # extrude brim
 | 
			
		||||
| 
						 | 
				
			
			@ -366,6 +371,8 @@ sub process_layer {
 | 
			
		|||
            for @{$self->print->brim};
 | 
			
		||||
        $self->_brim_done(1);
 | 
			
		||||
        $self->_gcodegen->avoid_crossing_perimeters->use_external_mp(0);
 | 
			
		||||
        
 | 
			
		||||
        # allow a straight travel move to the first object point
 | 
			
		||||
        $self->_gcodegen->avoid_crossing_perimeters->disable_once(1);
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue