FIX: remove extra filament change

Jira: none

if the fist print filement as same as the filament be set on start gcode
not insert filment change

Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: I0114f287fff9be276a90772537d1910df18dec61
(cherry picked from commit 276c797faff1407b2c1606d4bfafe21773901001)
This commit is contained in:
qing.zhang
2024-08-28 12:27:09 +08:00
committed by Noisyfox
parent 0ff33f8f7e
commit 5fda94a53b
3 changed files with 13 additions and 0 deletions

View File

@@ -994,6 +994,15 @@ std::string GCodeWriter::set_extruder(unsigned int filament_id)
return this->need_toolchange(filament_id) ? this->toolchange(filament_id) : "";
}
void GCodeWriter::init_extruder(unsigned int filament_id)
{
if (m_curr_extruder_id == -1 && filament_id != -1) {
auto filament_extruder_iter = Slic3r::lower_bound_by_predicate(m_filament_extruders.begin(), m_filament_extruders.end(), [filament_id](const Extruder &e) { return e.id() < filament_id; });
assert(filament_extruder_iter != m_filament_extruders.end() && filament_extruder_iter->id() == filament_id);
m_curr_extruder_id = filament_extruder_iter->extruder_id();
m_curr_filament_extruder[m_curr_extruder_id] = &*filament_extruder_iter;
}
}
bool GCodeWriter::need_toolchange(unsigned int filament_id)const
{