Add a feedRate_t data type (#15349)
This commit is contained in:
@ -289,7 +289,7 @@ bool StatusScreen::onTouchEnd(uint8_t tag) {
|
||||
|
||||
bool StatusScreen::onTouchHeld(uint8_t tag) {
|
||||
if (tag >= 1 && tag <= 4 && !jog_xy) return false;
|
||||
const float s = min_speed + (fine_motion ? 0 : (max_speed - min_speed) * sq(increment));
|
||||
const float s = min_speed + (fine_motion ? 0 : (max_speed - min_speed) * sq(increment));
|
||||
switch (tag) {
|
||||
case 1: jog(-s, 0, 0); break;
|
||||
case 2: jog( s, 0, 0); break;
|
||||
@ -301,7 +301,7 @@ bool StatusScreen::onTouchHeld(uint8_t tag) {
|
||||
case 8:
|
||||
{
|
||||
if (ExtUI::isMoving()) return false;
|
||||
const float feedrate = emin_speed + (fine_motion ? 0 : (emax_speed - emin_speed) * sq(increment));
|
||||
const feedRate_t feedrate = emin_speed + (fine_motion ? 0 : (emax_speed - emin_speed) * sq(increment));
|
||||
const float increment = 0.25 * feedrate * (tag == 7 ? -1 : 1);
|
||||
MoveAxisScreen::setManualFeedrate(E0, feedrate);
|
||||
UI_INCREMENT(AxisPosition_mm, E0);
|
||||
|
@ -338,6 +338,8 @@ namespace ExtUI {
|
||||
return pos;
|
||||
}
|
||||
|
||||
constexpr feedRate_t manual_feedrate_mm_m[XYZE] = MANUAL_FEEDRATE;
|
||||
|
||||
void setAxisPosition_mm(const float position, const axis_t axis) {
|
||||
// Start with no limits to movement
|
||||
float min = current_position[axis] - 1000,
|
||||
@ -382,23 +384,15 @@ namespace ExtUI {
|
||||
}
|
||||
#endif
|
||||
|
||||
constexpr float manual_feedrate[XYZE] = MANUAL_FEEDRATE;
|
||||
setFeedrate_mm_s(MMM_TO_MMS(manual_feedrate[axis]));
|
||||
|
||||
set_destination_from_current();
|
||||
destination[axis] = constrain(position, min, max);
|
||||
prepare_move_to_destination();
|
||||
current_position[axis] = constrain(position, min, max);
|
||||
line_to_current_position(MMM_TO_MMS(manual_feedrate_mm_m[axis]));
|
||||
}
|
||||
|
||||
void setAxisPosition_mm(const float position, const extruder_t extruder) {
|
||||
setActiveTool(extruder, true);
|
||||
|
||||
constexpr float manual_feedrate[XYZE] = MANUAL_FEEDRATE;
|
||||
setFeedrate_mm_s(MMM_TO_MMS(manual_feedrate[E_AXIS]));
|
||||
|
||||
set_destination_from_current();
|
||||
destination[E_AXIS] = position;
|
||||
prepare_move_to_destination();
|
||||
current_position[E_AXIS] = position;
|
||||
line_to_current_position(MMM_TO_MMS(manual_feedrate_mm_m[E_AXIS]));
|
||||
}
|
||||
|
||||
void setActiveTool(const extruder_t extruder, bool no_move) {
|
||||
@ -581,20 +575,20 @@ namespace ExtUI {
|
||||
planner.settings.axis_steps_per_mm[E_AXIS_N(axis - E0)] = value;
|
||||
}
|
||||
|
||||
float getAxisMaxFeedrate_mm_s(const axis_t axis) {
|
||||
feedRate_t getAxisMaxFeedrate_mm_s(const axis_t axis) {
|
||||
return planner.settings.max_feedrate_mm_s[axis];
|
||||
}
|
||||
|
||||
float getAxisMaxFeedrate_mm_s(const extruder_t extruder) {
|
||||
feedRate_t getAxisMaxFeedrate_mm_s(const extruder_t extruder) {
|
||||
UNUSED_E(extruder);
|
||||
return planner.settings.max_feedrate_mm_s[E_AXIS_N(axis - E0)];
|
||||
}
|
||||
|
||||
void setAxisMaxFeedrate_mm_s(const float value, const axis_t axis) {
|
||||
void setAxisMaxFeedrate_mm_s(const feedRate_t value, const axis_t axis) {
|
||||
planner.settings.max_feedrate_mm_s[axis] = value;
|
||||
}
|
||||
|
||||
void setAxisMaxFeedrate_mm_s(const float value, const extruder_t extruder) {
|
||||
void setAxisMaxFeedrate_mm_s(const feedRate_t value, const extruder_t extruder) {
|
||||
UNUSED_E(extruder);
|
||||
planner.settings.max_feedrate_mm_s[E_AXIS_N(axis - E0)] = value;
|
||||
}
|
||||
@ -670,15 +664,15 @@ namespace ExtUI {
|
||||
}
|
||||
#endif
|
||||
|
||||
float getFeedrate_mm_s() { return feedrate_mm_s; }
|
||||
float getMinFeedrate_mm_s() { return planner.settings.min_feedrate_mm_s; }
|
||||
float getMinTravelFeedrate_mm_s() { return planner.settings.min_travel_feedrate_mm_s; }
|
||||
feedRate_t getFeedrate_mm_s() { return feedrate_mm_s; }
|
||||
feedRate_t getMinFeedrate_mm_s() { return planner.settings.min_feedrate_mm_s; }
|
||||
feedRate_t getMinTravelFeedrate_mm_s() { return planner.settings.min_travel_feedrate_mm_s; }
|
||||
float getPrintingAcceleration_mm_s2() { return planner.settings.acceleration; }
|
||||
float getRetractAcceleration_mm_s2() { return planner.settings.retract_acceleration; }
|
||||
float getTravelAcceleration_mm_s2() { return planner.settings.travel_acceleration; }
|
||||
void setFeedrate_mm_s(const float fr) { feedrate_mm_s = fr; }
|
||||
void setMinFeedrate_mm_s(const float fr) { planner.settings.min_feedrate_mm_s = fr; }
|
||||
void setMinTravelFeedrate_mm_s(const float fr) { planner.settings.min_travel_feedrate_mm_s = fr; }
|
||||
void setFeedrate_mm_s(const feedRate_t fr) { feedrate_mm_s = fr; }
|
||||
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; }
|
||||
void setRetractAcceleration_mm_s2(const float acc) { planner.settings.retract_acceleration = acc; }
|
||||
void setTravelAcceleration_mm_s2(const float acc) { planner.settings.travel_acceleration = acc; }
|
||||
|
@ -116,12 +116,12 @@ namespace ExtUI {
|
||||
float getAxisPosition_mm(const extruder_t);
|
||||
float getAxisSteps_per_mm(const axis_t);
|
||||
float getAxisSteps_per_mm(const extruder_t);
|
||||
float getAxisMaxFeedrate_mm_s(const axis_t);
|
||||
float getAxisMaxFeedrate_mm_s(const extruder_t);
|
||||
feedRate_t getAxisMaxFeedrate_mm_s(const axis_t);
|
||||
feedRate_t getAxisMaxFeedrate_mm_s(const extruder_t);
|
||||
float getAxisMaxAcceleration_mm_s2(const axis_t);
|
||||
float getAxisMaxAcceleration_mm_s2(const extruder_t);
|
||||
float getMinFeedrate_mm_s();
|
||||
float getMinTravelFeedrate_mm_s();
|
||||
feedRate_t getMinFeedrate_mm_s();
|
||||
feedRate_t getMinTravelFeedrate_mm_s();
|
||||
float getPrintingAcceleration_mm_s2();
|
||||
float getRetractAcceleration_mm_s2();
|
||||
float getTravelAcceleration_mm_s2();
|
||||
@ -160,13 +160,13 @@ namespace ExtUI {
|
||||
void setAxisPosition_mm(const float, const extruder_t);
|
||||
void setAxisSteps_per_mm(const float, const axis_t);
|
||||
void setAxisSteps_per_mm(const float, const extruder_t);
|
||||
void setAxisMaxFeedrate_mm_s(const float, const axis_t);
|
||||
void setAxisMaxFeedrate_mm_s(const float, const extruder_t);
|
||||
void setAxisMaxFeedrate_mm_s(const feedRate_t, const axis_t);
|
||||
void setAxisMaxFeedrate_mm_s(const feedRate_t, const extruder_t);
|
||||
void setAxisMaxAcceleration_mm_s2(const float, const axis_t);
|
||||
void setAxisMaxAcceleration_mm_s2(const float, const extruder_t);
|
||||
void setFeedrate_mm_s(const float);
|
||||
void setMinFeedrate_mm_s(const float);
|
||||
void setMinTravelFeedrate_mm_s(const float);
|
||||
void setFeedrate_mm_s(const feedRate_t);
|
||||
void setMinFeedrate_mm_s(const feedRate_t);
|
||||
void setMinTravelFeedrate_mm_s(const feedRate_t);
|
||||
void setPrintingAcceleration_mm_s2(const float);
|
||||
void setRetractAcceleration_mm_s2(const float);
|
||||
void setTravelAcceleration_mm_s2(const float);
|
||||
|
@ -430,21 +430,21 @@ void _lcd_ubl_map_lcd_edit_cmd() {
|
||||
* UBL LCD Map Movement
|
||||
*/
|
||||
void ubl_map_move_to_xy() {
|
||||
REMEMBER(fr, feedrate_mm_s, MMM_TO_MMS(XY_PROBE_SPEED));
|
||||
const feedRate_t fr_mm_s = MMM_TO_MMS(XY_PROBE_SPEED);
|
||||
|
||||
set_destination_from_current(); // sync destination at the start
|
||||
set_destination_from_current(); // sync destination at the start
|
||||
|
||||
#if ENABLED(DELTA)
|
||||
if (current_position[Z_AXIS] > delta_clip_start_height) {
|
||||
destination[Z_AXIS] = delta_clip_start_height;
|
||||
prepare_move_to_destination();
|
||||
prepare_internal_move_to_destination(fr_mm_s);
|
||||
}
|
||||
#endif
|
||||
|
||||
destination[X_AXIS] = pgm_read_float(&ubl._mesh_index_to_xpos[x_plot]);
|
||||
destination[Y_AXIS] = pgm_read_float(&ubl._mesh_index_to_ypos[y_plot]);
|
||||
|
||||
prepare_move_to_destination();
|
||||
prepare_internal_move_to_destination(fr_mm_s);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -662,11 +662,9 @@ void MarlinUI::quick_feedback(const bool clear_buttons/*=true*/) {
|
||||
|
||||
if (manual_move_axis != (int8_t)NO_AXIS && ELAPSED(millis(), manual_move_start_time) && !planner.is_full()) {
|
||||
|
||||
const feedRate_t fr_mm_s = MMM_TO_MMS(manual_feedrate_mm_m[manual_move_axis]);
|
||||
#if IS_KINEMATIC
|
||||
|
||||
const float old_feedrate = feedrate_mm_s;
|
||||
feedrate_mm_s = MMM_TO_MMS(manual_feedrate_mm_m[manual_move_axis]);
|
||||
|
||||
#if EXTRUDERS > 1
|
||||
const int8_t old_extruder = active_extruder;
|
||||
if (manual_move_axis == E_AXIS) active_extruder = manual_move_e_index;
|
||||
@ -685,17 +683,16 @@ void MarlinUI::quick_feedback(const bool clear_buttons/*=true*/) {
|
||||
// previous invocation is being blocked. Modifications to manual_move_offset shouldn't be made while
|
||||
// processing_manual_move is true or the planner will get out of sync.
|
||||
processing_manual_move = true;
|
||||
prepare_move_to_destination(); // will set current_position from destination
|
||||
prepare_internal_move_to_destination(fr_mm_s); // will set current_position from destination
|
||||
processing_manual_move = false;
|
||||
|
||||
feedrate_mm_s = old_feedrate;
|
||||
#if EXTRUDERS > 1
|
||||
active_extruder = old_extruder;
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
planner.buffer_line(current_position, MMM_TO_MMS(manual_feedrate_mm_m[manual_move_axis]), manual_move_axis == E_AXIS ? manual_move_e_index : active_extruder);
|
||||
planner.buffer_line(current_position, fr_mm_s, manual_move_axis == E_AXIS ? manual_move_e_index : active_extruder);
|
||||
manual_move_axis = (int8_t)NO_AXIS;
|
||||
|
||||
#endif
|
||||
|
@ -90,7 +90,7 @@
|
||||
typedef void (*menuAction_t)();
|
||||
|
||||
// Manual Movement
|
||||
constexpr float manual_feedrate_mm_m[XYZE] = MANUAL_FEEDRATE;
|
||||
constexpr feedRate_t manual_feedrate_mm_m[XYZE] = MANUAL_FEEDRATE;
|
||||
extern float move_menu_scale;
|
||||
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
|
Reference in New Issue
Block a user