WipeTower: linear advance is disabled immediately before ramming, not before moving to the wipe tower

Linear advance is reset by filament start gcode after a toolchange. However, not all moves to the wipe tower
end with a toolchange (brim, empty grid) and it would therefore disable linear advance until the next toolchange
This should solve https://github.com/prusa3d/PrusaSlicer/issues/2770
This commit is contained in:
Lukas Matena 2019-08-16 00:20:51 +02:00
parent 15744f021a
commit 0f32223ba0
2 changed files with 7 additions and 3 deletions

View file

@ -113,6 +113,11 @@ public:
return (*this);
}
WipeTowerWriter& disable_linear_advance() {
m_gcode += (m_gcode_flavor == gcfRepRap ? std::string("M572 D0 S0\n") : std::string("M900 K0\n"));
return *this;
}
// Suppress / resume G-code preview in Slic3r. Slic3r will have difficulty to differentiate the various
// filament loading and cooling moves from normal extrusion moves. Therefore the writer
// is asked to suppres output of some lines, which look like extrusions.
@ -818,6 +823,8 @@ void WipeTower::toolchange_Unload(
}
}
writer.disable_linear_advance();
// now the ramming itself:
while (i < m_filpar[m_current_tool].ramming_speed.size())
{