mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-11-02 20:51:23 -07:00 
			
		
		
		
	New option to disable retraction on layer change
This commit is contained in:
		
							parent
							
								
									e71bf48463
								
							
						
					
					
						commit
						460e169c67
					
				
					 6 changed files with 18 additions and 5 deletions
				
			
		| 
						 | 
				
			
			@ -745,6 +745,15 @@ END
 | 
			
		|||
        deserialize => $deserialize_comma,
 | 
			
		||||
        default => [0],
 | 
			
		||||
    },
 | 
			
		||||
    'retract_layer_change' => {
 | 
			
		||||
        label   => 'Retract on layer change',
 | 
			
		||||
        tooltip => 'This flag enforces a retraction whenever a Z move is done.',
 | 
			
		||||
        cli     => 'retract-layer-change!',
 | 
			
		||||
        type    => 'bool',
 | 
			
		||||
        serialize   => $serialize_comma,
 | 
			
		||||
        deserialize => $deserialize_comma,
 | 
			
		||||
        default => [1],
 | 
			
		||||
    },
 | 
			
		||||
    'retract_length_toolchange' => {
 | 
			
		||||
        label   => 'Length',
 | 
			
		||||
        tooltip => 'When retraction is triggered before changing tool, filament is pulled back by the specified amount (the length is measured on raw filament, before it enters the extruder).',
 | 
			
		||||
| 
						 | 
				
			
			@ -1012,7 +1021,7 @@ sub new_from_cli {
 | 
			
		|||
    }
 | 
			
		||||
    
 | 
			
		||||
    $args{$_} = $Options->{$_}{deserialize}->($args{$_})
 | 
			
		||||
        for grep exists $args{$_}, qw(print_center bed_size duplicate_grid extruder_offset);
 | 
			
		||||
        for grep exists $args{$_}, qw(print_center bed_size duplicate_grid extruder_offset retract_layer_change);
 | 
			
		||||
    
 | 
			
		||||
    return $class->new(%args);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,7 +7,7 @@ use constant OPTIONS => [qw(
 | 
			
		|||
    extruder_offset
 | 
			
		||||
    nozzle_diameter filament_diameter extrusion_multiplier temperature first_layer_temperature
 | 
			
		||||
    retract_length retract_lift retract_speed retract_restart_extra retract_before_travel
 | 
			
		||||
    retract_length_toolchange retract_restart_extra_toolchange
 | 
			
		||||
    retract_layer_change retract_length_toolchange retract_restart_extra_toolchange
 | 
			
		||||
)];
 | 
			
		||||
 | 
			
		||||
has 'id'    => (is => 'rw', required => 1);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -103,7 +103,7 @@ sub move_z {
 | 
			
		|||
    my $gcode = "";
 | 
			
		||||
    my $current_z = $self->z;
 | 
			
		||||
    if (!defined $current_z || $current_z != ($z + $self->lifted)) {
 | 
			
		||||
        $gcode .= $self->retract(move_z => $z);
 | 
			
		||||
        $gcode .= $self->retract(move_z => $z) if $self->extruder->retract_layer_change;
 | 
			
		||||
        $self->speed('travel');
 | 
			
		||||
        $gcode .= $self->G0(undef, $z, 0, $comment || ('move to next layer (' . $self->layer->id . ')'))
 | 
			
		||||
            unless ($current_z // -1) != ($self->z // -1);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -687,7 +687,7 @@ sub build {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
sub _extruder_options { qw(nozzle_diameter extruder_offset retract_length retract_lift retract_speed retract_restart_extra retract_before_travel
 | 
			
		||||
    retract_length_toolchange retract_restart_extra_toolchange) }
 | 
			
		||||
    retract_layer_change retract_length_toolchange retract_restart_extra_toolchange) }
 | 
			
		||||
 | 
			
		||||
sub config {
 | 
			
		||||
    my $self = shift;
 | 
			
		||||
| 
						 | 
				
			
			@ -720,7 +720,7 @@ sub _build_extruder_pages {
 | 
			
		|||
                title => 'Retraction',
 | 
			
		||||
                options => [
 | 
			
		||||
                    map "${_}#${extruder_idx}",
 | 
			
		||||
                        qw(retract_length retract_lift retract_speed retract_restart_extra retract_before_travel)
 | 
			
		||||
                        qw(retract_length retract_lift retract_speed retract_restart_extra retract_before_travel retract_layer_change)
 | 
			
		||||
                ],
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue