mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-23 06:33:57 -06:00
Make retraction configurable for each extruder
This commit is contained in:
parent
63e77fcfd8
commit
cf01c142de
5 changed files with 67 additions and 43 deletions
|
@ -8,6 +8,9 @@ use constant PI => 4 * atan2(1, 1);
|
|||
# cemetery of old config settings
|
||||
our @Ignore = qw(duplicate_x duplicate_y multiply_x multiply_y support_material_tool);
|
||||
|
||||
my $serialize_comma = sub { join ',', @{$_[0]} };
|
||||
my $deserialize_comma = sub { [ split /,/, $_[0] ] };
|
||||
|
||||
our $Options = {
|
||||
|
||||
# miscellaneous options
|
||||
|
@ -52,8 +55,8 @@ our $Options = {
|
|||
sidetext => 'mm',
|
||||
cli => 'print-center=s',
|
||||
type => 'point',
|
||||
serialize => sub { join ',', @{$_[0]} },
|
||||
deserialize => sub { [ split /[,x]/, $_[0] ] },
|
||||
serialize => $serialize_comma,
|
||||
deserialize => $deserialize_comma,
|
||||
default => [100,100],
|
||||
},
|
||||
'gcode_flavor' => {
|
||||
|
@ -116,8 +119,8 @@ our $Options = {
|
|||
cli => 'nozzle-diameter=f@',
|
||||
type => 'f',
|
||||
sidetext => 'mm',
|
||||
serialize => sub { join ',', @{$_[0]} },
|
||||
deserialize => sub { [ split /,/, $_[0] ] },
|
||||
serialize => $serialize_comma,
|
||||
deserialize => $deserialize_comma,
|
||||
default => [0.5],
|
||||
},
|
||||
'filament_diameter' => {
|
||||
|
@ -126,8 +129,8 @@ our $Options = {
|
|||
sidetext => 'mm',
|
||||
cli => 'filament-diameter=f@',
|
||||
type => 'f',
|
||||
serialize => sub { join ',', @{$_[0]} },
|
||||
deserialize => sub { [ split /,/, $_[0] ] },
|
||||
serialize => $serialize_comma,
|
||||
deserialize => $deserialize_comma,
|
||||
default => [3],
|
||||
},
|
||||
'extrusion_multiplier' => {
|
||||
|
@ -135,8 +138,8 @@ our $Options = {
|
|||
tooltip => 'This factor changes the amount of flow proportionally. You may need to tweak this setting to get nice surface finish and correct single wall widths. Usual values are between 0.9 and 1.1. If you think you need to change this more, check filament diameter and your firmware E steps.',
|
||||
cli => 'extrusion-multiplier=f@',
|
||||
type => 'f',
|
||||
serialize => sub { join ',', @{$_[0]} },
|
||||
deserialize => sub { [ split /,/, $_[0] ] },
|
||||
serialize => $serialize_comma,
|
||||
deserialize => $deserialize_comma,
|
||||
default => [1],
|
||||
},
|
||||
'temperature' => {
|
||||
|
@ -146,8 +149,8 @@ our $Options = {
|
|||
cli => 'temperature=i@',
|
||||
type => 'i',
|
||||
max => 300,
|
||||
serialize => sub { join ',', @{$_[0]} },
|
||||
deserialize => sub { [ split /,/, $_[0] ] },
|
||||
serialize => $serialize_comma,
|
||||
deserialize => $deserialize_comma,
|
||||
default => [200],
|
||||
},
|
||||
'first_layer_temperature' => {
|
||||
|
@ -156,8 +159,8 @@ our $Options = {
|
|||
sidetext => '°C',
|
||||
cli => 'first-layer-temperature=i@',
|
||||
type => 'i',
|
||||
serialize => sub { join ',', @{$_[0]} },
|
||||
deserialize => sub { [ split /,/, $_[0] ] },
|
||||
serialize => $serialize_comma,
|
||||
deserialize => $deserialize_comma,
|
||||
max => 300,
|
||||
default => [200],
|
||||
},
|
||||
|
@ -547,42 +550,52 @@ END
|
|||
label => 'Length',
|
||||
tooltip => 'When retraction is triggered, filament is pulled back by the specified amount (the length is measured on raw filament, before it enters the extruder).',
|
||||
sidetext => 'mm (zero to disable)',
|
||||
cli => 'retract-length=f',
|
||||
cli => 'retract-length=f@',
|
||||
type => 'f',
|
||||
default => 1,
|
||||
serialize => $serialize_comma,
|
||||
deserialize => $deserialize_comma,
|
||||
default => [1],
|
||||
},
|
||||
'retract_speed' => {
|
||||
label => 'Speed',
|
||||
tooltip => 'The speed for retractions (it only applies to the extruder motor).',
|
||||
sidetext => 'mm/s',
|
||||
cli => 'retract-speed=f',
|
||||
cli => 'retract-speed=f@',
|
||||
type => 'i',
|
||||
max => 1000,
|
||||
default => 30,
|
||||
serialize => $serialize_comma,
|
||||
deserialize => $deserialize_comma,
|
||||
default => [30],
|
||||
},
|
||||
'retract_restart_extra' => {
|
||||
label => 'Extra length on restart',
|
||||
tooltip => 'When the retraction is compensated after the travel move, the extruder will push this additional amount of filament. This setting is rarely needed.',
|
||||
sidetext => 'mm',
|
||||
cli => 'retract-restart-extra=f',
|
||||
cli => 'retract-restart-extra=f@',
|
||||
type => 'f',
|
||||
default => 0,
|
||||
serialize => $serialize_comma,
|
||||
deserialize => $deserialize_comma,
|
||||
default => [0],
|
||||
},
|
||||
'retract_before_travel' => {
|
||||
label => 'Minimum travel after retraction',
|
||||
tooltip => 'Retraction is not triggered when travel moves are shorter than this length.',
|
||||
sidetext => 'mm',
|
||||
cli => 'retract-before-travel=f',
|
||||
cli => 'retract-before-travel=f@',
|
||||
type => 'f',
|
||||
default => 2,
|
||||
serialize => $serialize_comma,
|
||||
deserialize => $deserialize_comma,
|
||||
default => [2],
|
||||
},
|
||||
'retract_lift' => {
|
||||
label => 'Lift Z',
|
||||
tooltip => 'If you set this to a positive value, Z is quickly raised every time a retraction is triggered.',
|
||||
sidetext => 'mm',
|
||||
cli => 'retract-lift=f',
|
||||
cli => 'retract-lift=f@',
|
||||
type => 'f',
|
||||
default => 0,
|
||||
serialize => $serialize_comma,
|
||||
deserialize => $deserialize_comma,
|
||||
default => [0],
|
||||
},
|
||||
|
||||
# cooling options
|
||||
|
@ -727,7 +740,7 @@ END
|
|||
sidetext => 'mm',
|
||||
cli => 'bed-size=s',
|
||||
type => 'point',
|
||||
serialize => sub { join ',', @{$_[0]} },
|
||||
serialize => $serialize_comma,
|
||||
deserialize => sub { [ split /[,x]/, $_[0] ] },
|
||||
default => [200,200],
|
||||
},
|
||||
|
@ -735,7 +748,7 @@ END
|
|||
label => 'Copies (grid)',
|
||||
cli => 'duplicate-grid=s',
|
||||
type => 'point',
|
||||
serialize => sub { join ',', @{$_[0]} },
|
||||
serialize => $serialize_comma,
|
||||
deserialize => sub { [ split /[,x]/, $_[0] ] },
|
||||
default => [1,1],
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue