From 6572e5980f56d6535d3089f4bee14cd414bd5ef5 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Mon, 12 Nov 2018 15:20:18 +0100 Subject: [PATCH] Fix of an invalid extruder ID assignment after switching from a multi-material printer to a single material printer (or a printer with a lower number of extruders). --- xs/src/libslic3r/Model.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/xs/src/libslic3r/Model.cpp b/xs/src/libslic3r/Model.cpp index e0097ce2e..9fe855aa1 100644 --- a/xs/src/libslic3r/Model.cpp +++ b/xs/src/libslic3r/Model.cpp @@ -455,10 +455,14 @@ void Model::adjust_min_z() unsigned int Model::get_auto_extruder_id(unsigned int max_extruders) { unsigned int id = s_auto_extruder_id; - - if (++s_auto_extruder_id > max_extruders) + if (id > max_extruders) { + // The current counter is invalid, likely due to switching the printer profiles + // to a profile with a lower number of extruders. reset_auto_extruder_id(); - + id = s_auto_extruder_id; + } else if (++s_auto_extruder_id > max_extruders) { + reset_auto_extruder_id(); + } return id; }