diff --git a/xs/src/libslic3r/PrintGCode.cpp b/xs/src/libslic3r/PrintGCode.cpp index 40d118953..44e3289e7 100644 --- a/xs/src/libslic3r/PrintGCode.cpp +++ b/xs/src/libslic3r/PrintGCode.cpp @@ -383,10 +383,10 @@ PrintGCode::process_layer(size_t idx, const Layer* layer, const Points& copies) // extrude skirt along raft layers and normal obj layers // (not along interlaced support material layers) - if (!_skirt_done.size() == 0 && (print.has_infinite_skirt() || (_skirt_done.rbegin())->first < print.config.skirt_height) - && typeid(layer) != typeid(SupportLayer*) - && _skirt_done.count(scale_(layer->print_z)) > 0 - && layer->id() < static_cast(obj.config.raft_layers)) { + if ((print.has_infinite_skirt() || _skirt_done.size() == 0 || (_skirt_done.rbegin())->first < print.config.skirt_height) + && _skirt_done.count(scale_(layer->print_z)) == 0 + && typeid(layer) != typeid(SupportLayer*) || layer->id() < static_cast(obj.config.raft_layers)) { + gcodegen.set_origin(Pointf(0,0)); gcodegen.avoid_crossing_perimeters.use_external_mp = true;