Fix regression causing retraction restarts to ignore extrusion_axis. Includes regression test. #1547

stable
Alessandro Ranellucci 2013-11-24 12:37:36 +01:00
parent 97c65bac90
commit 5217bc370a
2 changed files with 8 additions and 2 deletions

View File

@ -546,7 +546,8 @@ sub unretract {
$gcode .= "G11 ; unretract\n";
} elsif ($self->config->extrusion_axis) {
# use G1 instead of G0 because G0 will blend the restart with the previous travel move
$gcode .= sprintf "G1 E%.5f F%.3f",
$gcode .= sprintf "G1 %s%.5f F%.3f",
$self->config->extrusion_axis,
$self->extruder->extrude($to_unretract),
$self->extruder->retract_speed_mm_min;
$gcode .= " ; compensate retraction" if $self->config->gcode_comments;

View File

@ -46,8 +46,13 @@ use Slic3r::Test;
my $config = Slic3r::Config->new_from_defaults;
$config->set('complete_objects', 1);
$config->set('duplicate', 2);
$config->set('extrusion_axis', 'A');
my $print = Slic3r::Test::init_print('20mm_cube', config => $config);
ok Slic3r::Test::gcode($print), "complete_objects";
ok my $gcode = Slic3r::Test::gcode($print), "complete_objects";
Slic3r::GCode::Reader->new->parse($gcode, sub {
my ($self, $cmd, $args, $info) = @_;
fail 'unexpected E argument' if defined $args->{E};
});
}
__END__