From df328179929b977398f47ee4d8d2a42958d37839 Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Mon, 9 Apr 2018 14:57:23 +0200 Subject: [PATCH] Auto assign multi-part extruders --- xs/src/libslic3r/Model.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/xs/src/libslic3r/Model.cpp b/xs/src/libslic3r/Model.cpp index ad2ce54cd..d49594c72 100644 --- a/xs/src/libslic3r/Model.cpp +++ b/xs/src/libslic3r/Model.cpp @@ -406,9 +406,24 @@ void Model::convert_multipart_object() ModelObject* object = new ModelObject(this); object->input_file = this->objects.front()->input_file; + unsigned int auto_extruder_id = 1; + char str_extruder[64]; + for (const ModelObject* o : this->objects) for (const ModelVolume* v : o->volumes) - object->add_volume(*v)->name = o->name; + { + ModelVolume* new_v = object->add_volume(*v); + if (new_v != nullptr) + { + new_v->name = o->name; + + sprintf(str_extruder, "%ud", auto_extruder_id); + new_v->config.set_deserialize("extruder", str_extruder); + + if (++auto_extruder_id > 4) + auto_extruder_id = 1; + } + } for (const ModelInstance* i : this->objects.front()->instances) object->add_instance(*i);