Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.markdown3
-rw-r--r--lib/Slic3r/Config.pm8
-rw-r--r--lib/Slic3r/GCode.pm23
-rw-r--r--lib/Slic3r/GUI/Tab.pm2
-rwxr-xr-xslic3r.pl3
5 files changed, 31 insertions, 8 deletions
diff --git a/README.markdown b/README.markdown
index ad304dc1b..ca8e7a346 100644
--- a/README.markdown
+++ b/README.markdown
@@ -172,6 +172,9 @@ The author of the Silk icon set is Mark James.
--bridge-acceleration
Overrides firmware's default acceleration for bridges. (mm/s^2, set zero
to disable; default: 0)
+ --first-layer-acceleration
+ Overrides firmware's default acceleration for first layer. (mm/s^2, set zero
+ to disable; default: 0)
--default-acceleration
Acceleration will be reset to this value after the specific settings above
have been applied. (mm/s^2, set zero to disable; default: 130)
diff --git a/lib/Slic3r/Config.pm b/lib/Slic3r/Config.pm
index 0d89b79ee..ddf3fe6e3 100644
--- a/lib/Slic3r/Config.pm
+++ b/lib/Slic3r/Config.pm
@@ -369,6 +369,14 @@ our $Options = {
type => 'f',
default => 0,
},
+ 'first_layer_acceleration' => {
+ label => 'First layer',
+ tooltip => 'This is the acceleration your printer will use for first layer. Set zero to disable acceleration control for first layer.',
+ sidetext => 'mm/s²',
+ cli => 'first-layer-acceleration=f',
+ type => 'f',
+ default => 0,
+ },
# accuracy options
'layer_height' => {
diff --git a/lib/Slic3r/GCode.pm b/lib/Slic3r/GCode.pm
index 08c5c89be..752ead5c1 100644
--- a/lib/Slic3r/GCode.pm
+++ b/lib/Slic3r/GCode.pm
@@ -116,6 +116,13 @@ sub change_layer {
int(99 * ($layer->id / ($self->layer_count - 1))),
($self->config->gcode_comments ? ' ; update progress' : '');
}
+ if ($self->config->first_layer_acceleration) {
+ if ($layer->id == 0) {
+ $gcode .= $self->set_acceleration($self->config->first_layer_acceleration);
+ } elsif ($layer->id == 1) {
+ $gcode .= $self->set_acceleration($self->config->default_acceleration);
+ }
+ }
return $gcode;
}
@@ -289,14 +296,16 @@ sub extrude_path {
# adjust acceleration
my $acceleration;
- if ($self->config->perimeter_acceleration && $path->is_perimeter) {
- $acceleration = $self->config->perimeter_acceleration;
- } elsif ($self->config->infill_acceleration && $path->is_fill) {
- $acceleration = $self->config->infill_acceleration;
- } elsif ($self->config->infill_acceleration && $path->is_bridge) {
- $acceleration = $self->config->bridge_acceleration;
+ if (!$self->config->first_layer_acceleration || $self->layer->id != 0) {
+ if ($self->config->perimeter_acceleration && $path->is_perimeter) {
+ $acceleration = $self->config->perimeter_acceleration;
+ } elsif ($self->config->infill_acceleration && $path->is_fill) {
+ $acceleration = $self->config->infill_acceleration;
+ } elsif ($self->config->infill_acceleration && $path->is_bridge) {
+ $acceleration = $self->config->bridge_acceleration;
+ }
+ $gcode .= $self->set_acceleration($acceleration) if $acceleration;
}
- $gcode .= $self->set_acceleration($acceleration) if $acceleration;
my $area; # mm^3 of extrudate per mm of tool movement
if ($path->is_bridge) {
diff --git a/lib/Slic3r/GUI/Tab.pm b/lib/Slic3r/GUI/Tab.pm
index 70fd3962a..bdf5d8269 100644
--- a/lib/Slic3r/GUI/Tab.pm
+++ b/lib/Slic3r/GUI/Tab.pm
@@ -461,7 +461,7 @@ sub build {
},
{
title => 'Acceleration control (advanced)',
- options => [qw(perimeter_acceleration infill_acceleration bridge_acceleration default_acceleration)],
+ options => [qw(perimeter_acceleration infill_acceleration bridge_acceleration first_layer_acceleration default_acceleration)],
},
]);
diff --git a/slic3r.pl b/slic3r.pl
index b96b112ed..8818c9151 100755
--- a/slic3r.pl
+++ b/slic3r.pl
@@ -255,6 +255,9 @@ $j
--bridge-acceleration
Overrides firmware's default acceleration for bridges. (mm/s^2, set zero
to disable; default: $config->{bridge_acceleration})
+ --first-layer-acceleration
+ Overrides firmware's default acceleration for first layer. (mm/s^2, set zero
+ to disable; default: $config->{first_layer_acceleration})
--default-acceleration
Acceleration will be reset to this value after the specific settings above
have been applied. (mm/s^2, set zero to disable; default: $config->{travel_speed})