diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index df50012b98..0a1bac4e4b 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -1095,8 +1095,10 @@ Print::ApplyStatus Print::apply(const Model &model, const DynamicPrintConfig &co bool fresh = print_object.region_volumes.empty(); unsigned int volume_id = 0; for (const ModelVolume *volume : model_object.volumes) { - if (! volume->is_model_part() && ! volume->is_modifier()) - continue; + if (! volume->is_model_part() && ! volume->is_modifier()) { + ++ volume_id; + continue; + } int region_id = -1; if (&print_object == &print_object0) { // Get the config applied to this volume. diff --git a/src/libslic3r/Print.hpp b/src/libslic3r/Print.hpp index ad32f42baf..e5060cb766 100644 --- a/src/libslic3r/Print.hpp +++ b/src/libslic3r/Print.hpp @@ -107,7 +107,7 @@ public: // adds region_id, too, if necessary void add_region_volume(unsigned int region_id, int volume_id) { if (region_id >= region_volumes.size()) - region_volumes.assign(region_id + 1, std::vector()); + region_volumes.resize(region_id + 1); region_volumes[region_id].emplace_back(volume_id); } // This is the *total* layer count (including support layers)