[2.0.x] Extruder-Distinct Linear Advance K Factors (#11789)
This commit is contained in:
@ -34,18 +34,38 @@
|
||||
* K<factor> Set advance K factor
|
||||
*/
|
||||
void GcodeSuite::M900() {
|
||||
|
||||
#if EXTRUDERS < 2
|
||||
constexpr uint8_t tmp_extruder = 0;
|
||||
#else
|
||||
const uint8_t tmp_extruder = parser.seenval('T') ? parser.value_int() : active_extruder;
|
||||
if (tmp_extruder >= EXTRUDERS) {
|
||||
SERIAL_PROTOCOLLNPGM("?T value out of range.");
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (parser.seenval('K')) {
|
||||
const float newK = parser.floatval('K');
|
||||
if (WITHIN(newK, 0, 10)) {
|
||||
planner.synchronize();
|
||||
planner.extruder_advance_K = newK;
|
||||
planner.extruder_advance_K[tmp_extruder] = newK;
|
||||
}
|
||||
else
|
||||
SERIAL_PROTOCOLLNPGM("?K value out of range (0-10).");
|
||||
}
|
||||
else {
|
||||
SERIAL_ECHO_START();
|
||||
SERIAL_ECHOLNPAIR("Advance K=", planner.extruder_advance_K);
|
||||
#if EXTRUDERS < 2
|
||||
SERIAL_ECHOLNPAIR("Advance K=", planner.extruder_advance_K[0]);
|
||||
#else
|
||||
SERIAL_ECHOPGM("Advance K");
|
||||
LOOP_L_N(i, EXTRUDERS) {
|
||||
SERIAL_CHAR(' '); SERIAL_ECHO(int(i));
|
||||
SERIAL_CHAR('='); SERIAL_ECHO(planner.extruder_advance_K[i]);
|
||||
}
|
||||
SERIAL_EOL();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user