Improvements for junction_deviation_mm
- Drop `max_jerk` with `JUNCTION_DEVIATION` - Add `max_e_jerk_factor` for use by `LIN_ADVANCE` - Recalculate `max_e_jerk_factor` when `junction_deviation_mm` changes - Fix LCD editing of `junction_deviation_mm`
This commit is contained in:
@ -330,6 +330,10 @@ void MarlinSettings::postprocess() {
|
||||
fwretract.refresh_autoretract();
|
||||
#endif
|
||||
|
||||
#if ENABLED(JUNCTION_DEVIATION) && ENABLED(LIN_ADVANCE)
|
||||
planner.recalculate_max_e_jerk_factor();
|
||||
#endif
|
||||
|
||||
// Refresh steps_to_mm with the reciprocal of axis_steps_per_mm
|
||||
// and init stepper.count[], planner.position[] with current_position
|
||||
planner.refresh_positioning();
|
||||
@ -411,11 +415,13 @@ void MarlinSettings::postprocess() {
|
||||
EEPROM_WRITE(planner.travel_acceleration);
|
||||
EEPROM_WRITE(planner.min_feedrate_mm_s);
|
||||
EEPROM_WRITE(planner.min_travel_feedrate_mm_s);
|
||||
EEPROM_WRITE(planner.max_jerk);
|
||||
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
const float planner_max_jerk[] = { DEFAULT_XJERK, DEFAULT_YJERK, DEFAULT_ZJERK, DEFAULT_EJERK };
|
||||
EEPROM_WRITE(planner_max_jerk);
|
||||
EEPROM_WRITE(planner.junction_deviation_mm);
|
||||
#else
|
||||
EEPROM_WRITE(planner.max_jerk);
|
||||
dummy = 0.02;
|
||||
EEPROM_WRITE(dummy);
|
||||
#endif
|
||||
@ -1008,11 +1014,12 @@ void MarlinSettings::postprocess() {
|
||||
EEPROM_READ(planner.travel_acceleration);
|
||||
EEPROM_READ(planner.min_feedrate_mm_s);
|
||||
EEPROM_READ(planner.min_travel_feedrate_mm_s);
|
||||
EEPROM_READ(planner.max_jerk);
|
||||
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
for (uint8_t q = 4; q--;) EEPROM_READ(dummy);
|
||||
EEPROM_READ(planner.junction_deviation_mm);
|
||||
#else
|
||||
EEPROM_READ(planner.max_jerk);
|
||||
EEPROM_READ(dummy);
|
||||
#endif
|
||||
|
||||
@ -1724,13 +1731,14 @@ void MarlinSettings::reset(PORTARG_SOLO) {
|
||||
planner.travel_acceleration = DEFAULT_TRAVEL_ACCELERATION;
|
||||
planner.min_feedrate_mm_s = DEFAULT_MINIMUMFEEDRATE;
|
||||
planner.min_travel_feedrate_mm_s = DEFAULT_MINTRAVELFEEDRATE;
|
||||
planner.max_jerk[X_AXIS] = DEFAULT_XJERK;
|
||||
planner.max_jerk[Y_AXIS] = DEFAULT_YJERK;
|
||||
planner.max_jerk[Z_AXIS] = DEFAULT_ZJERK;
|
||||
planner.max_jerk[E_AXIS] = DEFAULT_EJERK;
|
||||
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
planner.junction_deviation_mm = JUNCTION_DEVIATION_MM;
|
||||
#else
|
||||
planner.max_jerk[X_AXIS] = DEFAULT_XJERK;
|
||||
planner.max_jerk[Y_AXIS] = DEFAULT_YJERK;
|
||||
planner.max_jerk[Z_AXIS] = DEFAULT_ZJERK;
|
||||
planner.max_jerk[E_AXIS] = DEFAULT_EJERK;
|
||||
#endif
|
||||
|
||||
#if HAS_HOME_OFFSET
|
||||
@ -2135,8 +2143,6 @@ void MarlinSettings::reset(PORTARG_SOLO) {
|
||||
SERIAL_ECHOPAIR_P(port, " X", LINEAR_UNIT(planner.max_jerk[X_AXIS]));
|
||||
SERIAL_ECHOPAIR_P(port, " Y", LINEAR_UNIT(planner.max_jerk[Y_AXIS]));
|
||||
SERIAL_ECHOPAIR_P(port, " Z", LINEAR_UNIT(planner.max_jerk[Z_AXIS]));
|
||||
#endif
|
||||
#if DISABLED(JUNCTION_DEVIATION) || ENABLED(LIN_ADVANCE)
|
||||
SERIAL_ECHOPAIR_P(port, " E", LINEAR_UNIT(planner.max_jerk[E_AXIS]));
|
||||
#endif
|
||||
|
||||
|
Reference in New Issue
Block a user