From 96d2882b8ddd6dbbfbb7a3f06e47448d5ff3c428 Mon Sep 17 00:00:00 2001 From: "zhimin.zeng" Date: Wed, 15 Mar 2023 22:35:50 +0800 Subject: [PATCH] FIX: wipe tower is not generate when insert custom gcode Change-Id: I2e21955e4a29b0ee1aa3150f26ccef4db5850413 (cherry picked from commit 677151a26c9724993bad6d802015e76a700555f4) --- src/libslic3r/Print.cpp | 2 +- src/slic3r/GUI/GCodeViewer.cpp | 15 ++------------- 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index 6eb2b068e..cb72ac229 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -341,7 +341,7 @@ std::vector Print::extruders(bool conside_custom_gcode) const for (auto plate_data : m_model.plates_custom_gcodes) { for (auto item : plate_data.second.gcodes) { if (item.type == CustomGCode::Type::ToolChange) - extruders.push_back((unsigned int)item.extruder); + extruders.push_back((unsigned int)(item.extruder - 1)); } } } diff --git a/src/slic3r/GUI/GCodeViewer.cpp b/src/slic3r/GUI/GCodeViewer.cpp index 96b7fcb75..121e85083 100644 --- a/src/slic3r/GUI/GCodeViewer.cpp +++ b/src/slic3r/GUI/GCodeViewer.cpp @@ -3176,19 +3176,8 @@ void GCodeViewer::load_shells(const Print& print, bool initialized, bool force_p } if (wxGetApp().preset_bundle->printers.get_edited_preset().printer_technology() == ptFFF) { - // BBS - // adds wipe tower's volume - std::vector print_extruders; - for (auto print_obj : print.objects()) { - ModelObject* mo = print_obj->model_object(); - for (ModelVolume* mv : mo->volumes) { - std::vector volume_extruders = mv->get_extruders(); - print_extruders.insert(print_extruders.end(), volume_extruders.begin(), volume_extruders.end()); - } - } - std::sort(print_extruders.begin(), print_extruders.end()); - auto it_end = std::unique(print_extruders.begin(), print_extruders.end()); - print_extruders.resize(std::distance(print_extruders.begin(), it_end)); + // BBS: adds wipe tower's volume + std::vector print_extruders = print.extruders(true); int extruders_count = print_extruders.size(); const double max_z = print.objects()[0]->model_object()->get_model()->bounding_box().max(2);