diff --git a/src/libslic3r/GCode/ToolOrdering.cpp b/src/libslic3r/GCode/ToolOrdering.cpp index b117d5a622..03a3c491e9 100644 --- a/src/libslic3r/GCode/ToolOrdering.cpp +++ b/src/libslic3r/GCode/ToolOrdering.cpp @@ -219,10 +219,14 @@ ToolOrdering::ToolOrdering(const PrintObject &object, unsigned int first_extrude // BBS // Reorder the extruders to minimize tool switches. - if (first_extruder == (unsigned int)-1) { - this->reorder_extruders(generate_first_layer_tool_order(object)); + std::vector first_layer_tool_order; + if (first_extruder == (unsigned int) -1) { + first_layer_tool_order = generate_first_layer_tool_order(object); } - else { + + if (!first_layer_tool_order.empty()) { + this->reorder_extruders(first_layer_tool_order); + } else { this->reorder_extruders(first_extruder); }