From 419ce016984a27f4ec89ee1e2bb0cf272165152c Mon Sep 17 00:00:00 2001 From: "qing.zhang" Date: Wed, 4 Dec 2024 10:41:31 +0800 Subject: [PATCH] ENH: match first filaments with physical extruder Jira: none Signed-off-by: qing.zhang Change-Id: I3907476c4644e2b0c2c097edf2bbf93e3a92cf90 --- src/libslic3r/GCode.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index a0012d833..f26687966 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -1973,11 +1973,24 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato m_placeholder_parser.set("most_used_physical_extruder_id", print.config().physical_extruder_map.values[max_count_extruder]); // Let the start-up script prime the 1st printing tool. + + auto match_physical_extruder_for_each_filament = [](std::vector &filaments, const FullPrintConfig &config) { + // match the filament to the physical extruder + std::vector physicial_first_filaments; + physicial_first_filaments.resize(filaments.size()); + for (int extruder_id = 0; extruder_id < filaments.size(); extruder_id++) { + physicial_first_filaments[config.physical_extruder_map.get_at(extruder_id)] = filaments[extruder_id]; + } + filaments = physicial_first_filaments; + }; + match_physical_extruder_for_each_filament(first_filaments, m_config); m_placeholder_parser.set("first_tools", new ConfigOptionInts(first_filaments)); m_placeholder_parser.set("first_filaments", new ConfigOptionInts(first_filaments)); m_placeholder_parser.set("initial_tool", initial_extruder_id); m_placeholder_parser.set("initial_extruder", initial_extruder_id); //BBS + match_physical_extruder_for_each_filament(first_non_support_filaments, m_config); + m_placeholder_parser.set("first_non_support_tools", new ConfigOptionInts(first_non_support_filaments)); m_placeholder_parser.set("first_non_support_filaments", new ConfigOptionInts(first_non_support_filaments)); m_placeholder_parser.set("initial_no_support_tool", initial_non_support_extruder_id);