From b9b3f7b4c150271d768bee767a19e5ef7c58ba11 Mon Sep 17 00:00:00 2001 From: tao wang Date: Tue, 13 Sep 2022 14:41:09 +0800 Subject: [PATCH] FIX:only show the material used in the actual printing Change-Id: I44edd5ffb54376da91077e2e3d990851af050949 --- src/slic3r/GUI/GCodeViewer.cpp | 13 +++++++++++++ src/slic3r/GUI/GCodeViewer.hpp | 2 ++ src/slic3r/GUI/SelectMachine.cpp | 4 +++- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/GCodeViewer.cpp b/src/slic3r/GUI/GCodeViewer.cpp index fc4ab2b2f..882357ed9 100644 --- a/src/slic3r/GUI/GCodeViewer.cpp +++ b/src/slic3r/GUI/GCodeViewer.cpp @@ -831,6 +831,11 @@ void GCodeViewer::update_by_mode(ConfigOptionMode mode) } } +std::vector GCodeViewer::get_plater_extruder() +{ + return m_plater_extruder; +} + //BBS: always load shell at preview void GCodeViewer::load(const GCodeProcessorResult& gcode_result, const Print& print, const BuildVolume& build_volume, const std::vector& exclude_bounding_box, bool initialized, ConfigOptionMode mode, bool only_gcode) @@ -2924,6 +2929,14 @@ void GCodeViewer::load_toolpaths(const GCodeProcessorResult& gcode_result, const sort_remove_duplicates(m_extruder_ids); m_extruder_ids.shrink_to_fit(); + std::vector plater_extruder; + for (auto mid : m_extruder_ids){ + int eid = mid; + plater_extruder.push_back(++eid); + } + m_plater_extruder = plater_extruder; + + // set layers z range if (!m_layers.empty()) m_layers_z_range = { 0, static_cast(m_layers.size() - 1) }; diff --git a/src/slic3r/GUI/GCodeViewer.hpp b/src/slic3r/GUI/GCodeViewer.hpp index 46d2c8951..8d82e624e 100644 --- a/src/slic3r/GUI/GCodeViewer.hpp +++ b/src/slic3r/GUI/GCodeViewer.hpp @@ -711,6 +711,7 @@ public: }; private: + std::vector m_plater_extruder; bool m_gl_data_initialized{ false }; unsigned int m_last_result_id{ 0 }; size_t m_moves_count{ 0 }; @@ -800,6 +801,7 @@ public: bool has_data() const { return !m_roles.empty(); } bool can_export_toolpaths() const; + std::vector get_plater_extruder(); const BoundingBoxf3& get_paths_bounding_box() const { return m_paths_bounding_box; } const BoundingBoxf3& get_max_bounding_box() const { return m_max_bounding_box; } diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index 187684484..996d58a6e 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -2214,7 +2214,9 @@ void SelectMachineDialog::set_default() } // material info - auto extruders = m_plater->get_partplate_list().get_curr_plate()->get_extruders(); + + //auto extruders1 = m_plater->get_partplate_list().get_curr_plate()->get_extruders(); + auto extruders = wxGetApp().plater()->get_current_canvas3D()->get_gcode_viewer().get_plater_extruder(); BitmapCache bmcache; MaterialHash::iterator iter = m_materialList.begin();