Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Automatic tool migration on runout #17248

Merged
merged 63 commits into from
Apr 23, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
55dd31d
Runout tool migration
studiodyne Mar 22, 2020
b647e65
Clean. Replace 'N' with 'C'. Overload 'T' for 'Q'.
thinkyhead Mar 29, 2020
8ab14c2
More cleanup
thinkyhead Mar 29, 2020
0039926
Add a test for TOOLCHANGE_MIGRATION_FEATURE
thinkyhead Mar 29, 2020
ea2bff8
No fr backup needed
thinkyhead Mar 29, 2020
f5a617f
Refresh e_factor on flow update
thinkyhead Mar 29, 2020
0138595
0 = no target, fix migration_extruder
thinkyhead Mar 29, 2020
88a655a
More adjustments, tests
thinkyhead Mar 30, 2020
3d47ff2
Merge remote-tracking branch 'upstream/bugfix-2.0.x' into bf2_tool_mi…
thinkyhead Mar 31, 2020
2222a4e
Rename some strings
thinkyhead Mar 31, 2020
0671d87
Fix migration.last edit sign
thinkyhead Mar 31, 2020
496cdb0
Update FastIO for pull-down
thinkyhead Mar 31, 2020
387a4f5
Merge branch 'bugfix-2.0.x' into ToolMigration
thinkyhead Apr 2, 2020
078ef21
Merge remote-tracking branch 'studiodyne/ToolMigration' into bf2_tool…
thinkyhead Apr 2, 2020
4bf934b
Fix language file
thinkyhead Apr 2, 2020
ea10741
More consistent option names
thinkyhead Apr 2, 2020
0e042a1
Update configuration_store.cpp
thinkyhead Apr 3, 2020
2336b58
Update planner.h
thinkyhead Apr 3, 2020
5959ce5
CUT => WIPE
thinkyhead Apr 3, 2020
b6e864a
Added : No park without all axes homed (not included in can_move_away)
studiodyne Apr 6, 2020
4619728
up
studiodyne Apr 10, 2020
e774a8d
Merge pull request #35 from MarlinFirmware/bugfix-2.0.x
studiodyne Apr 10, 2020
f1d65bb
Update menu_configuration.cpp
studiodyne Apr 10, 2020
68fb027
Fix SD_FINISHED_RELEASECOMMAND bug
thinkyhead Apr 12, 2020
88c895e
Merge remote-tracking branch 'upstream/bugfix-2.0.x' into bf2_tool_mi…
thinkyhead Apr 12, 2020
39fe6ef
Fix SD_FINISHED_RELEASECOMMAND bug
thinkyhead Apr 12, 2020
4e2b4ae
Merge remote-tracking branch 'upstream/bugfix-2.0.x' into bf2_tool_mi…
thinkyhead Apr 12, 2020
2307a95
Update menu_configuration.cpp
thinkyhead Apr 12, 2020
41d3da0
Merge remote-tracking branch 'upstream/bugfix-2.0.x' into bf2_tool_mi…
thinkyhead Apr 12, 2020
0bac128
Runout tool migration
studiodyne Mar 22, 2020
0e920ba
Clean. Replace 'N' with 'C'. Overload 'T' for 'Q'.
thinkyhead Mar 29, 2020
f24f7a0
More cleanup
thinkyhead Mar 29, 2020
2068b32
Add a test for TOOLCHANGE_MIGRATION_FEATURE
thinkyhead Mar 29, 2020
ac37631
No fr backup needed
thinkyhead Mar 29, 2020
ab46101
Refresh e_factor on flow update
thinkyhead Mar 29, 2020
8bed7e4
0 = no target, fix migration_extruder
thinkyhead Mar 29, 2020
ea0aa2f
More adjustments, tests
thinkyhead Mar 30, 2020
45f13a9
Rename some strings
thinkyhead Mar 31, 2020
c75d7fe
Fix migration.last edit sign
thinkyhead Mar 31, 2020
1e3da99
Fix language file
thinkyhead Apr 2, 2020
e3f1aac
More consistent option names
thinkyhead Apr 2, 2020
eeddd2f
Update configuration_store.cpp
thinkyhead Apr 3, 2020
87abac3
Update planner.h
thinkyhead Apr 3, 2020
0e1a287
CUT => WIPE
thinkyhead Apr 3, 2020
a307ace
Added : No park without all axes homed (not included in can_move_away)
studiodyne Apr 6, 2020
cd1dc21
Update menu_configuration.cpp
studiodyne Apr 10, 2020
a7a566e
Fix SD_FINISHED_RELEASECOMMAND bug
thinkyhead Apr 12, 2020
626d11a
Update menu_configuration.cpp
thinkyhead Apr 12, 2020
8f6c44b
Update M217.cpp
studiodyne Apr 12, 2020
a21c924
Merge branch 'ToolMigration' of https://github.com/studiodyne/Marlin …
studiodyne Apr 12, 2020
5049f98
tool_change_prime() cleanup/simplifications
studiodyne Apr 12, 2020
c16866a
Update priming calculation
studiodyne Apr 12, 2020
d342e0b
up
studiodyne Apr 12, 2020
2e60f50
Homed/Not homed conditionnals
studiodyne Apr 12, 2020
a8f92fd
Add heating message on tool migration()
studiodyne Apr 12, 2020
85612be
Merge pull request #38 from MarlinFirmware/bugfix-2.0.x
studiodyne Apr 12, 2020
2c20090
Update Tool_change_prime
studiodyne Apr 13, 2020
db3b659
up
studiodyne Apr 22, 2020
c5751bc
Merge pull request #39 from MarlinFirmware/bugfix-2.0.x
studiodyne Apr 22, 2020
2fefe35
Update tool_change.cpp
thinkyhead Apr 23, 2020
a490b35
Update tool_change.cpp
thinkyhead Apr 23, 2020
70bae94
Merge remote-tracking branch 'upstream/bugfix-2.0.x' into bf2_tool_mi…
thinkyhead Apr 23, 2020
d6a7b6d
Apply TERN here too
thinkyhead Apr 23, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 47 additions & 9 deletions Marlin/Configuration_adv.h
Original file line number Diff line number Diff line change
Expand Up @@ -1847,19 +1847,55 @@
*/
#if EXTRUDERS > 1
// Z raise distance for tool-change, as needed for some extruders
#define TOOLCHANGE_ZRAISE 2 // (mm)
//#define TOOLCHANGE_NO_RETURN // Never return to the previous position on tool-change
#define TOOLCHANGE_ZRAISE 2 // (mm)
//#define TOOLCHANGE_ZRAISE_BEFORE_RETRACT // Apply raise before swap retraction (if enabled)
//#define TOOLCHANGE_NO_RETURN // Never return to previous position on tool-change
#if ENABLED(TOOLCHANGE_NO_RETURN)
//#define EVENT_GCODE_AFTER_TOOLCHANGE "G12X" // G-code to run after tool-change is complete
//#define EVENT_GCODE_AFTER_TOOLCHANGE "G12X" // Extra G-code to run after tool-change
#endif

// Retract and prime filament on tool-change
/**
* Retract and prime filament on tool-change to reduce
* ooze and stringing and to get cleaner transitions.
*/
//#define TOOLCHANGE_FILAMENT_SWAP
#if ENABLED(TOOLCHANGE_FILAMENT_SWAP)
#define TOOLCHANGE_FIL_SWAP_LENGTH 12 // (mm)
#define TOOLCHANGE_FIL_EXTRA_PRIME 2 // (mm)
#define TOOLCHANGE_FIL_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define TOOLCHANGE_FIL_SWAP_PRIME_SPEED 3600 // (mm/m)
// Load / Unload
#define TOOLCHANGE_FS_LENGTH 12 // (mm) Load / Unload length
#define TOOLCHANGE_FS_EXTRA_RESUME_LENGTH 0 // (mm) Extra length for better restart, fine tune by LCD/Gcode)
#define TOOLCHANGE_FS_RETRACT_SPEED (50*60) // (mm/m) (Unloading)
#define TOOLCHANGE_FS_UNRETRACT_SPEED (25*60) // (mm/m) (On SINGLENOZZLE or Bowden loading must be slowed down)

// Longer prime to clean out a SINGLENOZZLE
#define TOOLCHANGE_FS_EXTRA_PRIME 0 // (mm) Extra priming length
#define TOOLCHANGE_FS_PRIME_SPEED (4.6*60) // (mm/m) Extra priming feedrate
#define TOOLCHANGE_FS_WIPE_RETRACT 0 // (mm/m) Retract before cooling for less stringing, better wipe, etc.

// Cool after prime to reduce stringing
#define TOOLCHANGE_FS_FAN -1 // Fan index or -1 to skip
#define TOOLCHANGE_FS_FAN_SPEED 255 // 0-255
#define TOOLCHANGE_FS_FAN_TIME 10 // (seconds)

// Swap uninitialized extruder with TOOLCHANGE_FS_PRIME_SPEED for all lengths (recover + prime)
// (May break filament if not retracted beforehand.)
//#define TOOLCHANGE_FS_INIT_BEFORE_SWAP

// Prime on the first T command even if the same or no toolchange / swap
// Enable it (M217 V[0/1]) before printing, to avoid unwanted priming on host connect
//#define TOOLCHANGE_FS_PRIME_FIRST_USED

/**
* Tool Change Migration
* This feature provides G-code and LCD options to switch tools mid-print.
* All applicable tool properties are migrated so the print can continue.
* Tools must be closely matching and other restrictions may apply.
* Useful to:
* - Change filament color without interruption
* - Switch spools automatically on filament runout
* - Switch to a different nozzle on an extruder jam
*/
#define TOOLCHANGE_MIGRATION_FEATURE

#endif

/**
Expand All @@ -1870,8 +1906,10 @@
#if ENABLED(TOOLCHANGE_PARK)
#define TOOLCHANGE_PARK_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define TOOLCHANGE_PARK_XY_FEEDRATE 6000 // (mm/m)
//#define TOOLCHANGE_PARK_X_ONLY // X axis only move
//#define TOOLCHANGE_PARK_Y_ONLY // Y axis only move
#endif
#endif
#endif // EXTRUDERS > 1

/**
* Advanced Pause
Expand Down
9 changes: 9 additions & 0 deletions Marlin/src/feature/runout.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,10 @@ bool FilamentMonitorBase::enabled = true,
bool FilamentMonitorBase::host_handling; // = false
#endif

#if ENABLED(TOOLCHANGE_MIGRATION_FEATURE)
#include "../module/tool_change.h"
#endif

/**
* Called by FilamentSensorSwitch::run when filament is detected.
* Called by FilamentSensorEncoder::block_completed when motion is detected.
Expand Down Expand Up @@ -76,6 +80,11 @@ void event_filament_runout() {

if (TERN0(ADVANCED_PAUSE_FEATURE, did_pause_print)) return; // Action already in progress. Purge triggered repeated runout.

#if ENABLED(TOOLCHANGE_MIGRATION_FEATURE)
if (migration.in_progress) return; // Action already in progress. Purge triggered repeated runout.
if (migration.automode) { extruder_migration(); return; }
#endif

TERN_(EXTENSIBLE_UI, ExtUI::onFilamentRunout(ExtUI::getActiveTool()));

#if EITHER(HOST_PROMPT_SUPPORT, HOST_ACTION_COMMANDS)
Expand Down
112 changes: 90 additions & 22 deletions Marlin/src/gcode/config/M217.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@
#include "../gcode.h"
#include "../../module/tool_change.h"

#if ENABLED(TOOLCHANGE_MIGRATION_FEATURE)
#include "../../module/motion.h"
#endif

#include "../../MarlinCore.h" // for SP_X_STR, etc.

extern const char SP_X_STR[], SP_Y_STR[], SP_Z_STR[];
Expand All @@ -35,16 +39,30 @@ void M217_report(const bool eeprom=false) {

#if ENABLED(TOOLCHANGE_FILAMENT_SWAP)
serialprintPGM(eeprom ? PSTR(" M217") : PSTR("Toolchange:"));
SERIAL_ECHOPAIR(" S", LINEAR_UNIT(toolchange_settings.swap_length));
SERIAL_ECHOPAIR_P(SP_E_STR, LINEAR_UNIT(toolchange_settings.extra_prime));
SERIAL_ECHOPAIR_P(SP_P_STR, LINEAR_UNIT(toolchange_settings.prime_speed));
SERIAL_ECHOPAIR(" R", LINEAR_UNIT(toolchange_settings.retract_speed));
SERIAL_ECHOPAIR(" S", LINEAR_UNIT(toolchange_settings.swap_length),
" B", LINEAR_UNIT(toolchange_settings.extra_resume));
SERIAL_ECHOPAIR_P(SP_E_STR, LINEAR_UNIT(toolchange_settings.extra_prime),
SP_P_STR, LINEAR_UNIT(toolchange_settings.prime_speed));
SERIAL_ECHOPAIR(" R", LINEAR_UNIT(toolchange_settings.retract_speed),
" U", LINEAR_UNIT(toolchange_settings.unretract_speed),
" F", toolchange_settings.fan_speed,
" G", toolchange_settings.fan_time);

#if ENABLED(TOOLCHANGE_MIGRATION_FEATURE)
SERIAL_ECHOPAIR(" N", int(migration.automode));
SERIAL_ECHOPAIR(" L", LINEAR_UNIT(migration.last));
#endif

#if ENABLED(TOOLCHANGE_PARK)
SERIAL_ECHOPAIR(" W", LINEAR_UNIT(toolchange_settings.enable_park));
SERIAL_ECHOPAIR_P(SP_X_STR, LINEAR_UNIT(toolchange_settings.change_point.x));
SERIAL_ECHOPAIR_P(SP_Y_STR, LINEAR_UNIT(toolchange_settings.change_point.y));
#endif

#if ENABLED(TOOLCHANGE_FS_PRIME_FIRST_USED)
SERIAL_ECHOPAIR(" V", LINEAR_UNIT(enable_first_prime));
#endif

#else

UNUSED(eeprom);
Expand All @@ -58,48 +76,98 @@ void M217_report(const bool eeprom=false) {
/**
* M217 - Set SINGLENOZZLE toolchange parameters
*
* // Tool change command
* Q Prime active tool and exit
*
* // Tool change settings
* S[linear] Swap length
* E[linear] Purge length
* B[linear] Extra Swap length
* E[linear] Prime length
* P[linear/m] Prime speed
* R[linear/m] Retract speed
* U[linear/m] UnRetract speed
* V[linear] 0/1 Enable auto prime first extruder used
* W[linear] 0/1 Enable park & Z Raise
* X[linear] Park X (Requires TOOLCHANGE_PARK)
* Y[linear] Park Y (Requires TOOLCHANGE_PARK)
* Z[linear] Z Raise
* F[linear] Fan Speed 0-255
* G[linear/s] Fan time
*
* Tool migration settings
* A[0|1] Enable auto-migration on runout
* L[index] Last extruder to use for auto-migration
*
* Tool migration command
* T[index] Migrate to next extruder or the given extruder
*/
void GcodeSuite::M217() {

#define SPR_PARAM
#define XY_PARAM

#if ENABLED(TOOLCHANGE_FILAMENT_SWAP)

#undef SPR_PARAM
#define SPR_PARAM "SPRE"
static constexpr float max_extrude = TERN(PREVENT_LENGTHY_EXTRUDE, EXTRUDE_MAXLENGTH, 500);

static constexpr float max_extrude =
#if ENABLED(PREVENT_LENGTHY_EXTRUDE)
EXTRUDE_MAXLENGTH
#else
500
#endif
;
if (parser.seen('Q')) { tool_change_prime(); return; }

if (parser.seenval('S')) { const float v = parser.value_linear_units(); toolchange_settings.swap_length = constrain(v, 0, max_extrude); }
if (parser.seenval('B')) { const float v = parser.value_linear_units(); toolchange_settings.extra_resume = constrain(v, -10, 10); }
if (parser.seenval('E')) { const float v = parser.value_linear_units(); toolchange_settings.extra_prime = constrain(v, 0, max_extrude); }
if (parser.seenval('P')) { const int16_t v = parser.value_linear_units(); toolchange_settings.prime_speed = constrain(v, 10, 5400); }
if (parser.seenval('R')) { const int16_t v = parser.value_linear_units(); toolchange_settings.retract_speed = constrain(v, 10, 5400); }
if (parser.seenval('U')) { const int16_t v = parser.value_linear_units(); toolchange_settings.unretract_speed = constrain(v, 10, 5400); }
#if TOOLCHANGE_FS_FAN >= 0 && FAN_COUNT > 0
if (parser.seenval('F')) { const int16_t v = parser.value_linear_units(); toolchange_settings.fan_speed = constrain(v, 0, 255); }
if (parser.seenval('G')) { const int16_t v = parser.value_linear_units(); toolchange_settings.fan_time = constrain(v, 1, 30); }
#endif
#endif

#if ENABLED(TOOLCHANGE_FS_PRIME_FIRST_USED)
if (parser.seenval('V')) { enable_first_prime = parser.value_linear_units(); }
#endif

#if ENABLED(TOOLCHANGE_PARK)
#undef XY_PARAM
#define XY_PARAM "XY"
if (parser.seenval('X')) { toolchange_settings.change_point.x = parser.value_linear_units(); }
if (parser.seenval('Y')) { toolchange_settings.change_point.y = parser.value_linear_units(); }
if (parser.seenval('W')) { toolchange_settings.enable_park = parser.value_linear_units(); }
if (parser.seenval('X')) { const int16_t v = parser.value_linear_units(); toolchange_settings.change_point.x = constrain(v, X_MIN_POS, X_MAX_POS); }
if (parser.seenval('Y')) { const int16_t v = parser.value_linear_units(); toolchange_settings.change_point.y = constrain(v, Y_MIN_POS, Y_MAX_POS); }
#endif

if (parser.seenval('Z')) { toolchange_settings.z_raise = parser.value_linear_units(); }

if (!parser.seen(SPR_PARAM XY_PARAM "Z")) M217_report();
#if ENABLED(TOOLCHANGE_MIGRATION_FEATURE)
migration.target = 0; // 0 = disabled

if (parser.seenval('L')) { // Last
const int16_t lval = parser.value_int();
if (WITHIN(lval, 0, EXTRUDERS - 1)) {
migration.last = lval;
migration.automode = (active_extruder < migration.last);
}
}

if (parser.seen('A')) // Auto on/off
migration.automode = parser.value_bool();

if (parser.seen('T')) { // Migrate now
if (parser.has_value()) {
const int16_t tval = parser.value_int();
if (WITHIN(tval, 0, EXTRUDERS - 1) && tval != active_extruder) {
migration.target = tval + 1;
extruder_migration();
migration.target = 0; // disable
return;
}
else
migration.target = 0; // disable
}
else {
extruder_migration();
return;
}
}

#endif

M217_report();
}

#endif // EXTRUDERS > 1
6 changes: 2 additions & 4 deletions Marlin/src/gcode/config/M221.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,8 @@ void GcodeSuite::M221() {
const int8_t target_extruder = get_target_extruder_from_command();
if (target_extruder < 0) return;

if (parser.seenval('S')) {
planner.flow_percentage[target_extruder] = parser.value_int();
planner.refresh_e_factor(target_extruder);
}
if (parser.seenval('S'))
planner.set_flow(target_extruder, parser.value_int());
else {
SERIAL_ECHO_START();
SERIAL_CHAR('E', '0' + target_extruder);
Expand Down
5 changes: 1 addition & 4 deletions Marlin/src/gcode/sd/M1001.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,6 @@
#include "../queue.h"
#endif

#if HAS_LEDS_OFF_FLAG
#include "../../MarlinCore.h"
#endif

#if EITHER(LCD_SET_PROGRESS_MANUALLY, SD_REPRINT_LAST_SELECTED_FILE)
#include "../../lcd/ultralcd.h"
#endif
Expand All @@ -44,6 +40,7 @@
#endif

#if HAS_LEDS_OFF_FLAG
#include "../../MarlinCore.h" // for wait_for_user_response
#include "../../feature/leds/printer_event_leds.h"
#endif

Expand Down
4 changes: 2 additions & 2 deletions Marlin/src/inc/Conditionals_post.h
Original file line number Diff line number Diff line change
Expand Up @@ -2222,8 +2222,8 @@
#define FILAMENT_CHANGE_SLOW_LOAD_LENGTH 0
#endif

#if EXTRUDERS > 1 && !defined(TOOLCHANGE_FIL_EXTRA_PRIME)
#define TOOLCHANGE_FIL_EXTRA_PRIME 0
#if EXTRUDERS > 1 && !defined(TOOLCHANGE_FS_EXTRA_PRIME)
#define TOOLCHANGE_FS_EXTRA_PRIME 0
#endif

/**
Expand Down
13 changes: 7 additions & 6 deletions Marlin/src/inc/SanityCheck.h
Original file line number Diff line number Diff line change
Expand Up @@ -833,14 +833,15 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
#endif

#if ENABLED(TOOLCHANGE_FILAMENT_SWAP)
#ifndef TOOLCHANGE_FIL_SWAP_LENGTH
#error "TOOLCHANGE_FILAMENT_SWAP requires TOOLCHANGE_FIL_SWAP_LENGTH. Please update your Configuration."
#elif !defined(TOOLCHANGE_FIL_SWAP_RETRACT_SPEED)
#error "TOOLCHANGE_FILAMENT_SWAP requires TOOLCHANGE_FIL_SWAP_RETRACT_SPEED. Please update your Configuration."
#elif !defined(TOOLCHANGE_FIL_SWAP_PRIME_SPEED)
#error "TOOLCHANGE_FILAMENT_SWAP requires TOOLCHANGE_FIL_SWAP_PRIME_SPEED. Please update your Configuration."
#ifndef TOOLCHANGE_FS_LENGTH
#error "TOOLCHANGE_FILAMENT_SWAP requires TOOLCHANGE_FS_LENGTH. Please update your Configuration_adv.h."
#elif !defined(TOOLCHANGE_FS_RETRACT_SPEED)
#error "TOOLCHANGE_FILAMENT_SWAP requires TOOLCHANGE_FS_RETRACT_SPEED. Please update your Configuration_adv.h."
#elif !defined(TOOLCHANGE_FS_PRIME_SPEED)
#error "TOOLCHANGE_FILAMENT_SWAP requires TOOLCHANGE_FS_PRIME_SPEED. Please update your Configuration_adv.h."
#endif
#endif

#if ENABLED(TOOLCHANGE_PARK)
#ifndef TOOLCHANGE_PARK_XY
#error "TOOLCHANGE_PARK requires TOOLCHANGE_PARK_XY. Please update your Configuration."
Expand Down
3 changes: 1 addition & 2 deletions Marlin/src/lcd/extui/lib/dgus/DGUSDisplay.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -573,8 +573,7 @@ void DGUSScreenVariableHandler::HandleFlowRateChanged(DGUS_VP_Variable &var, voi
#endif
}

planner.flow_percentage[target_extruder] = newvalue;
planner.refresh_e_factor(target_extruder);
planner.set_flow(target_extruder, newvalue);
ScreenHandler.skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel
#else
UNUSED(var); UNUSED(val_ptr);
Expand Down
5 changes: 1 addition & 4 deletions Marlin/src/lcd/extui/ui_api.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -669,10 +669,7 @@ namespace ExtUI {
float getRetractAcceleration_mm_s2() { return planner.settings.retract_acceleration; }
float getTravelAcceleration_mm_s2() { return planner.settings.travel_acceleration; }
void setFeedrate_mm_s(const feedRate_t fr) { feedrate_mm_s = fr; }
void setFlow_percent(const int16_t flow, const extruder_t extr) {
planner.flow_percentage[extr] = flow;
planner.refresh_e_factor(extr);
}
void setFlow_percent(const int16_t flow, const extruder_t extr) { planner.set_flow(extr, flow); }
void setMinFeedrate_mm_s(const feedRate_t fr) { planner.settings.min_feedrate_mm_s = fr; }
void setMinTravelFeedrate_mm_s(const feedRate_t fr) { planner.settings.min_travel_feedrate_mm_s = fr; }
void setPrintingAcceleration_mm_s2(const float acc) { planner.settings.acceleration = acc; }
Expand Down
4 changes: 2 additions & 2 deletions Marlin/src/lcd/language/language_cz.h
Original file line number Diff line number Diff line change
Expand Up @@ -357,8 +357,8 @@ namespace Language_cz {
PROGMEM Language_Str MSG_FILAMENT_PURGE_LENGTH = _UxGT("Délka zavedení");
PROGMEM Language_Str MSG_TOOL_CHANGE = _UxGT("Výměna nástroje");
PROGMEM Language_Str MSG_TOOL_CHANGE_ZLIFT = _UxGT("Zdvih Z");
PROGMEM Language_Str MSG_SINGLENOZZLE_PRIME_SPD = _UxGT("Rychlost primár.");
PROGMEM Language_Str MSG_SINGLENOZZLE_RETRACT_SPD = _UxGT("Rychlost retrak.");
PROGMEM Language_Str MSG_SINGLENOZZLE_PRIME_SPEED = _UxGT("Rychlost primár.");
PROGMEM Language_Str MSG_SINGLENOZZLE_RETRACT_SPEED = _UxGT("Rychlost retrak.");
PROGMEM Language_Str MSG_NOZZLE_STANDBY = _UxGT("Tryska standby");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Vyměnit filament");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E = _UxGT("Vyměnit filament *");
Expand Down
6 changes: 3 additions & 3 deletions Marlin/src/lcd/language/language_de.h
Original file line number Diff line number Diff line change
Expand Up @@ -347,9 +347,9 @@ namespace Language_de {
PROGMEM Language_Str MSG_FILAMENT_PURGE_LENGTH = _UxGT("Entladelänge");
PROGMEM Language_Str MSG_TOOL_CHANGE = _UxGT("Werkzeugwechsel");
PROGMEM Language_Str MSG_TOOL_CHANGE_ZLIFT = _UxGT("Z anheben");
PROGMEM Language_Str MSG_SINGLENOZZLE_PRIME_SPD = _UxGT("Prime-Geschwin.");
PROGMEM Language_Str MSG_SINGLENOZZLE_RETRACT_SPD = _UxGT("Einzug-Geschwin.");

PROGMEM Language_Str MSG_SINGLENOZZLE_PRIME_SPEED = _UxGT("Prime-Geschwin.");
PROGMEM Language_Str MSG_SINGLENOZZLE_RETRACT_SPEED = _UxGT("Einzug-Geschwin.");
PROGMEM Language_Str MSG_NOZZLE_STANDBY = _UxGT("Düsen-Standby");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Filament wechseln");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E = _UxGT("Filament wechseln *");
PROGMEM Language_Str MSG_FILAMENTLOAD = _UxGT("Filament laden");
Expand Down
15 changes: 13 additions & 2 deletions Marlin/src/lcd/language/language_en.h
Original file line number Diff line number Diff line change
Expand Up @@ -371,11 +371,22 @@ namespace Language_en {
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAPF = _UxGT("S UnRet V");
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("AutoRetr.");
PROGMEM Language_Str MSG_FILAMENT_SWAP_LENGTH = _UxGT("Swap Length");
PROGMEM Language_Str MSG_FILAMENT_SWAP_EXTRA = _UxGT("Swap Extra");
PROGMEM Language_Str MSG_FILAMENT_PURGE_LENGTH = _UxGT("Purge Length");
PROGMEM Language_Str MSG_TOOL_CHANGE = _UxGT("Tool Change");
PROGMEM Language_Str MSG_TOOL_CHANGE_ZLIFT = _UxGT("Z Raise");
PROGMEM Language_Str MSG_SINGLENOZZLE_PRIME_SPD = _UxGT("Prime Speed");
PROGMEM Language_Str MSG_SINGLENOZZLE_RETRACT_SPD = _UxGT("Retract Speed");
PROGMEM Language_Str MSG_SINGLENOZZLE_PRIME_SPEED = _UxGT("Prime Speed");
PROGMEM Language_Str MSG_SINGLENOZZLE_RETRACT_SPEED = _UxGT("Retract Speed");
PROGMEM Language_Str MSG_FILAMENT_PARK_ENABLED = _UxGT("Park Head");
PROGMEM Language_Str MSG_SINGLENOZZLE_UNRETRACT_SPEED = _UxGT("Recover Speed");
PROGMEM Language_Str MSG_SINGLENOZZLE_FAN_SPEED = _UxGT("Fan Speed");
PROGMEM Language_Str MSG_SINGLENOZZLE_FAN_TIME = _UxGT("Fan Time");
PROGMEM Language_Str MSG_TOOL_MIGRATION_ON = _UxGT("Auto ON");
PROGMEM Language_Str MSG_TOOL_MIGRATION_OFF = _UxGT("Auto OFF");
PROGMEM Language_Str MSG_TOOL_MIGRATION = _UxGT("Tool Migration");
PROGMEM Language_Str MSG_TOOL_MIGRATION_AUTO = _UxGT("Auto-migration");
PROGMEM Language_Str MSG_TOOL_MIGRATION_END = _UxGT("Last Extruder");
PROGMEM Language_Str MSG_TOOL_MIGRATION_SWAP = _UxGT("Migrate to *");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Change Filament");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E = _UxGT("Change Filament *");
PROGMEM Language_Str MSG_FILAMENTLOAD = _UxGT("Load Filament");
Expand Down
Loading