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);
|
||||
}
|
||||
}
|
||||
#if ENABLED(DELTA)
|
||||
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_e(
|
||||
#if EXTRUDERS > 1
|
||||
|
|
Reference in a new issue