🔧 Update CLASSIC_JERK conditionals
This commit is contained in:
parent
8bce9dec90
commit
75da3555ee
|
@ -155,7 +155,7 @@
|
||||||
planner.settings.max_acceleration_mm_per_s2[X_AXIS] = 100;
|
planner.settings.max_acceleration_mm_per_s2[X_AXIS] = 100;
|
||||||
planner.settings.max_acceleration_mm_per_s2[Y_AXIS] = 100;
|
planner.settings.max_acceleration_mm_per_s2[Y_AXIS] = 100;
|
||||||
TERN_(DELTA, planner.settings.max_acceleration_mm_per_s2[Z_AXIS] = 100);
|
TERN_(DELTA, planner.settings.max_acceleration_mm_per_s2[Z_AXIS] = 100);
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
motion_state.jerk_state = planner.max_jerk;
|
motion_state.jerk_state = planner.max_jerk;
|
||||||
planner.max_jerk.set(0, 0 OPTARG(DELTA, 0));
|
planner.max_jerk.set(0, 0 OPTARG(DELTA, 0));
|
||||||
#endif
|
#endif
|
||||||
|
@ -167,7 +167,7 @@
|
||||||
planner.settings.max_acceleration_mm_per_s2[X_AXIS] = motion_state.acceleration.x;
|
planner.settings.max_acceleration_mm_per_s2[X_AXIS] = motion_state.acceleration.x;
|
||||||
planner.settings.max_acceleration_mm_per_s2[Y_AXIS] = motion_state.acceleration.y;
|
planner.settings.max_acceleration_mm_per_s2[Y_AXIS] = motion_state.acceleration.y;
|
||||||
TERN_(DELTA, planner.settings.max_acceleration_mm_per_s2[Z_AXIS] = motion_state.acceleration.z);
|
TERN_(DELTA, planner.settings.max_acceleration_mm_per_s2[Z_AXIS] = motion_state.acceleration.z);
|
||||||
TERN_(HAS_CLASSIC_JERK, planner.max_jerk = motion_state.jerk_state);
|
TERN_(CLASSIC_JERK, planner.max_jerk = motion_state.jerk_state);
|
||||||
planner.refresh_acceleration_rates();
|
planner.refresh_acceleration_rates();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -297,7 +297,7 @@ void GcodeSuite::M205() {
|
||||||
if (parser.seenval('S')) planner.settings.min_feedrate_mm_s = parser.value_linear_units();
|
if (parser.seenval('S')) planner.settings.min_feedrate_mm_s = parser.value_linear_units();
|
||||||
if (parser.seenval('T')) planner.settings.min_travel_feedrate_mm_s = parser.value_linear_units();
|
if (parser.seenval('T')) planner.settings.min_travel_feedrate_mm_s = parser.value_linear_units();
|
||||||
#if HAS_JUNCTION_DEVIATION
|
#if HAS_JUNCTION_DEVIATION
|
||||||
#if HAS_CLASSIC_JERK && AXIS_COLLISION('J')
|
#if ENABLED(CLASSIC_JERK) && AXIS_COLLISION('J')
|
||||||
#error "Can't set_max_jerk for 'J' axis because 'J' is used for Junction Deviation."
|
#error "Can't set_max_jerk for 'J' axis because 'J' is used for Junction Deviation."
|
||||||
#endif
|
#endif
|
||||||
if (parser.seenval('J')) {
|
if (parser.seenval('J')) {
|
||||||
|
@ -310,7 +310,7 @@ void GcodeSuite::M205() {
|
||||||
SERIAL_ERROR_MSG("?J out of range (0.01 to 0.3)");
|
SERIAL_ERROR_MSG("?J out of range (0.01 to 0.3)");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
bool seenZ = false;
|
bool seenZ = false;
|
||||||
LOGICAL_AXIS_CODE(
|
LOGICAL_AXIS_CODE(
|
||||||
if (parser.seenval('E')) planner.set_max_jerk(E_AXIS, parser.value_linear_units()),
|
if (parser.seenval('E')) planner.set_max_jerk(E_AXIS, parser.value_linear_units()),
|
||||||
|
@ -328,14 +328,14 @@ void GcodeSuite::M205() {
|
||||||
if (seenZ && planner.max_jerk.z <= 0.1f)
|
if (seenZ && planner.max_jerk.z <= 0.1f)
|
||||||
SERIAL_ECHOLNPGM("WARNING! Low Z Jerk may lead to unwanted pauses.");
|
SERIAL_ECHOLNPGM("WARNING! Low Z Jerk may lead to unwanted pauses.");
|
||||||
#endif
|
#endif
|
||||||
#endif // HAS_CLASSIC_JERK
|
#endif // CLASSIC_JERK
|
||||||
}
|
}
|
||||||
|
|
||||||
void GcodeSuite::M205_report(const bool forReplay/*=true*/) {
|
void GcodeSuite::M205_report(const bool forReplay/*=true*/) {
|
||||||
report_heading_etc(forReplay, F(
|
report_heading_etc(forReplay, F(
|
||||||
"Advanced (" M205_MIN_SEG_TIME_STR "<min_segment_time_us> S<min_feedrate> T<min_travel_feedrate>"
|
"Advanced (" M205_MIN_SEG_TIME_STR "<min_segment_time_us> S<min_feedrate> T<min_travel_feedrate>"
|
||||||
TERN_(HAS_JUNCTION_DEVIATION, " J<junc_dev>")
|
TERN_(HAS_JUNCTION_DEVIATION, " J<junc_dev>")
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
NUM_AXIS_GANG(
|
NUM_AXIS_GANG(
|
||||||
" X<max_jerk>", " Y<max_jerk>", " Z<max_jerk>",
|
" X<max_jerk>", " Y<max_jerk>", " Z<max_jerk>",
|
||||||
" " STR_I "<max_jerk>", " " STR_J "<max_jerk>", " " STR_K "<max_jerk>",
|
" " STR_I "<max_jerk>", " " STR_J "<max_jerk>", " " STR_K "<max_jerk>",
|
||||||
|
@ -352,7 +352,7 @@ void GcodeSuite::M205_report(const bool forReplay/*=true*/) {
|
||||||
#if HAS_JUNCTION_DEVIATION
|
#if HAS_JUNCTION_DEVIATION
|
||||||
, PSTR(" J"), LINEAR_UNIT(planner.junction_deviation_mm)
|
, PSTR(" J"), LINEAR_UNIT(planner.junction_deviation_mm)
|
||||||
#endif
|
#endif
|
||||||
#if HAS_CLASSIC_JERK && NUM_AXES
|
#if ENABLED(CLASSIC_JERK) && NUM_AXES
|
||||||
, LIST_N(DOUBLE(NUM_AXES),
|
, LIST_N(DOUBLE(NUM_AXES),
|
||||||
SP_X_STR, LINEAR_UNIT(planner.max_jerk.x),
|
SP_X_STR, LINEAR_UNIT(planner.max_jerk.x),
|
||||||
SP_Y_STR, LINEAR_UNIT(planner.max_jerk.y),
|
SP_Y_STR, LINEAR_UNIT(planner.max_jerk.y),
|
||||||
|
|
|
@ -55,7 +55,7 @@ void GcodeSuite::M92() {
|
||||||
const float value = parser.value_per_axis_units((AxisEnum)(E_AXIS_N(target_extruder)));
|
const float value = parser.value_per_axis_units((AxisEnum)(E_AXIS_N(target_extruder)));
|
||||||
if (value < 20) {
|
if (value < 20) {
|
||||||
float factor = planner.settings.axis_steps_per_mm[E_AXIS_N(target_extruder)] / value; // increase e constants if M92 E14 is given for netfab.
|
float factor = planner.settings.axis_steps_per_mm[E_AXIS_N(target_extruder)] / value; // increase e constants if M92 E14 is given for netfab.
|
||||||
#if HAS_CLASSIC_JERK && HAS_CLASSIC_E_JERK
|
#if ALL(CLASSIC_JERK, HAS_CLASSIC_E_JERK)
|
||||||
planner.max_jerk.e *= factor;
|
planner.max_jerk.e *= factor;
|
||||||
#endif
|
#endif
|
||||||
planner.settings.max_feedrate_mm_s[E_AXIS_N(target_extruder)] *= factor;
|
planner.settings.max_feedrate_mm_s[E_AXIS_N(target_extruder)] *= factor;
|
||||||
|
|
|
@ -91,7 +91,7 @@ void GcodeSuite::M360() {
|
||||||
//
|
//
|
||||||
// XYZ Axis Jerk
|
// XYZ Axis Jerk
|
||||||
//
|
//
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
if (planner.max_jerk.x == planner.max_jerk.y)
|
if (planner.max_jerk.x == planner.max_jerk.y)
|
||||||
config_line(F("XY"), planner.max_jerk.x, FPSTR(JERK_STR));
|
config_line(F("XY"), planner.max_jerk.x, FPSTR(JERK_STR));
|
||||||
else {
|
else {
|
||||||
|
@ -182,7 +182,7 @@ void GcodeSuite::M360() {
|
||||||
config_line(F("NumExtruder"), EXTRUDERS);
|
config_line(F("NumExtruder"), EXTRUDERS);
|
||||||
#if HAS_EXTRUDERS
|
#if HAS_EXTRUDERS
|
||||||
EXTRUDER_LOOP() {
|
EXTRUDER_LOOP() {
|
||||||
config_line_e(e, JERK_STR, TERN(HAS_LINEAR_E_JERK, planner.max_e_jerk[E_INDEX_N(e)], TERN(HAS_CLASSIC_JERK, planner.max_jerk.e, DEFAULT_EJERK)));
|
config_line_e(e, JERK_STR, TERN(HAS_LINEAR_E_JERK, planner.max_e_jerk[E_INDEX_N(e)], TERN(CLASSIC_JERK, planner.max_jerk.e, DEFAULT_EJERK)));
|
||||||
config_line_e(e, F("MaxSpeed"), planner.settings.max_feedrate_mm_s[E_AXIS_N(e)]);
|
config_line_e(e, F("MaxSpeed"), planner.settings.max_feedrate_mm_s[E_AXIS_N(e)]);
|
||||||
config_line_e(e, F("Acceleration"), planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(e)]);
|
config_line_e(e, F("Acceleration"), planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(e)]);
|
||||||
config_line_e(e, F("Diameter"), TERN(NO_VOLUMETRICS, DEFAULT_NOMINAL_FILAMENT_DIA, planner.filament_size[e]));
|
config_line_e(e, F("Diameter"), TERN(NO_VOLUMETRICS, DEFAULT_NOMINAL_FILAMENT_DIA, planner.filament_size[e]));
|
||||||
|
|
|
@ -1615,20 +1615,6 @@
|
||||||
#undef DELTA_HOME_TO_SAFE_ZONE
|
#undef DELTA_HOME_TO_SAFE_ZONE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// This flag indicates some kind of jerk storage is needed
|
|
||||||
#if ANY(CLASSIC_JERK, IS_KINEMATIC)
|
|
||||||
#define HAS_CLASSIC_JERK 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if DISABLED(CLASSIC_JERK)
|
|
||||||
#define HAS_JUNCTION_DEVIATION 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// E jerk exists with JD disabled (of course) but also when Linear Advance is disabled on Delta/SCARA
|
|
||||||
#if HAS_EXTRUDERS && (ENABLED(CLASSIC_JERK) || (IS_KINEMATIC && DISABLED(LIN_ADVANCE)))
|
|
||||||
#define HAS_CLASSIC_E_JERK 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Serial Port Info
|
// Serial Port Info
|
||||||
//
|
//
|
||||||
|
|
|
@ -302,6 +302,21 @@
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Use Junction Deviation for motion if Jerk is disabled
|
||||||
|
#if DISABLED(CLASSIC_JERK)
|
||||||
|
#define HAS_JUNCTION_DEVIATION 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// E jerk exists with JD disabled (of course) but also when Linear Advance is disabled on Delta/SCARA
|
||||||
|
#if HAS_EXTRUDERS && (ENABLED(CLASSIC_JERK) || (IS_KINEMATIC && DISABLED(LIN_ADVANCE)))
|
||||||
|
#define HAS_CLASSIC_E_JERK 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Linear advance uses Jerk since E is an isolated axis
|
||||||
|
#if ALL(HAS_JUNCTION_DEVIATION, LIN_ADVANCE)
|
||||||
|
#define HAS_LINEAR_E_JERK 1
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Temperature Sensors; define what sensor(s) we have.
|
* Temperature Sensors; define what sensor(s) we have.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -37,11 +37,6 @@
|
||||||
#define ADC_VREF_MV HAL_ADC_VREF_MV
|
#define ADC_VREF_MV HAL_ADC_VREF_MV
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Linear advance uses Jerk since E is an isolated axis
|
|
||||||
#if ALL(HAS_JUNCTION_DEVIATION, LIN_ADVANCE)
|
|
||||||
#define HAS_LINEAR_E_JERK 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Determine which type of 'EEPROM' is in use
|
// Determine which type of 'EEPROM' is in use
|
||||||
#if ENABLED(EEPROM_SETTINGS)
|
#if ENABLED(EEPROM_SETTINGS)
|
||||||
// EEPROM type may be defined by compile flags, configs, HALs, or pins
|
// EEPROM type may be defined by compile flags, configs, HALs, or pins
|
||||||
|
|
|
@ -1225,7 +1225,7 @@ static_assert(COUNT(arm) == LOGICAL_AXES, "AXIS_RELATIVE_MODES must contain " _L
|
||||||
* Junction deviation is incompatible with kinematic systems.
|
* Junction deviation is incompatible with kinematic systems.
|
||||||
*/
|
*/
|
||||||
#if HAS_JUNCTION_DEVIATION && IS_KINEMATIC
|
#if HAS_JUNCTION_DEVIATION && IS_KINEMATIC
|
||||||
#error "CLASSIC_JERK is required for DELTA, SCARA, and POLAR."
|
#error "CLASSIC_JERK is required for the kinematics of DELTA, SCARA, POLAR, etc."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1583,7 +1583,7 @@ static_assert(COUNT(arm) == LOGICAL_AXES, "AXIS_RELATIVE_MODES must contain " _L
|
||||||
#error "Only enable RESTORE_LEVELING_AFTER_G28 or ENABLE_LEVELING_AFTER_G28, but not both."
|
#error "Only enable RESTORE_LEVELING_AFTER_G28 or ENABLE_LEVELING_AFTER_G28, but not both."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAS_MESH && HAS_CLASSIC_JERK
|
#if ALL(HAS_MESH, CLASSIC_JERK)
|
||||||
static_assert(DEFAULT_ZJERK > 0.1, "Low DEFAULT_ZJERK values are incompatible with mesh-based leveling.");
|
static_assert(DEFAULT_ZJERK > 0.1, "Low DEFAULT_ZJERK values are incompatible with mesh-based leveling.");
|
||||||
#endif
|
#endif
|
||||||
#if HAS_MESH && DGUS_LCD_UI_IA_CREALITY && GRID_MAX_POINTS > 25
|
#if HAS_MESH && DGUS_LCD_UI_IA_CREALITY && GRID_MAX_POINTS > 25
|
||||||
|
|
|
@ -67,7 +67,7 @@ constexpr xyze_float_t min_acceleration_edit_values = LOGICAL_AXIS_ARRAY_1(MIN_A
|
||||||
#define MIN_JERK_EDIT_VALUE 0.1
|
#define MIN_JERK_EDIT_VALUE 0.1
|
||||||
#define DEFAULT_MAX_JERK_MULTIPLIER 2
|
#define DEFAULT_MAX_JERK_MULTIPLIER 2
|
||||||
|
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
constexpr xyze_float_t min_jerk_edit_values = LOGICAL_AXIS_ARRAY_1(MIN_JERK_EDIT_VALUE),
|
constexpr xyze_float_t min_jerk_edit_values = LOGICAL_AXIS_ARRAY_1(MIN_JERK_EDIT_VALUE),
|
||||||
default_jerk = LOGICAL_AXIS_ARRAY(
|
default_jerk = LOGICAL_AXIS_ARRAY(
|
||||||
DEFAULT_EJERK,
|
DEFAULT_EJERK,
|
||||||
|
|
|
@ -460,7 +460,7 @@ void drawBackFirst(const bool is_sel=true) {
|
||||||
|
|
||||||
#define MOTION_CASE_RATE 1
|
#define MOTION_CASE_RATE 1
|
||||||
#define MOTION_CASE_ACCEL 2
|
#define MOTION_CASE_ACCEL 2
|
||||||
#define MOTION_CASE_JERK (MOTION_CASE_ACCEL + ENABLED(HAS_CLASSIC_JERK))
|
#define MOTION_CASE_JERK (MOTION_CASE_ACCEL + ENABLED(CLASSIC_JERK))
|
||||||
#define MOTION_CASE_STEPS (MOTION_CASE_JERK + 1)
|
#define MOTION_CASE_STEPS (MOTION_CASE_JERK + 1)
|
||||||
#define MOTION_CASE_TOTAL MOTION_CASE_STEPS
|
#define MOTION_CASE_TOTAL MOTION_CASE_STEPS
|
||||||
|
|
||||||
|
@ -1004,7 +1004,7 @@ void drawMotionMenu() {
|
||||||
itemAreaCopy(173, 133, 228, 147, MOTION_CASE_RATE); // Max speed
|
itemAreaCopy(173, 133, 228, 147, MOTION_CASE_RATE); // Max speed
|
||||||
itemAreaCopy(173, 133, 200, 147, MOTION_CASE_ACCEL); // Max...
|
itemAreaCopy(173, 133, 200, 147, MOTION_CASE_ACCEL); // Max...
|
||||||
itemAreaCopy(28, 149, 69, 161, MOTION_CASE_ACCEL, 30, 1); // ...Acceleration
|
itemAreaCopy(28, 149, 69, 161, MOTION_CASE_ACCEL, 30, 1); // ...Acceleration
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
itemAreaCopy(173, 133, 200, 147, MOTION_CASE_JERK); // Max...
|
itemAreaCopy(173, 133, 200, 147, MOTION_CASE_JERK); // Max...
|
||||||
itemAreaCopy(1, 180, 28, 192, MOTION_CASE_JERK, 30, 1); // ...
|
itemAreaCopy(1, 180, 28, 192, MOTION_CASE_JERK, 30, 1); // ...
|
||||||
itemAreaCopy(202, 133, 228, 147, MOTION_CASE_JERK, 57); // ...Jerk
|
itemAreaCopy(202, 133, 228, 147, MOTION_CASE_JERK, 57); // ...Jerk
|
||||||
|
@ -1020,14 +1020,14 @@ void drawMotionMenu() {
|
||||||
#ifdef USE_STRING_TITLES
|
#ifdef USE_STRING_TITLES
|
||||||
dwinDrawLabel(MOTION_CASE_RATE, F("Feedrate")); // "Feedrate"
|
dwinDrawLabel(MOTION_CASE_RATE, F("Feedrate")); // "Feedrate"
|
||||||
dwinDrawLabel(MOTION_CASE_ACCEL, GET_TEXT_F(MSG_ACCELERATION)); // "Acceleration"
|
dwinDrawLabel(MOTION_CASE_ACCEL, GET_TEXT_F(MSG_ACCELERATION)); // "Acceleration"
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
dwinDrawLabel(MOTION_CASE_JERK, GET_TEXT_F(MSG_JERK)); // "Jerk"
|
dwinDrawLabel(MOTION_CASE_JERK, GET_TEXT_F(MSG_JERK)); // "Jerk"
|
||||||
#endif
|
#endif
|
||||||
dwinDrawLabel(MOTION_CASE_STEPS, GET_TEXT_F(MSG_STEPS_PER_MM)); // "Steps/mm"
|
dwinDrawLabel(MOTION_CASE_STEPS, GET_TEXT_F(MSG_STEPS_PER_MM)); // "Steps/mm"
|
||||||
#else
|
#else
|
||||||
say_max_en(MOTION_CASE_RATE); say_speed_en(30, MOTION_CASE_RATE); // "Max Speed"
|
say_max_en(MOTION_CASE_RATE); say_speed_en(30, MOTION_CASE_RATE); // "Max Speed"
|
||||||
say_max_accel_en(MOTION_CASE_ACCEL); // "Max Acceleration"
|
say_max_accel_en(MOTION_CASE_ACCEL); // "Max Acceleration"
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
say_max_en(MOTION_CASE_JERK); say_jerk_en(MOTION_CASE_JERK); // "Max Jerk"
|
say_max_en(MOTION_CASE_JERK); say_jerk_en(MOTION_CASE_JERK); // "Max Jerk"
|
||||||
#endif
|
#endif
|
||||||
say_steps_per_mm_en(MOTION_CASE_STEPS); // "Steps-per-mm"
|
say_steps_per_mm_en(MOTION_CASE_STEPS); // "Steps-per-mm"
|
||||||
|
@ -1041,7 +1041,7 @@ void drawMotionMenu() {
|
||||||
#define _MOTION_ICON(N) drawMenuLine(++i, ICON_MaxSpeed + (N) - 1)
|
#define _MOTION_ICON(N) drawMenuLine(++i, ICON_MaxSpeed + (N) - 1)
|
||||||
_MOTION_ICON(MOTION_CASE_RATE); drawMoreIcon(i);
|
_MOTION_ICON(MOTION_CASE_RATE); drawMoreIcon(i);
|
||||||
_MOTION_ICON(MOTION_CASE_ACCEL); drawMoreIcon(i);
|
_MOTION_ICON(MOTION_CASE_ACCEL); drawMoreIcon(i);
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
_MOTION_ICON(MOTION_CASE_JERK); drawMoreIcon(i);
|
_MOTION_ICON(MOTION_CASE_JERK); drawMoreIcon(i);
|
||||||
#endif
|
#endif
|
||||||
_MOTION_ICON(MOTION_CASE_STEPS); drawMoreIcon(i);
|
_MOTION_ICON(MOTION_CASE_STEPS); drawMoreIcon(i);
|
||||||
|
@ -1597,7 +1597,7 @@ void hmiMaxAccelerationXYZE() {
|
||||||
drawEditInteger4(select_acc.now, hmiValues.maxAcceleration, true);
|
drawEditInteger4(select_acc.now, hmiValues.maxAcceleration, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
|
|
||||||
void hmiMaxJerkXYZE() {
|
void hmiMaxJerkXYZE() {
|
||||||
EncoderState encoder_diffState = encoderReceiveAnalyze();
|
EncoderState encoder_diffState = encoderReceiveAnalyze();
|
||||||
|
@ -1617,7 +1617,7 @@ void hmiMaxAccelerationXYZE() {
|
||||||
drawEditFloat3(select_jerk.now, hmiValues.maxJerkScaled, true);
|
drawEditFloat3(select_jerk.now, hmiValues.maxJerkScaled, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // HAS_CLASSIC_JERK
|
#endif // CLASSIC_JERK
|
||||||
|
|
||||||
void hmiStepXYZE() {
|
void hmiStepXYZE() {
|
||||||
EncoderState encoder_diffState = encoderReceiveAnalyze();
|
EncoderState encoder_diffState = encoderReceiveAnalyze();
|
||||||
|
@ -3349,7 +3349,7 @@ void drawMaxAccelMenu() {
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
void drawMaxJerkMenu() {
|
void drawMaxJerkMenu() {
|
||||||
clearMainWindow();
|
clearMainWindow();
|
||||||
|
|
||||||
|
@ -3489,7 +3489,7 @@ void hmiMotion() {
|
||||||
select_acc.reset();
|
select_acc.reset();
|
||||||
drawMaxAccelMenu();
|
drawMaxAccelMenu();
|
||||||
break;
|
break;
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
case MOTION_CASE_JERK:
|
case MOTION_CASE_JERK:
|
||||||
checkkey = ID_MaxJerk;
|
checkkey = ID_MaxJerk;
|
||||||
select_jerk.reset();
|
select_jerk.reset();
|
||||||
|
@ -3996,7 +3996,7 @@ void hmiMaxAcceleration() {
|
||||||
dwinUpdateLCD();
|
dwinUpdateLCD();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
// Max Jerk
|
// Max Jerk
|
||||||
void hmiMaxJerk() {
|
void hmiMaxJerk() {
|
||||||
EncoderState encoder_diffState = get_encoder_state();
|
EncoderState encoder_diffState = get_encoder_state();
|
||||||
|
@ -4025,7 +4025,7 @@ void hmiMaxAcceleration() {
|
||||||
}
|
}
|
||||||
dwinUpdateLCD();
|
dwinUpdateLCD();
|
||||||
}
|
}
|
||||||
#endif // HAS_CLASSIC_JERK
|
#endif // CLASSIC_JERK
|
||||||
|
|
||||||
// Step
|
// Step
|
||||||
void hmiStep() {
|
void hmiStep() {
|
||||||
|
@ -4251,7 +4251,7 @@ void dwinHandleScreen() {
|
||||||
#endif
|
#endif
|
||||||
case ID_MaxSpeed: hmiMaxSpeed(); break;
|
case ID_MaxSpeed: hmiMaxSpeed(); break;
|
||||||
case ID_MaxAcceleration: hmiMaxAcceleration(); break;
|
case ID_MaxAcceleration: hmiMaxAcceleration(); break;
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
case ID_MaxJerk: hmiMaxJerk(); break;
|
case ID_MaxJerk: hmiMaxJerk(); break;
|
||||||
#endif
|
#endif
|
||||||
case ID_Step: hmiStep(); break;
|
case ID_Step: hmiStep(); break;
|
||||||
|
@ -4274,7 +4274,7 @@ void dwinHandleScreen() {
|
||||||
case ID_PrintSpeed: hmiPrintSpeed(); break;
|
case ID_PrintSpeed: hmiPrintSpeed(); break;
|
||||||
case ID_MaxSpeedValue: hmiMaxFeedspeedXYZE(); break;
|
case ID_MaxSpeedValue: hmiMaxFeedspeedXYZE(); break;
|
||||||
case ID_MaxAccelerationValue: hmiMaxAccelerationXYZE(); break;
|
case ID_MaxAccelerationValue: hmiMaxAccelerationXYZE(); break;
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
case ID_MaxJerkValue: hmiMaxJerkXYZE(); break;
|
case ID_MaxJerkValue: hmiMaxJerkXYZE(); break;
|
||||||
#endif
|
#endif
|
||||||
case ID_StepValue: hmiStepXYZE(); break;
|
case ID_StepValue: hmiStepXYZE(); break;
|
||||||
|
|
|
@ -2333,7 +2333,7 @@ void JyersDWIN::menuItemHandler(const uint8_t menu, const uint8_t item, bool dra
|
||||||
#define MOTION_HOMEOFFSETS (MOTION_BACK + 1)
|
#define MOTION_HOMEOFFSETS (MOTION_BACK + 1)
|
||||||
#define MOTION_SPEED (MOTION_HOMEOFFSETS + 1)
|
#define MOTION_SPEED (MOTION_HOMEOFFSETS + 1)
|
||||||
#define MOTION_ACCEL (MOTION_SPEED + 1)
|
#define MOTION_ACCEL (MOTION_SPEED + 1)
|
||||||
#define MOTION_JERK (MOTION_ACCEL + ENABLED(HAS_CLASSIC_JERK))
|
#define MOTION_JERK (MOTION_ACCEL + ENABLED(CLASSIC_JERK))
|
||||||
#define MOTION_STEPS (MOTION_JERK + 1)
|
#define MOTION_STEPS (MOTION_JERK + 1)
|
||||||
#define MOTION_FLOW (MOTION_STEPS + ENABLED(HAS_HOTEND))
|
#define MOTION_FLOW (MOTION_STEPS + ENABLED(HAS_HOTEND))
|
||||||
#define MOTION_LA (MOTION_FLOW + ENABLED(LIN_ADVANCE))
|
#define MOTION_LA (MOTION_FLOW + ENABLED(LIN_ADVANCE))
|
||||||
|
@ -2364,7 +2364,7 @@ void JyersDWIN::menuItemHandler(const uint8_t menu, const uint8_t item, bool dra
|
||||||
else
|
else
|
||||||
drawMenu(ID_MaxAcceleration);
|
drawMenu(ID_MaxAcceleration);
|
||||||
break;
|
break;
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
case MOTION_JERK:
|
case MOTION_JERK:
|
||||||
if (draw)
|
if (draw)
|
||||||
drawMenuItem(row, ICON_MaxJerk, GET_TEXT_F(MSG_JERK), nullptr, true);
|
drawMenuItem(row, ICON_MaxJerk, GET_TEXT_F(MSG_JERK), nullptr, true);
|
||||||
|
@ -2553,7 +2553,7 @@ void JyersDWIN::menuItemHandler(const uint8_t menu, const uint8_t item, bool dra
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
case ID_MaxJerk:
|
case ID_MaxJerk:
|
||||||
|
|
||||||
#define JERK_BACK 0
|
#define JERK_BACK 0
|
||||||
|
@ -4170,7 +4170,7 @@ FSTR_P JyersDWIN::getMenuTitle(const uint8_t menu) {
|
||||||
case ID_HomeOffsets: return GET_TEXT_F(MSG_SET_HOME_OFFSETS);
|
case ID_HomeOffsets: return GET_TEXT_F(MSG_SET_HOME_OFFSETS);
|
||||||
case ID_MaxSpeed: return GET_TEXT_F(MSG_MAX_SPEED);
|
case ID_MaxSpeed: return GET_TEXT_F(MSG_MAX_SPEED);
|
||||||
case ID_MaxAcceleration: return F("Max Acceleration");
|
case ID_MaxAcceleration: return F("Max Acceleration");
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
case ID_MaxJerk: return F("Max Jerk");
|
case ID_MaxJerk: return F("Max Jerk");
|
||||||
#endif
|
#endif
|
||||||
case ID_Steps: return GET_TEXT_F(MSG_STEPS_PER_MM);
|
case ID_Steps: return GET_TEXT_F(MSG_STEPS_PER_MM);
|
||||||
|
@ -4247,7 +4247,7 @@ uint8_t JyersDWIN::getMenuSize(const uint8_t menu) {
|
||||||
case ID_HomeOffsets: return HOMEOFFSETS_TOTAL;
|
case ID_HomeOffsets: return HOMEOFFSETS_TOTAL;
|
||||||
case ID_MaxSpeed: return SPEED_TOTAL;
|
case ID_MaxSpeed: return SPEED_TOTAL;
|
||||||
case ID_MaxAcceleration: return ACCEL_TOTAL;
|
case ID_MaxAcceleration: return ACCEL_TOTAL;
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
case ID_MaxJerk: return JERK_TOTAL;
|
case ID_MaxJerk: return JERK_TOTAL;
|
||||||
#endif
|
#endif
|
||||||
case ID_Steps: return STEPS_TOTAL;
|
case ID_Steps: return STEPS_TOTAL;
|
||||||
|
|
|
@ -236,7 +236,7 @@ Menu *filamentMenu = nullptr;
|
||||||
Menu *temperatureMenu = nullptr;
|
Menu *temperatureMenu = nullptr;
|
||||||
Menu *maxSpeedMenu = nullptr;
|
Menu *maxSpeedMenu = nullptr;
|
||||||
Menu *maxAccelMenu = nullptr;
|
Menu *maxAccelMenu = nullptr;
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
Menu *maxJerkMenu = nullptr;
|
Menu *maxJerkMenu = nullptr;
|
||||||
#endif
|
#endif
|
||||||
Menu *stepsMenu = nullptr;
|
Menu *stepsMenu = nullptr;
|
||||||
|
@ -2545,7 +2545,7 @@ void applyMaxAccel() { planner.set_max_acceleration(hmiValue.axis, menuData.valu
|
||||||
void setMaxAccelE() { hmiValue.axis = E_AXIS; setIntOnClick(min_acceleration_edit_values.e, max_acceleration_edit_values.e, planner.settings.max_acceleration_mm_per_s2[E_AXIS], applyMaxAccel); }
|
void setMaxAccelE() { hmiValue.axis = E_AXIS; setIntOnClick(min_acceleration_edit_values.e, max_acceleration_edit_values.e, planner.settings.max_acceleration_mm_per_s2[E_AXIS], applyMaxAccel); }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
void applyMaxJerk() { planner.set_max_jerk(hmiValue.axis, menuData.value / MINUNITMULT); }
|
void applyMaxJerk() { planner.set_max_jerk(hmiValue.axis, menuData.value / MINUNITMULT); }
|
||||||
#if HAS_X_AXIS
|
#if HAS_X_AXIS
|
||||||
void setMaxJerkX() { hmiValue.axis = X_AXIS, setFloatOnClick(min_jerk_edit_values.x, max_jerk_edit_values.x, UNITFDIGITS, planner.max_jerk.x, applyMaxJerk); }
|
void setMaxJerkX() { hmiValue.axis = X_AXIS, setFloatOnClick(min_jerk_edit_values.x, max_jerk_edit_values.x, UNITFDIGITS, planner.max_jerk.x, applyMaxJerk); }
|
||||||
|
@ -2880,7 +2880,7 @@ void onDrawAcc(MenuItem* menuitem, int8_t line) {
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
|
|
||||||
void onDrawJerk(MenuItem* menuitem, int8_t line) {
|
void onDrawJerk(MenuItem* menuitem, int8_t line) {
|
||||||
if (hmiIsChinese()) {
|
if (hmiIsChinese()) {
|
||||||
|
@ -2941,7 +2941,7 @@ void onDrawAcc(MenuItem* menuitem, int8_t line) {
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // HAS_CLASSIC_JERK
|
#endif // CLASSIC_JERK
|
||||||
|
|
||||||
#if HAS_X_AXIS
|
#if HAS_X_AXIS
|
||||||
void onDrawStepsX(MenuItem* menuitem, int8_t line) {
|
void onDrawStepsX(MenuItem* menuitem, int8_t line) {
|
||||||
|
@ -3451,7 +3451,7 @@ void drawMotionMenu() {
|
||||||
BACK_ITEM(drawControlMenu);
|
BACK_ITEM(drawControlMenu);
|
||||||
MENU_ITEM(ICON_MaxSpeed, MSG_SPEED, onDrawSpeed, drawMaxSpeedMenu);
|
MENU_ITEM(ICON_MaxSpeed, MSG_SPEED, onDrawSpeed, drawMaxSpeedMenu);
|
||||||
MENU_ITEM(ICON_MaxAccelerated, MSG_ACCELERATION, onDrawAcc, drawMaxAccelMenu);
|
MENU_ITEM(ICON_MaxAccelerated, MSG_ACCELERATION, onDrawAcc, drawMaxAccelMenu);
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
MENU_ITEM(ICON_MaxJerk, MSG_JERK, onDrawJerk, drawMaxJerkMenu);
|
MENU_ITEM(ICON_MaxJerk, MSG_JERK, onDrawJerk, drawMaxJerkMenu);
|
||||||
#elif HAS_JUNCTION_DEVIATION
|
#elif HAS_JUNCTION_DEVIATION
|
||||||
EDIT_ITEM(ICON_JDmm, MSG_JUNCTION_DEVIATION, onDrawPFloat3Menu, setJDmm, &planner.junction_deviation_mm);
|
EDIT_ITEM(ICON_JDmm, MSG_JUNCTION_DEVIATION, onDrawPFloat3Menu, setJDmm, &planner.junction_deviation_mm);
|
||||||
|
@ -3616,7 +3616,7 @@ void drawMaxAccelMenu() {
|
||||||
updateMenu(maxAccelMenu);
|
updateMenu(maxAccelMenu);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
|
|
||||||
void drawMaxJerkMenu() {
|
void drawMaxJerkMenu() {
|
||||||
checkkey = ID_Menu;
|
checkkey = ID_Menu;
|
||||||
|
@ -3638,7 +3638,7 @@ void drawMaxAccelMenu() {
|
||||||
updateMenu(maxJerkMenu);
|
updateMenu(maxJerkMenu);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // HAS_CLASSIC_JERK
|
#endif // CLASSIC_JERK
|
||||||
|
|
||||||
void drawStepsMenu() {
|
void drawStepsMenu() {
|
||||||
checkkey = ID_Menu;
|
checkkey = ID_Menu;
|
||||||
|
|
|
@ -341,7 +341,7 @@ void drawFilamentManMenu();
|
||||||
void drawTemperatureMenu();
|
void drawTemperatureMenu();
|
||||||
void drawMaxSpeedMenu();
|
void drawMaxSpeedMenu();
|
||||||
void drawMaxAccelMenu();
|
void drawMaxAccelMenu();
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
void drawMaxJerkMenu();
|
void drawMaxJerkMenu();
|
||||||
#endif
|
#endif
|
||||||
void drawStepsMenu();
|
void drawStepsMenu();
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
#include "../../../inc/MarlinConfigPre.h"
|
#include "../../../inc/MarlinConfigPre.h"
|
||||||
|
|
||||||
#if ALL(HAS_TFT_LVGL_UI, HAS_CLASSIC_JERK)
|
#if ALL(HAS_TFT_LVGL_UI, CLASSIC_JERK)
|
||||||
|
|
||||||
#include "draw_ui.h"
|
#include "draw_ui.h"
|
||||||
#include <lv_conf.h>
|
#include <lv_conf.h>
|
||||||
|
@ -96,4 +96,4 @@ void lv_clear_jerk_settings() {
|
||||||
lv_obj_del(scr);
|
lv_obj_del(scr);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // HAS_TFT_LVGL_UI && HAS_CLASSIC_JERK
|
#endif // HAS_TFT_LVGL_UI && CLASSIC_JERK
|
||||||
|
|
|
@ -46,7 +46,7 @@ static void event_handler(lv_obj_t *obj, lv_event_t event) {
|
||||||
case ID_MACHINE_RETURN: draw_return_ui(); break;
|
case ID_MACHINE_RETURN: draw_return_ui(); break;
|
||||||
case ID_MACHINE_ACCELERATION: lv_draw_acceleration_settings(); break;
|
case ID_MACHINE_ACCELERATION: lv_draw_acceleration_settings(); break;
|
||||||
case ID_MACHINE_FEEDRATE: lv_draw_max_feedrate_settings(); break;
|
case ID_MACHINE_FEEDRATE: lv_draw_max_feedrate_settings(); break;
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
case ID_MACHINE_JERK: lv_draw_jerk_settings(); break;
|
case ID_MACHINE_JERK: lv_draw_jerk_settings(); break;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -58,7 +58,7 @@ void lv_draw_machine_settings() {
|
||||||
lv_screen_menu_item(scr, machine_menu.AccelerationConf, PARA_UI_POS_X, y, event_handler, ID_MACHINE_ACCELERATION, 0);
|
lv_screen_menu_item(scr, machine_menu.AccelerationConf, PARA_UI_POS_X, y, event_handler, ID_MACHINE_ACCELERATION, 0);
|
||||||
y += PARA_UI_POS_Y;
|
y += PARA_UI_POS_Y;
|
||||||
lv_screen_menu_item(scr, machine_menu.MaxFeedRateConf, PARA_UI_POS_X, y, event_handler, ID_MACHINE_FEEDRATE, 1);
|
lv_screen_menu_item(scr, machine_menu.MaxFeedRateConf, PARA_UI_POS_X, y, event_handler, ID_MACHINE_FEEDRATE, 1);
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
y += PARA_UI_POS_Y;
|
y += PARA_UI_POS_Y;
|
||||||
lv_screen_menu_item(scr, machine_menu.JerkConf, PARA_UI_POS_X, y, event_handler, ID_MACHINE_JERK, 2);
|
lv_screen_menu_item(scr, machine_menu.JerkConf, PARA_UI_POS_X, y, event_handler, ID_MACHINE_JERK, 2);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -118,22 +118,22 @@ static void disp_key_value() {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case XJerk:
|
case XJerk:
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
dtostrf(planner.max_jerk.x, 1, 1, public_buf_m);
|
dtostrf(planner.max_jerk.x, 1, 1, public_buf_m);
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
case YJerk:
|
case YJerk:
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
dtostrf(planner.max_jerk.y, 1, 1, public_buf_m);
|
dtostrf(planner.max_jerk.y, 1, 1, public_buf_m);
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
case ZJerk:
|
case ZJerk:
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
dtostrf(planner.max_jerk.z, 1, 1, public_buf_m);
|
dtostrf(planner.max_jerk.z, 1, 1, public_buf_m);
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
case EJerk:
|
case EJerk:
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
dtostrf(planner.max_jerk.e, 1, 1, public_buf_m);
|
dtostrf(planner.max_jerk.e, 1, 1, public_buf_m);
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
@ -307,10 +307,10 @@ static void set_value_confirm() {
|
||||||
case ZMaxFeedRate: planner.settings.max_feedrate_mm_s[Z_AXIS] = atof(key_value); break;
|
case ZMaxFeedRate: planner.settings.max_feedrate_mm_s[Z_AXIS] = atof(key_value); break;
|
||||||
case E0MaxFeedRate: planner.settings.max_feedrate_mm_s[E_AXIS] = atof(key_value); break;
|
case E0MaxFeedRate: planner.settings.max_feedrate_mm_s[E_AXIS] = atof(key_value); break;
|
||||||
case E1MaxFeedRate: planner.settings.max_feedrate_mm_s[E_AXIS_N(1)] = atof(key_value); break;
|
case E1MaxFeedRate: planner.settings.max_feedrate_mm_s[E_AXIS_N(1)] = atof(key_value); break;
|
||||||
case XJerk: TERN_(HAS_CLASSIC_JERK, planner.max_jerk.x = atof(key_value)); break;
|
case XJerk: TERN_(CLASSIC_JERK, planner.max_jerk.x = atof(key_value)); break;
|
||||||
case YJerk: TERN_(HAS_CLASSIC_JERK, planner.max_jerk.y = atof(key_value)); break;
|
case YJerk: TERN_(CLASSIC_JERK, planner.max_jerk.y = atof(key_value)); break;
|
||||||
case ZJerk: TERN_(HAS_CLASSIC_JERK, planner.max_jerk.z = atof(key_value)); break;
|
case ZJerk: TERN_(CLASSIC_JERK, planner.max_jerk.z = atof(key_value)); break;
|
||||||
case EJerk: TERN_(HAS_CLASSIC_JERK, planner.max_jerk.e = atof(key_value)); break;
|
case EJerk: TERN_(CLASSIC_JERK, planner.max_jerk.e = atof(key_value)); break;
|
||||||
case Xstep: planner.settings.axis_steps_per_mm[X_AXIS] = atof(key_value); planner.refresh_positioning(); break;
|
case Xstep: planner.settings.axis_steps_per_mm[X_AXIS] = atof(key_value); planner.refresh_positioning(); break;
|
||||||
case Ystep: planner.settings.axis_steps_per_mm[Y_AXIS] = atof(key_value); planner.refresh_positioning(); break;
|
case Ystep: planner.settings.axis_steps_per_mm[Y_AXIS] = atof(key_value); planner.refresh_positioning(); break;
|
||||||
case Zstep: planner.settings.axis_steps_per_mm[Z_AXIS] = atof(key_value); planner.refresh_positioning(); break;
|
case Zstep: planner.settings.axis_steps_per_mm[Z_AXIS] = atof(key_value); planner.refresh_positioning(); break;
|
||||||
|
|
|
@ -951,7 +951,7 @@ void clear_cur_ui() {
|
||||||
case MAXFEEDRATE_UI: lv_clear_max_feedrate_settings(); break;
|
case MAXFEEDRATE_UI: lv_clear_max_feedrate_settings(); break;
|
||||||
case STEPS_UI: lv_clear_step_settings(); break;
|
case STEPS_UI: lv_clear_step_settings(); break;
|
||||||
case ACCELERATION_UI: lv_clear_acceleration_settings(); break;
|
case ACCELERATION_UI: lv_clear_acceleration_settings(); break;
|
||||||
case JERK_UI: TERN_(HAS_CLASSIC_JERK, lv_clear_jerk_settings()); break;
|
case JERK_UI: TERN_(CLASSIC_JERK, lv_clear_jerk_settings()); break;
|
||||||
case MOTORDIR_UI: break;
|
case MOTORDIR_UI: break;
|
||||||
case HOMESPEED_UI: break;
|
case HOMESPEED_UI: break;
|
||||||
case NOZZLE_CONFIG_UI: break;
|
case NOZZLE_CONFIG_UI: break;
|
||||||
|
@ -1061,7 +1061,7 @@ void draw_return_ui() {
|
||||||
case MAXFEEDRATE_UI: lv_draw_max_feedrate_settings(); break;
|
case MAXFEEDRATE_UI: lv_draw_max_feedrate_settings(); break;
|
||||||
case STEPS_UI: lv_draw_step_settings(); break;
|
case STEPS_UI: lv_draw_step_settings(); break;
|
||||||
case ACCELERATION_UI: lv_draw_acceleration_settings(); break;
|
case ACCELERATION_UI: lv_draw_acceleration_settings(); break;
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
case JERK_UI: lv_draw_jerk_settings(); break;
|
case JERK_UI: lv_draw_jerk_settings(); break;
|
||||||
#endif
|
#endif
|
||||||
case MOTORDIR_UI: break;
|
case MOTORDIR_UI: break;
|
||||||
|
|
|
@ -587,18 +587,12 @@ void menu_backlash();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
|
|
||||||
void menu_advanced_jerk() {
|
void menu_advanced_jerk() {
|
||||||
START_MENU();
|
START_MENU();
|
||||||
BACK_ITEM(MSG_ADVANCED_SETTINGS);
|
BACK_ITEM(MSG_ADVANCED_SETTINGS);
|
||||||
|
|
||||||
#if HAS_JUNCTION_DEVIATION
|
|
||||||
EDIT_ITEM(float43, MSG_JUNCTION_DEVIATION, &planner.junction_deviation_mm, 0.001f, TERN(LIN_ADVANCE, 0.3f, 0.5f)
|
|
||||||
OPTARG(LIN_ADVANCE, planner.recalculate_max_e_jerk)
|
|
||||||
);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
constexpr xyze_float_t max_jerk_edit =
|
constexpr xyze_float_t max_jerk_edit =
|
||||||
#ifdef MAX_JERK_EDIT_VALUES
|
#ifdef MAX_JERK_EDIT_VALUES
|
||||||
MAX_JERK_EDIT_VALUES
|
MAX_JERK_EDIT_VALUES
|
||||||
|
@ -711,12 +705,12 @@ void menu_advanced_settings() {
|
||||||
if (!is_busy) SUBMENU(MSG_INPUT_SHAPING, menu_advanced_input_shaping);
|
if (!is_busy) SUBMENU(MSG_INPUT_SHAPING, menu_advanced_input_shaping);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
// M205 - Max Jerk
|
// M205 - Max Jerk
|
||||||
SUBMENU(MSG_JERK, menu_advanced_jerk);
|
SUBMENU(MSG_JERK, menu_advanced_jerk);
|
||||||
#elif HAS_JUNCTION_DEVIATION
|
#elif HAS_JUNCTION_DEVIATION
|
||||||
EDIT_ITEM(float43, MSG_JUNCTION_DEVIATION, &planner.junction_deviation_mm, 0.001f, 0.3f
|
EDIT_ITEM(float43, MSG_JUNCTION_DEVIATION, &planner.junction_deviation_mm, 0.001f, 0.3f
|
||||||
OPTARG(LIN_ADVANCE, planner.recalculate_max_e_jerk)
|
OPTARG(HAS_LINEAR_E_JERK, planner.recalculate_max_e_jerk)
|
||||||
);
|
);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -155,7 +155,7 @@ float Planner::mm_per_step[DISTINCT_AXES]; // (mm) Millimeters per step
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
TERN(HAS_LINEAR_E_JERK, xyz_pos_t, xyze_pos_t) Planner::max_jerk;
|
TERN(HAS_LINEAR_E_JERK, xyz_pos_t, xyze_pos_t) Planner::max_jerk;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1574,7 +1574,7 @@ void Planner::check_axes_activity() {
|
||||||
saved_motion_state.acceleration.z = settings.max_acceleration_mm_per_s2[Z_AXIS];
|
saved_motion_state.acceleration.z = settings.max_acceleration_mm_per_s2[Z_AXIS];
|
||||||
settings.max_acceleration_mm_per_s2[Z_AXIS] = 100;
|
settings.max_acceleration_mm_per_s2[Z_AXIS] = 100;
|
||||||
#endif
|
#endif
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
saved_motion_state.jerk_state = max_jerk;
|
saved_motion_state.jerk_state = max_jerk;
|
||||||
max_jerk.set(0, 0 OPTARG(DELTA, 0));
|
max_jerk.set(0, 0 OPTARG(DELTA, 0));
|
||||||
#endif
|
#endif
|
||||||
|
@ -1583,7 +1583,7 @@ void Planner::check_axes_activity() {
|
||||||
settings.max_acceleration_mm_per_s2[X_AXIS] = saved_motion_state.acceleration.x;
|
settings.max_acceleration_mm_per_s2[X_AXIS] = saved_motion_state.acceleration.x;
|
||||||
settings.max_acceleration_mm_per_s2[Y_AXIS] = saved_motion_state.acceleration.y;
|
settings.max_acceleration_mm_per_s2[Y_AXIS] = saved_motion_state.acceleration.y;
|
||||||
TERN_(DELTA, settings.max_acceleration_mm_per_s2[Z_AXIS] = saved_motion_state.acceleration.z);
|
TERN_(DELTA, settings.max_acceleration_mm_per_s2[Z_AXIS] = saved_motion_state.acceleration.z);
|
||||||
TERN_(HAS_CLASSIC_JERK, max_jerk = saved_motion_state.jerk_state);
|
TERN_(CLASSIC_JERK, max_jerk = saved_motion_state.jerk_state);
|
||||||
}
|
}
|
||||||
refresh_acceleration_rates();
|
refresh_acceleration_rates();
|
||||||
}
|
}
|
||||||
|
@ -2766,7 +2766,7 @@ bool Planner::_populate_block(
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adapted from Průša MKS firmware
|
* Adapted from Průša MKS firmware
|
||||||
|
@ -2863,7 +2863,7 @@ bool Planner::_populate_block(
|
||||||
vmax_junction_sqr = sq(vmax_junction); // Go up or down to the new speed
|
vmax_junction_sqr = sq(vmax_junction); // Go up or down to the new speed
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // Classic Jerk Limiting
|
#endif // CLASSIC_JERK
|
||||||
|
|
||||||
// Max entry speed of this block equals the max exit speed of the previous block.
|
// Max entry speed of this block equals the max exit speed of the previous block.
|
||||||
block->max_entry_speed_sqr = vmax_junction_sqr;
|
block->max_entry_speed_sqr = vmax_junction_sqr;
|
||||||
|
@ -3398,7 +3398,7 @@ void Planner::set_max_feedrate(const AxisEnum axis, float inMaxFeedrateMMS) {
|
||||||
settings.max_feedrate_mm_s[axis] = inMaxFeedrateMMS;
|
settings.max_feedrate_mm_s[axis] = inMaxFeedrateMMS;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* For the specified 'axis' set the Maximum Jerk (instant change) to the given value (mm/s)
|
* For the specified 'axis' set the Maximum Jerk (instant change) to the given value (mm/s)
|
||||||
|
|
|
@ -355,7 +355,7 @@ typedef struct {
|
||||||
#if ENABLED(IMPROVE_HOMING_RELIABILITY)
|
#if ENABLED(IMPROVE_HOMING_RELIABILITY)
|
||||||
struct motion_state_t {
|
struct motion_state_t {
|
||||||
TERN(DELTA, xyz_ulong_t, xy_ulong_t) acceleration;
|
TERN(DELTA, xyz_ulong_t, xy_ulong_t) acceleration;
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
TERN(DELTA, xyz_float_t, xy_float_t) jerk_state;
|
TERN(DELTA, xyz_float_t, xy_float_t) jerk_state;
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
@ -477,7 +477,7 @@ class Planner {
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
// (mm/s^2) M205 XYZ(E) - The largest speed change requiring no acceleration.
|
// (mm/s^2) M205 XYZ(E) - The largest speed change requiring no acceleration.
|
||||||
static TERN(HAS_LINEAR_E_JERK, xyz_pos_t, xyze_pos_t) max_jerk;
|
static TERN(HAS_LINEAR_E_JERK, xyz_pos_t, xyze_pos_t) max_jerk;
|
||||||
#endif
|
#endif
|
||||||
|
@ -602,7 +602,7 @@ class Planner {
|
||||||
static void set_max_feedrate(const AxisEnum axis, float inMaxFeedrateMMS);
|
static void set_max_feedrate(const AxisEnum axis, float inMaxFeedrateMMS);
|
||||||
|
|
||||||
// For an axis set the Maximum Jerk (instant change) in mm/s
|
// For an axis set the Maximum Jerk (instant change) in mm/s
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
static void set_max_jerk(const AxisEnum axis, float inMaxJerkMMS);
|
static void set_max_jerk(const AxisEnum axis, float inMaxJerkMMS);
|
||||||
#else
|
#else
|
||||||
static void set_max_jerk(const AxisEnum, const_float_t) {}
|
static void set_max_jerk(const AxisEnum, const_float_t) {}
|
||||||
|
|
|
@ -850,7 +850,7 @@ void MarlinSettings::postprocess() {
|
||||||
{
|
{
|
||||||
EEPROM_WRITE(planner.settings);
|
EEPROM_WRITE(planner.settings);
|
||||||
|
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
EEPROM_WRITE(planner.max_jerk);
|
EEPROM_WRITE(planner.max_jerk);
|
||||||
#if HAS_LINEAR_E_JERK
|
#if HAS_LINEAR_E_JERK
|
||||||
dummyf = float(DEFAULT_EJERK);
|
dummyf = float(DEFAULT_EJERK);
|
||||||
|
@ -1880,7 +1880,7 @@ void MarlinSettings::postprocess() {
|
||||||
EEPROM_READ(planner.settings.min_feedrate_mm_s);
|
EEPROM_READ(planner.settings.min_feedrate_mm_s);
|
||||||
EEPROM_READ(planner.settings.min_travel_feedrate_mm_s);
|
EEPROM_READ(planner.settings.min_travel_feedrate_mm_s);
|
||||||
|
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
EEPROM_READ(planner.max_jerk);
|
EEPROM_READ(planner.max_jerk);
|
||||||
#if HAS_LINEAR_E_JERK
|
#if HAS_LINEAR_E_JERK
|
||||||
EEPROM_READ(dummyf);
|
EEPROM_READ(dummyf);
|
||||||
|
@ -3094,7 +3094,7 @@ void MarlinSettings::reset() {
|
||||||
planner.settings.min_feedrate_mm_s = feedRate_t(DEFAULT_MINIMUMFEEDRATE);
|
planner.settings.min_feedrate_mm_s = feedRate_t(DEFAULT_MINIMUMFEEDRATE);
|
||||||
planner.settings.min_travel_feedrate_mm_s = feedRate_t(DEFAULT_MINTRAVELFEEDRATE);
|
planner.settings.min_travel_feedrate_mm_s = feedRate_t(DEFAULT_MINTRAVELFEEDRATE);
|
||||||
|
|
||||||
#if HAS_CLASSIC_JERK
|
#if ENABLED(CLASSIC_JERK)
|
||||||
#if HAS_X_AXIS && !defined(DEFAULT_XJERK)
|
#if HAS_X_AXIS && !defined(DEFAULT_XJERK)
|
||||||
#define DEFAULT_XJERK 0
|
#define DEFAULT_XJERK 0
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue