Do not synchronize on M900

Since the advance factor is computed per-segment in LA15, there's no
need to stop the planner. Allow changing K freely at each segment.

This allows varying quality factors for different filling roles, see:
https://github.com/supermerill/Slic3r/issues/108

During pause/resume/crashdetect or powerpanic K might temporarily be out
of sync when used this way. If this becomes an issue, we might need to
store K for each block, as done for the feedrate.
This commit is contained in:
Yuri D'Elia 2019-12-29 23:25:16 +01:00
parent 7b29ce29b4
commit d78636c308

View File

@ -2070,8 +2070,6 @@ static float probe_pt(float x, float y, float z_before) {
* K<factor> Set advance K factor * K<factor> Set advance K factor
*/ */
inline void gcode_M900() { inline void gcode_M900() {
st_synchronize();
const float newK = code_seen('K') ? code_value_float() : -1; const float newK = code_seen('K') ? code_value_float() : -1;
#ifdef LA_NOCOMPAT #ifdef LA_NOCOMPAT
if (newK >= 0 && newK < 10) if (newK >= 0 && newK < 10)