mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-08-12 18:39:08 +08:00
Fix regression causing skirt to be printed at Z = 0 after a recent commit
This commit is contained in:
parent
c57e94c065
commit
8da4151c6d
@ -9,7 +9,7 @@ has 'multiple_extruders' => (is => 'ro', default => sub {0} );
|
|||||||
has 'layer' => (is => 'rw'); # this is not very correct, we should replace it with explicit layer_id and avoid using $self->layer->flow at all here because it's too general
|
has 'layer' => (is => 'rw'); # this is not very correct, we should replace it with explicit layer_id and avoid using $self->layer->flow at all here because it's too general
|
||||||
has 'shift_x' => (is => 'rw', default => sub {0} );
|
has 'shift_x' => (is => 'rw', default => sub {0} );
|
||||||
has 'shift_y' => (is => 'rw', default => sub {0} );
|
has 'shift_y' => (is => 'rw', default => sub {0} );
|
||||||
has 'z' => (is => 'rw', default => sub {0} );
|
has 'z' => (is => 'rw');
|
||||||
has 'speed' => (is => 'rw');
|
has 'speed' => (is => 'rw');
|
||||||
|
|
||||||
has 'extruder' => (is => 'rw');
|
has 'extruder' => (is => 'rw');
|
||||||
@ -76,7 +76,7 @@ sub move_z {
|
|||||||
my $gcode = "";
|
my $gcode = "";
|
||||||
$gcode .= $self->retract(move_z => $z);
|
$gcode .= $self->retract(move_z => $z);
|
||||||
$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 . ')')
|
||||||
if $self->z != $z && !$self->lifted;
|
if (!defined $self->z || $self->z != $z) && !$self->lifted;
|
||||||
|
|
||||||
return $gcode;
|
return $gcode;
|
||||||
}
|
}
|
||||||
@ -319,7 +319,7 @@ sub _G0_G1 {
|
|||||||
($point->y * &Slic3r::SCALING_FACTOR) + $self->shift_y - $self->extruder->extruder_offset->[Y]; #**
|
($point->y * &Slic3r::SCALING_FACTOR) + $self->shift_y - $self->extruder->extruder_offset->[Y]; #**
|
||||||
$self->last_pos($point);
|
$self->last_pos($point);
|
||||||
}
|
}
|
||||||
if (defined $z && $z != $self->z) {
|
if (defined $z && (!defined $self->z || $z != $self->z)) {
|
||||||
$self->z($z);
|
$self->z($z);
|
||||||
$gcode .= sprintf " Z%.${dec}f", $z;
|
$gcode .= sprintf " Z%.${dec}f", $z;
|
||||||
}
|
}
|
||||||
|
@ -709,6 +709,8 @@ sub write_gcode {
|
|||||||
if ($skirt_done < $Slic3r::Config->skirt_height) {
|
if ($skirt_done < $Slic3r::Config->skirt_height) {
|
||||||
$gcodegen->shift_x($shift[X]);
|
$gcodegen->shift_x($shift[X]);
|
||||||
$gcodegen->shift_y($shift[Y]);
|
$gcodegen->shift_y($shift[Y]);
|
||||||
|
$gcode .= $gcodegen->set_extruder($self->extruders->[0]); # move_z requires extruder
|
||||||
|
$gcode .= $gcodegen->move_z($gcodegen->layer->print_z);
|
||||||
$gcode .= $gcodegen->set_acceleration($Slic3r::Config->perimeter_acceleration);
|
$gcode .= $gcodegen->set_acceleration($Slic3r::Config->perimeter_acceleration);
|
||||||
# skip skirt if we have a large brim
|
# skip skirt if we have a large brim
|
||||||
if ($layer_id < $Slic3r::Config->skirt_height) {
|
if ($layer_id < $Slic3r::Config->skirt_height) {
|
||||||
@ -723,6 +725,7 @@ sub write_gcode {
|
|||||||
|
|
||||||
# extrude brim
|
# extrude brim
|
||||||
if ($layer_id == 0 && !$brim_done) {
|
if ($layer_id == 0 && !$brim_done) {
|
||||||
|
$gcode .= $gcodegen->move_z($gcodegen->layer->print_z);
|
||||||
$gcode .= $gcodegen->set_extruder($self->extruders->[$Slic3r::Config->support_material_extruder-1]);
|
$gcode .= $gcodegen->set_extruder($self->extruders->[$Slic3r::Config->support_material_extruder-1]);
|
||||||
$gcodegen->shift_x($shift[X]);
|
$gcodegen->shift_x($shift[X]);
|
||||||
$gcodegen->shift_y($shift[Y]);
|
$gcodegen->shift_y($shift[Y]);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user