diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index 5ff8c4dce8..de43bfaecd 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -1012,6 +1012,7 @@ void GCode::_do_export(Print &print, FILE *file) _write(file, this->preamble()); // Initialize a motion planner for object-to-object travel moves. + m_avoid_crossing_perimeters.reset(); if (print.config().avoid_crossing_perimeters.value) { m_avoid_crossing_perimeters.init_external_mp(print); print.throw_if_canceled(); diff --git a/src/libslic3r/GCode.hpp b/src/libslic3r/GCode.hpp index 4baf000f3f..83d61c4832 100644 --- a/src/libslic3r/GCode.hpp +++ b/src/libslic3r/GCode.hpp @@ -45,6 +45,7 @@ public: AvoidCrossingPerimeters() : use_external_mp(false), use_external_mp_once(false), disable_once(true) {} ~AvoidCrossingPerimeters() {} + void reset() { m_external_mp.reset(); m_layer_mp.reset(); } void init_external_mp(const Print &print); void init_layer_mp(const ExPolygons &islands) { m_layer_mp = Slic3r::make_unique(islands); }