diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 4fa3e65841..509ec30665 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -3938,20 +3938,14 @@ inline void gcode_M121() { enable_endstops(false); } #endif // BLINKM /** - * M200: Set filament diameter and set E axis units to cubic millimeters (use S0 to set back to millimeters). - * T - * D + * M200: Set filament diameter and set E axis units to cubic millimeters + * + * T - Optional extruder number. Current extruder if omitted. + * D - Diameter of the filament. Use "D0" to set units back to millimeters. */ inline void gcode_M200() { - int tmp_extruder = active_extruder; - if (code_seen('T')) { - tmp_extruder = code_value_short(); - if (tmp_extruder >= EXTRUDERS) { - SERIAL_ECHO_START; - SERIAL_ECHO(MSG_M200_INVALID_EXTRUDER); - return; - } - } + + if (setTargetedHotend(200)) return; if (code_seen('D')) { float diameter = code_value(); @@ -3960,7 +3954,7 @@ inline void gcode_M200() { // for all extruders volumetric_enabled = (diameter != 0.0); if (volumetric_enabled) { - filament_size[tmp_extruder] = diameter; + filament_size[target_extruder] = diameter; // make sure all extruders have some sane value for the filament size for (int i=0; i= EXTRUDERS) { - SERIAL_ECHO_START; - switch(code){ + switch(code) { case 104: - SERIAL_ECHO(MSG_M104_INVALID_EXTRUDER); - break; case 105: - SERIAL_ECHO(MSG_M105_INVALID_EXTRUDER); - break; case 109: - SERIAL_ECHO(MSG_M109_INVALID_EXTRUDER); - break; case 218: - SERIAL_ECHO(MSG_M218_INVALID_EXTRUDER); - break; case 221: - SERIAL_ECHO(MSG_M221_INVALID_EXTRUDER); + case 200: + SERIAL_ECHO_START; + SERIAL_CHAR('M'); + SERIAL_ECHO(code); + SERIAL_ECHOPGM(" " MSG_INVALID_EXTRUDER " "); + SERIAL_ECHOLN(target_extruder); break; } - SERIAL_ECHOLN(target_extruder); return true; } } diff --git a/Marlin/configurator/config/language.h b/Marlin/configurator/config/language.h index 856bd58db5..c709ce4d43 100644 --- a/Marlin/configurator/config/language.h +++ b/Marlin/configurator/config/language.h @@ -121,12 +121,6 @@ #define MSG_END_FILE_LIST "End file list" #define MSG_INVALID_EXTRUDER "Invalid extruder" #define MSG_INVALID_SOLENOID "Invalid solenoid" -#define MSG_M104_INVALID_EXTRUDER "M104 " MSG_INVALID_EXTRUDER " " -#define MSG_M105_INVALID_EXTRUDER "M105 " MSG_INVALID_EXTRUDER " " -#define MSG_M109_INVALID_EXTRUDER "M109 " MSG_INVALID_EXTRUDER " " -#define MSG_M200_INVALID_EXTRUDER "M200 " MSG_INVALID_EXTRUDER " " -#define MSG_M218_INVALID_EXTRUDER "M218 " MSG_INVALID_EXTRUDER " " -#define MSG_M221_INVALID_EXTRUDER "M221 " MSG_INVALID_EXTRUDER " " #define MSG_ERR_NO_THERMISTORS "No thermistors - no temperature" #define MSG_HEATING "Heating..." #define MSG_HEATING_COMPLETE "Heating done." diff --git a/Marlin/language.h b/Marlin/language.h index 22e1131174..66f4144d48 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -122,12 +122,6 @@ #define MSG_END_FILE_LIST "End file list" #define MSG_INVALID_EXTRUDER "Invalid extruder" #define MSG_INVALID_SOLENOID "Invalid solenoid" -#define MSG_M104_INVALID_EXTRUDER "M104 " MSG_INVALID_EXTRUDER " " -#define MSG_M105_INVALID_EXTRUDER "M105 " MSG_INVALID_EXTRUDER " " -#define MSG_M109_INVALID_EXTRUDER "M109 " MSG_INVALID_EXTRUDER " " -#define MSG_M200_INVALID_EXTRUDER "M200 " MSG_INVALID_EXTRUDER " " -#define MSG_M218_INVALID_EXTRUDER "M218 " MSG_INVALID_EXTRUDER " " -#define MSG_M221_INVALID_EXTRUDER "M221 " MSG_INVALID_EXTRUDER " " #define MSG_ERR_NO_THERMISTORS "No thermistors - no temperature" #define MSG_HEATING "Heating..." #define MSG_HEATING_COMPLETE "Heating done."