mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-12 09:17:52 -06: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
|
@ -232,6 +232,8 @@ The author of the Silk icon set is Mark James.
|
||||||
--retract-before-travel
|
--retract-before-travel
|
||||||
Only retract before travel moves of this length in mm (default: 2)
|
Only retract before travel moves of this length in mm (default: 2)
|
||||||
--retract-lift Lift Z by the given distance in mm when retracting (default: 0)
|
--retract-lift Lift Z by the given distance in mm when retracting (default: 0)
|
||||||
|
--retract-layer-change
|
||||||
|
Enforce a retraction before each Z move (default: yes)
|
||||||
|
|
||||||
Retraction options for multi-extruder setups:
|
Retraction options for multi-extruder setups:
|
||||||
--retract-length-toolchange
|
--retract-length-toolchange
|
||||||
|
|
|
@ -745,6 +745,15 @@ END
|
||||||
deserialize => $deserialize_comma,
|
deserialize => $deserialize_comma,
|
||||||
default => [0],
|
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' => {
|
'retract_length_toolchange' => {
|
||||||
label => 'Length',
|
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).',
|
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{$_})
|
$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);
|
return $class->new(%args);
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ use constant OPTIONS => [qw(
|
||||||
extruder_offset
|
extruder_offset
|
||||||
nozzle_diameter filament_diameter extrusion_multiplier temperature first_layer_temperature
|
nozzle_diameter filament_diameter extrusion_multiplier temperature first_layer_temperature
|
||||||
retract_length retract_lift retract_speed retract_restart_extra retract_before_travel
|
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);
|
has 'id' => (is => 'rw', required => 1);
|
||||||
|
|
|
@ -103,7 +103,7 @@ sub move_z {
|
||||||
my $gcode = "";
|
my $gcode = "";
|
||||||
my $current_z = $self->z;
|
my $current_z = $self->z;
|
||||||
if (!defined $current_z || $current_z != ($z + $self->lifted)) {
|
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');
|
$self->speed('travel');
|
||||||
$gcode .= $self->G0(undef, $z, 0, $comment || ('move to next layer (' . $self->layer->id . ')'))
|
$gcode .= $self->G0(undef, $z, 0, $comment || ('move to next layer (' . $self->layer->id . ')'))
|
||||||
unless ($current_z // -1) != ($self->z // -1);
|
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
|
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 {
|
sub config {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
@ -720,7 +720,7 @@ sub _build_extruder_pages {
|
||||||
title => 'Retraction',
|
title => 'Retraction',
|
||||||
options => [
|
options => [
|
||||||
map "${_}#${extruder_idx}",
|
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)
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -285,6 +285,8 @@ $j
|
||||||
--retract-before-travel
|
--retract-before-travel
|
||||||
Only retract before travel moves of this length in mm (default: $config->{retract_before_travel}[0])
|
Only retract before travel moves of this length in mm (default: $config->{retract_before_travel}[0])
|
||||||
--retract-lift Lift Z by the given distance in mm when retracting (default: $config->{retract_lift}[0])
|
--retract-lift Lift Z by the given distance in mm when retracting (default: $config->{retract_lift}[0])
|
||||||
|
--retract-layer-change
|
||||||
|
Enforce a retraction before each Z move (default: yes)
|
||||||
|
|
||||||
Retraction options for multi-extruder setups:
|
Retraction options for multi-extruder setups:
|
||||||
--retract-length-toolchange
|
--retract-length-toolchange
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue