Refactored the travel/retract/avoid_crossing_perimeters logic. Several edge cases are now handled correctly. #2498

This commit is contained in:
Alessandro Ranellucci 2015-01-06 14:47:53 +01:00
parent 7e82159620
commit 2562070232
6 changed files with 98 additions and 103 deletions

View file

@ -354,7 +354,12 @@ sub process_layer {
}
$self->_skirt_done->{$layer->print_z} = 1;
$self->_gcodegen->avoid_crossing_perimeters->use_external_mp(0);
$self->_gcodegen->avoid_crossing_perimeters->disable_once(1);
# allow a straight travel move to the first object point if this is the first layer
# (but don't in next layers)
if ($layer->id == 0) {
$self->_gcodegen->avoid_crossing_perimeters->disable_once(1);
}
}
# extrude brim
@ -366,6 +371,8 @@ sub process_layer {
for @{$self->print->brim};
$self->_brim_done(1);
$self->_gcodegen->avoid_crossing_perimeters->use_external_mp(0);
# allow a straight travel move to the first object point
$self->_gcodegen->avoid_crossing_perimeters->disable_once(1);
}