Limit LCD move_to_x/y coordinates for deltas
Related to MarlinFirmware/MarlinDev#270
This commit is contained in:
parent
988332c67a
commit
f18d3f451a
1 changed files with 9 additions and 2 deletions
|
@ -840,8 +840,15 @@ static void _lcd_move(const char* name, AxisEnum axis, int min, int max) {
|
||||||
lcd_goto_menu(lcd_move_menu_axis);
|
lcd_goto_menu(lcd_move_menu_axis);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
static void lcd_move_x() { _lcd_move(PSTR(MSG_MOVE_X), X_AXIS, X_MIN_POS, X_MAX_POS); }
|
#if ENABLED(DELTA)
|
||||||
static void lcd_move_y() { _lcd_move(PSTR(MSG_MOVE_Y), Y_AXIS, Y_MIN_POS, Y_MAX_POS); }
|
static float delta_clip_radius_2 = DELTA_PRINTABLE_RADIUS * DELTA_PRINTABLE_RADIUS;
|
||||||
|
static int delta_clip( float a ) { return sqrt(delta_clip_radius_2 - a*a); }
|
||||||
|
static void lcd_move_x() { int clip = delta_clip(current_position[Y_AXIS]); _lcd_move(PSTR(MSG_MOVE_X), X_AXIS, max(X_MIN_POS, -clip), min(X_MAX_POS, clip)); }
|
||||||
|
static void lcd_move_y() { int clip = delta_clip(current_position[X_AXIS]); _lcd_move(PSTR(MSG_MOVE_X), X_AXIS, max(X_MIN_POS, -clip), min(X_MAX_POS, clip)); }
|
||||||
|
#else
|
||||||
|
static void lcd_move_x() { _lcd_move(PSTR(MSG_MOVE_X), X_AXIS, X_MIN_POS, X_MAX_POS); }
|
||||||
|
static void lcd_move_y() { _lcd_move(PSTR(MSG_MOVE_Y), Y_AXIS, Y_MIN_POS, Y_MAX_POS); }
|
||||||
|
#endif
|
||||||
static void lcd_move_z() { _lcd_move(PSTR(MSG_MOVE_Z), Z_AXIS, Z_MIN_POS, Z_MAX_POS); }
|
static void lcd_move_z() { _lcd_move(PSTR(MSG_MOVE_Z), Z_AXIS, Z_MIN_POS, Z_MAX_POS); }
|
||||||
static void lcd_move_e(
|
static void lcd_move_e(
|
||||||
#if EXTRUDERS > 1
|
#if EXTRUDERS > 1
|
||||||
|
|
Reference in a new issue