🩹 Show Linear Advance for FT Motion (#28306)
Followup to 5a0923ed, #21827
This commit is contained in:
@@ -57,7 +57,7 @@
|
||||
#endif
|
||||
|
||||
#if ALL(I2S_STEPPER_STREAM, LIN_ADVANCE) && DISABLED(EXPERIMENTAL_I2S_LA)
|
||||
#error "I2S stream is currently incompatible with LIN_ADVANCE."
|
||||
#error "I2S stream is currently incompatible with LIN_ADVANCE. Enable EXPERIMENTAL_I2S_LA to proceed anyway."
|
||||
#endif
|
||||
|
||||
#if ALL(I2S_STEPPER_STREAM, PRINTCOUNTER) && PRINTCOUNTER_SAVE_INTERVAL > 0 && DISABLED(PRINTCOUNTER_SYNC)
|
||||
|
||||
@@ -2325,7 +2325,7 @@ void JyersDWIN::menuItemHandler(const uint8_t menu, const uint8_t item, bool dra
|
||||
#define MOTION_JERK (MOTION_ACCEL + ENABLED(CLASSIC_JERK))
|
||||
#define MOTION_STEPS (MOTION_JERK + 1)
|
||||
#define MOTION_FLOW (MOTION_STEPS + ENABLED(HAS_HOTEND))
|
||||
#define MOTION_LA (MOTION_FLOW + ENABLED(LIN_ADVANCE))
|
||||
#define MOTION_LA (MOTION_FLOW + ENABLED(HAS_LIN_ADVANCE_K))
|
||||
#define MOTION_TOTAL MOTION_LA
|
||||
|
||||
switch (item) {
|
||||
@@ -2383,7 +2383,7 @@ void JyersDWIN::menuItemHandler(const uint8_t menu, const uint8_t item, bool dra
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if ENABLED(LIN_ADVANCE)
|
||||
#if HAS_LIN_ADVANCE_K
|
||||
case MOTION_LA:
|
||||
if (draw) {
|
||||
drawMenuItem(row, ICON_MaxAccelerated, GET_TEXT_F(MSG_ADVANCE_K));
|
||||
@@ -2845,7 +2845,7 @@ void JyersDWIN::menuItemHandler(const uint8_t menu, const uint8_t item, bool dra
|
||||
#define ADVANCED_PROBE (ADVANCED_BEEPER + ENABLED(HAS_BED_PROBE))
|
||||
#define ADVANCED_TMC (ADVANCED_PROBE + ENABLED(HAS_TRINAMIC_CONFIG))
|
||||
#define ADVANCED_CORNER (ADVANCED_TMC + 1)
|
||||
#define ADVANCED_LA (ADVANCED_CORNER + ENABLED(LIN_ADVANCE))
|
||||
#define ADVANCED_LA (ADVANCED_CORNER + ENABLED(HAS_LIN_ADVANCE_K))
|
||||
#define ADVANCED_LOAD (ADVANCED_LA + ENABLED(ADVANCED_PAUSE_FEATURE))
|
||||
#define ADVANCED_UNLOAD (ADVANCED_LOAD + ENABLED(ADVANCED_PAUSE_FEATURE))
|
||||
#define ADVANCED_COLD_EXTRUDE (ADVANCED_UNLOAD + ENABLED(PREVENT_COLD_EXTRUSION))
|
||||
@@ -2902,7 +2902,7 @@ void JyersDWIN::menuItemHandler(const uint8_t menu, const uint8_t item, bool dra
|
||||
modifyValue(corner_pos, 1, 100, 10);
|
||||
break;
|
||||
|
||||
#if ENABLED(LIN_ADVANCE)
|
||||
#if HAS_LIN_ADVANCE_K
|
||||
case ADVANCED_LA:
|
||||
if (draw) {
|
||||
drawMenuItem(row, ICON_MaxAccelerated, GET_TEXT_F(MSG_ADVANCE_K));
|
||||
@@ -3819,7 +3819,7 @@ void JyersDWIN::menuItemHandler(const uint8_t menu, const uint8_t item, bool dra
|
||||
#define TUNE_ZOFFSET (TUNE_FAN + ENABLED(HAS_ZOFFSET_ITEM))
|
||||
#define TUNE_ZUP (TUNE_ZOFFSET + ENABLED(HAS_ZOFFSET_ITEM))
|
||||
#define TUNE_ZDOWN (TUNE_ZUP + ENABLED(HAS_ZOFFSET_ITEM))
|
||||
#define TUNE_LA (TUNE_ZDOWN + ENABLED(LIN_ADVANCE))
|
||||
#define TUNE_LA (TUNE_ZDOWN + ENABLED(HAS_LIN_ADVANCE_K))
|
||||
#define TUNE_CHANGEFIL (TUNE_LA + ENABLED(FILAMENT_LOAD_UNLOAD_GCODES))
|
||||
#define TUNE_FWRETRACT (TUNE_CHANGEFIL + ENABLED(FWRETRACT))
|
||||
#define TUNE_FILSENSORENABLED (TUNE_FWRETRACT + ENABLED(HAS_FILAMENT_SENSOR))
|
||||
@@ -3913,7 +3913,7 @@ void JyersDWIN::menuItemHandler(const uint8_t menu, const uint8_t item, bool dra
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if ENABLED(LIN_ADVANCE)
|
||||
#if HAS_LIN_ADVANCE_K
|
||||
case TUNE_LA:
|
||||
if (draw) {
|
||||
drawMenuItem(row, ICON_MaxAccelerated, GET_TEXT_F(MSG_ADVANCE_K));
|
||||
|
||||
@@ -2691,7 +2691,7 @@ void applyMaxAccel() { planner.set_max_acceleration(hmiValue.axis, menuData.valu
|
||||
void setMaxJerkE() { hmiValue.axis = E_AXIS; setFloatOnClick(min_jerk_edit_values.e, max_jerk_edit_values.e, UNITFDIGITS, planner.max_jerk.e, applyMaxJerk); }
|
||||
#endif
|
||||
#elif HAS_JUNCTION_DEVIATION
|
||||
void applyJDmm() { TERN_(LIN_ADVANCE, planner.recalculate_max_e_jerk()); }
|
||||
void applyJDmm() { TERN_(HAS_LINEAR_E_JERK, planner.recalculate_max_e_jerk()); }
|
||||
void setJDmm() { setPFloatOnClick(MIN_JD_MM, MAX_JD_MM, 3, applyJDmm); }
|
||||
#endif
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ void AdvancedSettingsMenu::onRedraw(draw_mode_t what) {
|
||||
.tag(10) .button(BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXT_F(TERN(HAS_JUNCTION_DEVIATION, MSG_JUNCTION_DEVIATION, MSG_JERK)))
|
||||
.enabled(ENABLED(BACKLASH_GCODE))
|
||||
.tag(11) .button(BTN_POS(2,5), BTN_SIZE(1,1), GET_TEXT_F(MSG_BACKLASH))
|
||||
.enabled(ENABLED(LIN_ADVANCE))
|
||||
.enabled(ENABLED(HAS_LIN_ADVANCE_K))
|
||||
.tag(12) .button(BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXT_F(MSG_LINEAR_ADVANCE))
|
||||
.tag(13) .button(BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXT_F(MSG_INTERFACE))
|
||||
.tag(14) .button(BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_RESTORE_DEFAULTS))
|
||||
@@ -88,7 +88,7 @@ bool AdvancedSettingsMenu::onTouchEnd(uint8_t tag) {
|
||||
#if ENABLED(BACKLASH_GCODE)
|
||||
case 11: GOTO_SCREEN(BacklashCompensationScreen); break;
|
||||
#endif
|
||||
#if ENABLED(LIN_ADVANCE)
|
||||
#if HAS_LIN_ADVANCE_K
|
||||
case 12: GOTO_SCREEN(LinearAdvanceScreen); break;
|
||||
#endif
|
||||
case 13: GOTO_SCREEN(InterfaceSettingsScreen); break;
|
||||
|
||||
@@ -57,7 +57,7 @@ void AdvancedSettingsMenu::onRedraw(draw_mode_t what) {
|
||||
.tag(2) .button(STEPS_PER_MM_POS, GET_TEXT_F(MSG_STEPS_PER_MM))
|
||||
.enabled(ENABLED(HAS_TRINAMIC_CONFIG))
|
||||
.tag(3) .button(TMC_CURRENT_POS, GET_TEXT_F(MSG_TMC_CURRENT))
|
||||
.enabled(ENABLED(LIN_ADVANCE))
|
||||
.enabled(ENABLED(HAS_LIN_ADVANCE_K))
|
||||
.tag(4) .button(LIN_ADVANCE_POS, GET_TEXT_F(MSG_LINEAR_ADVANCE))
|
||||
.tag(5) .button(VELOCITY_POS, GET_TEXT_F(MSG_MAX_SPEED_NO_UNITS))
|
||||
.tag(6) .button(ACCELERATION_POS, GET_TEXT_F(MSG_ACCELERATION))
|
||||
@@ -76,10 +76,10 @@ bool AdvancedSettingsMenu::onTouchEnd(uint8_t tag) {
|
||||
case 1: SaveSettingsDialogBox::promptToSaveSettings(); break;
|
||||
case 2: GOTO_SCREEN(StepsScreen); break;
|
||||
#if HAS_TRINAMIC_CONFIG
|
||||
case 3: GOTO_SCREEN(StepperCurrentScreen); break;
|
||||
case 3: GOTO_SCREEN(StepperCurrentScreen); break;
|
||||
#endif
|
||||
#if ENABLED(LIN_ADVANCE)
|
||||
case 4: GOTO_SCREEN(LinearAdvanceScreen); break;
|
||||
#if HAS_LIN_ADVANCE_K
|
||||
case 4: GOTO_SCREEN(LinearAdvanceScreen); break;
|
||||
#endif
|
||||
case 5: GOTO_SCREEN(MaxVelocityScreen); break;
|
||||
case 6: GOTO_SCREEN(DefaultAccelerationScreen); break;
|
||||
|
||||
@@ -102,7 +102,7 @@ void AdvancedSettingsMenu::onRedraw(draw_mode_t what) {
|
||||
#endif
|
||||
.enabled(ENABLED(HAS_MULTI_HOTEND))
|
||||
.tag(4) .button(OFFSETS_POS, GET_TEXT_F(MSG_OFFSETS_MENU))
|
||||
.enabled(ANY(LIN_ADVANCE, HAS_FILAMENT_SENSOR))
|
||||
.enabled(ANY(HAS_LIN_ADVANCE_K, HAS_FILAMENT_SENSOR))
|
||||
.tag(11).button(FILAMENT_POS, GET_TEXT_F(MSG_FILAMENT))
|
||||
.tag(12).button(ENDSTOPS_POS, GET_TEXT_F(MSG_LCD_ENDSTOPS))
|
||||
.tag(15).button(DISPLAY_POS, GET_TEXT_F(MSG_DISPLAY_MENU))
|
||||
@@ -136,7 +136,7 @@ bool AdvancedSettingsMenu::onTouchEnd(uint8_t tag) {
|
||||
#endif
|
||||
case 9: GOTO_SCREEN(InterfaceSettingsScreen); LockScreen::check_passcode(); break;
|
||||
case 10: GOTO_SCREEN(RestoreFailsafeDialogBox); LockScreen::check_passcode(); break;
|
||||
#if ANY(LIN_ADVANCE, HAS_FILAMENT_SENSOR)
|
||||
#if HAS_LIN_ADVANCE_K || HAS_FILAMENT_SENSOR
|
||||
case 11: GOTO_SCREEN(FilamentMenu); break;
|
||||
#endif
|
||||
case 12: GOTO_SCREEN(EndstopStatesScreen); break;
|
||||
|
||||
@@ -60,7 +60,7 @@ void FilamentMenu::onRedraw(draw_mode_t what) {
|
||||
.font(font_medium).colors(normal_btn)
|
||||
.enabled(ENABLED(HAS_FILAMENT_SENSOR))
|
||||
.tag(2).button(RUNOUT_SENSOR_POS, GET_TEXT_F(MSG_RUNOUT_SENSOR))
|
||||
.enabled(ENABLED(LIN_ADVANCE))
|
||||
.enabled(ENABLED(HAS_LIN_ADVANCE_K))
|
||||
.tag(3).button(LIN_ADVANCE_POS, GET_TEXT_F(MSG_LINEAR_ADVANCE))
|
||||
.colors(action_btn)
|
||||
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BUTTON_DONE));
|
||||
@@ -73,7 +73,7 @@ bool FilamentMenu::onTouchEnd(uint8_t tag) {
|
||||
#if HAS_FILAMENT_SENSOR
|
||||
case 2: GOTO_SCREEN(FilamentRunoutScreen); break;
|
||||
#endif
|
||||
#if ENABLED(LIN_ADVANCE)
|
||||
#if HAS_LIN_ADVANCE_K
|
||||
case 3: GOTO_SCREEN(LinearAdvanceScreen); break;
|
||||
#endif
|
||||
default: return false;
|
||||
|
||||
@@ -75,10 +75,10 @@ enum {
|
||||
#if ENABLED(CASE_LIGHT_ENABLE)
|
||||
CASE_LIGHT_SCREEN_CACHE,
|
||||
#endif
|
||||
#if ANY(LIN_ADVANCE, HAS_FILAMENT_SENSOR)
|
||||
#if HAS_LIN_ADVANCE_K || HAS_FILAMENT_SENSOR
|
||||
FILAMENT_MENU_CACHE,
|
||||
#endif
|
||||
#if ENABLED(LIN_ADVANCE)
|
||||
#if HAS_LIN_ADVANCE_K
|
||||
LINEAR_ADVANCE_SCREEN_CACHE,
|
||||
#endif
|
||||
#if HAS_FILAMENT_SENSOR
|
||||
@@ -197,7 +197,7 @@ enum {
|
||||
#include "case_light_screen.h"
|
||||
#endif
|
||||
|
||||
#if ANY(LIN_ADVANCE, HAS_FILAMENT_SENSOR)
|
||||
#if HAS_LIN_ADVANCE_K || HAS_FILAMENT_SENSOR
|
||||
#include "filament_menu.h"
|
||||
#endif
|
||||
|
||||
@@ -205,7 +205,7 @@ enum {
|
||||
#include "filament_runout_screen.h"
|
||||
#endif
|
||||
|
||||
#if ENABLED(LIN_ADVANCE)
|
||||
#if HAS_LIN_ADVANCE_K
|
||||
#include "linear_advance_screen.h"
|
||||
#endif
|
||||
|
||||
|
||||
@@ -263,7 +263,7 @@ void NextionTFT::panelInfo(uint8_t req) {
|
||||
break;
|
||||
|
||||
case 23: // Linear Advance
|
||||
#if ENABLED(LIN_ADVANCE)
|
||||
#if HAS_LIN_ADVANCE_K
|
||||
SEND_VALasTXT("linadvance", getLinearAdvance_mm_mm_s(getActiveTool()));
|
||||
#else
|
||||
SEND_NA("linadvance");
|
||||
|
||||
@@ -641,7 +641,7 @@ namespace ExtUI {
|
||||
void setPowerLossRecoveryEnabled(const bool value) { recovery.enable(value); }
|
||||
#endif
|
||||
|
||||
#if ENABLED(LIN_ADVANCE)
|
||||
#if HAS_LIN_ADVANCE_K
|
||||
float getLinearAdvance_mm_mm_s(const extruder_t extruder) {
|
||||
return (extruder < EXTRUDERS) ? planner.get_advance_k(E_INDEX_N(extruder - E0)) : 0;
|
||||
}
|
||||
@@ -676,7 +676,7 @@ namespace ExtUI {
|
||||
|
||||
void setJunctionDeviation_mm(const float value) {
|
||||
planner.junction_deviation_mm = constrain(value, 0.001, 0.3);
|
||||
TERN_(LIN_ADVANCE, planner.recalculate_max_e_jerk());
|
||||
TERN_(HAS_LIN_ADVANCE_K, planner.recalculate_max_e_jerk());
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
@@ -327,7 +327,7 @@ namespace ExtUI {
|
||||
PauseMode getPauseMode();
|
||||
#endif
|
||||
|
||||
#if ENABLED(LIN_ADVANCE)
|
||||
#if HAS_LIN_ADVANCE_K
|
||||
// Linear Advance Control
|
||||
float getLinearAdvance_mm_mm_s(const extruder_t);
|
||||
void setLinearAdvance_mm_mm_s(const float, const extruder_t);
|
||||
|
||||
@@ -103,7 +103,7 @@ void menu_backlash();
|
||||
|
||||
#endif
|
||||
|
||||
#if ANY(HAS_VOLUMETRIC_EXTRUSION, ADVANCED_PAUSE_FEATURE)
|
||||
#if ANY(NONLINEAR_EXTRUSION, HAS_VOLUMETRIC_EXTRUSION, CONFIGURE_FILAMENT_CHANGE, FILAMENT_SWITCH_AND_MOTION)
|
||||
#define HAS_ADV_FILAMENT_MENU 1
|
||||
#endif
|
||||
|
||||
@@ -115,7 +115,7 @@ void menu_backlash();
|
||||
START_MENU();
|
||||
BACK_ITEM(MSG_ADVANCED_SETTINGS);
|
||||
|
||||
#if ENABLED(LIN_ADVANCE)
|
||||
#if HAS_LIN_ADVANCE_K
|
||||
#if DISABLED(DISTINCT_E_FACTORS)
|
||||
editable.decimal = planner.get_advance_k();
|
||||
EDIT_ITEM(float42_52, MSG_ADVANCE_K, &editable.decimal, 0.0f, 10.0f, []{ planner.set_advance_k(editable.decimal); });
|
||||
@@ -136,7 +136,7 @@ void menu_backlash();
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
#endif // LIN_ADVANCE
|
||||
#endif // HAS_LIN_ADVANCE_K
|
||||
|
||||
#if ENABLED(NONLINEAR_EXTRUSION)
|
||||
EDIT_ITEM(bool, MSG_NLE_ON, &stepper.nle.settings.enabled);
|
||||
@@ -763,7 +763,7 @@ void menu_advanced_settings() {
|
||||
|
||||
SUBMENU(MSG_FILAMENT, menu_advanced_filament);
|
||||
|
||||
#elif ENABLED(LIN_ADVANCE)
|
||||
#elif HAS_LIN_ADVANCE_K
|
||||
|
||||
#if DISABLED(DISTINCT_E_FACTORS)
|
||||
editable.decimal = planner.get_advance_k();
|
||||
@@ -786,7 +786,7 @@ void menu_advanced_settings() {
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // LIN_ADVANCE && !HAS_ADV_FILAMENT_MENU
|
||||
#endif // HAS_LIN_ADVANCE_K && !HAS_ADV_FILAMENT_MENU
|
||||
|
||||
// M540 S - Abort on endstop hit when SD printing
|
||||
#if ENABLED(SD_ABORT_ON_ENDSTOP_HIT)
|
||||
|
||||
@@ -217,7 +217,7 @@ void menu_tune() {
|
||||
//
|
||||
// Advance K:
|
||||
//
|
||||
#if ENABLED(LIN_ADVANCE) && DISABLED(SLIM_LCD_MENUS)
|
||||
#if HAS_LIN_ADVANCE_K && DISABLED(SLIM_LCD_MENUS)
|
||||
#if DISABLED(DISTINCT_E_FACTORS)
|
||||
editable.decimal = planner.get_advance_k();
|
||||
EDIT_ITEM(float42_52, MSG_ADVANCE_K, &editable.decimal, 0.0f, 10.0f, []{ planner.set_advance_k(editable.decimal); });
|
||||
@@ -238,7 +238,7 @@ void menu_tune() {
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif // HAS_LIN_ADVANCE_K && !SLIM_LCD_MENUS
|
||||
|
||||
//
|
||||
// Nonlinear Extrusion state
|
||||
|
||||
@@ -893,7 +893,7 @@ void RTS::handleData() {
|
||||
break;
|
||||
|
||||
case 4: // Go to Advanced Settings
|
||||
TERN_(LIN_ADVANCE, sendData(planner.get_advance_k() * 100, Advance_K_VP));
|
||||
TERN_(HAS_LIN_ADVANCE_K, sendData(planner.get_advance_k() * 100, Advance_K_VP));
|
||||
gotoPage(ID_AdvWarn_L, ID_AdvWarn_D);
|
||||
break;
|
||||
|
||||
@@ -1289,7 +1289,7 @@ void RTS::handleData() {
|
||||
|
||||
case 6: gotoPage(ID_Settings_L, ID_Settings_D); break; // Return
|
||||
|
||||
#if ENABLED(LIN_ADVANCE)
|
||||
#if HAS_LIN_ADVANCE_K
|
||||
case 7: // Confirm
|
||||
sendData(planner.get_advance_k() * 100, Advance_K_VP);
|
||||
gotoPage(ID_Advanced_L, ID_Advanced_D);
|
||||
@@ -1348,7 +1348,7 @@ void RTS::handleData() {
|
||||
case Jerk_E: planner.max_jerk.e = float(recdat.data[0]) * 0.1f; break;
|
||||
#endif
|
||||
case A_Retract: planner.settings.retract_acceleration = recdat.data[0]; break;
|
||||
#if ENABLED(LIN_ADVANCE)
|
||||
#if HAS_LIN_ADVANCE_K
|
||||
case Advance_K: planner.set_advance_k(float(recdat.data[0]) * 0.01f); break;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -2340,7 +2340,7 @@ bool Planner::_populate_block(
|
||||
const float steps_per_mm = block->step_event_count * inverse_millimeters;
|
||||
block->steps_per_mm = steps_per_mm;
|
||||
uint32_t accel;
|
||||
#if ANY(LIN_ADVANCE, FTM_HAS_LIN_ADVANCE)
|
||||
#if HAS_LIN_ADVANCE_K
|
||||
bool use_adv_lead = false;
|
||||
#endif
|
||||
if (!XYZ_HAS_STEPS(block)) { // Is this a retract / recover move?
|
||||
|
||||
@@ -323,7 +323,7 @@ typedef struct PlannerBlock {
|
||||
|
||||
} block_t;
|
||||
|
||||
#if ANY(LIN_ADVANCE, FTM_HAS_LIN_ADVANCE, FEEDRATE_SCALING, GRADIENT_MIX, LCD_SHOW_E_TOTAL, POWER_LOSS_RECOVERY)
|
||||
#if ANY(HAS_LIN_ADVANCE_K, FEEDRATE_SCALING, GRADIENT_MIX, LCD_SHOW_E_TOTAL, POWER_LOSS_RECOVERY)
|
||||
#define HAS_POSITION_FLOAT 1
|
||||
#endif
|
||||
|
||||
|
||||
@@ -494,7 +494,7 @@ typedef struct SettingsDataStruct {
|
||||
per_stepper_bool_t tmc_stealth_enabled; // M569 X Y Z...
|
||||
|
||||
//
|
||||
// LIN_ADVANCE
|
||||
// Linear Advance
|
||||
//
|
||||
#if HAS_LIN_ADVANCE_K
|
||||
float planner_extruder_advance_K[DISTINCT_E]; // M900 K planner.extruder_advance_K
|
||||
@@ -3645,7 +3645,7 @@ void MarlinSettings::reset() {
|
||||
//
|
||||
// Linear Advance
|
||||
//
|
||||
#if ENABLED(LIN_ADVANCE)
|
||||
#if HAS_LIN_ADVANCE_K
|
||||
#if ENABLED(DISTINCT_E_FACTORS)
|
||||
|
||||
constexpr float linAdvanceK[] = ADVANCE_K;
|
||||
@@ -3669,7 +3669,7 @@ void MarlinSettings::reset() {
|
||||
#endif
|
||||
|
||||
#endif
|
||||
#endif // LIN_ADVANCE
|
||||
#endif // HAS_LIN_ADVANCE_K
|
||||
|
||||
//
|
||||
// Motor Current PWM
|
||||
|
||||
@@ -1587,7 +1587,7 @@ void tool_change(const uint8_t new_tool, bool no_move/*=false*/) {
|
||||
#endif
|
||||
|
||||
// Migrate Linear Advance K factor to the new extruder
|
||||
TERN_(LIN_ADVANCE, planner.set_advance_k(planner.get_advance_k(migration_extruder), active_extruder));
|
||||
TERN_(HAS_LIN_ADVANCE_K, planner.set_advance_k(planner.get_advance_k(migration_extruder), active_extruder));
|
||||
|
||||
// Temporary migration toolchange_settings restored on exit. i.e., before next tool_change().
|
||||
#if defined(MIGRATION_FS_EXTRA_PRIME) \
|
||||
|
||||
Reference in New Issue
Block a user