M665 rework and related issues (all delta's)

- Making M665 compatible with repetier (see
http://reprap.org/wiki/G_code#M665:_Set_delta_configuration)

- M665 B also sets the radius for manual calibration menu

- Converting tower ajustment definitions to arrays - tower angle
corrections compatible with Esher 3D wizzard

- Only tower angles need to be adjustable with M665 and stored to EEPROM
- tower radius and diag rod can be adjusted in the FW only with #define
This commit is contained in:
LVD-AC
2017-04-18 14:43:25 +02:00
committed by teemuatlut
parent e66d9f1313
commit 13c8493878
11 changed files with 141 additions and 167 deletions

View File

@ -1805,20 +1805,14 @@ void kill_screen(const char* lcd_msg) {
lcd_goto_screen(_lcd_calibrate_homing);
}
#if ENABLED(DELTA_AUTO_CALIBRATION)
#define _DELTA_TOWER_MOVE_RADIUS DELTA_CALIBRATION_RADIUS
#else
#define _DELTA_TOWER_MOVE_RADIUS DELTA_PRINTABLE_RADIUS
#endif
// Move directly to the tower position with uninterpolated moves
// If we used interpolated moves it would cause this to become re-entrant
void _goto_tower_pos(const float &a) {
current_position[Z_AXIS] = max(Z_HOMING_HEIGHT, Z_CLEARANCE_BETWEEN_PROBES) + (DELTA_PRINTABLE_RADIUS) / 5;
line_to_current(Z_AXIS);
current_position[X_AXIS] = a < 0 ? LOGICAL_X_POSITION(X_HOME_POS) : sin(a) * -(_DELTA_TOWER_MOVE_RADIUS);
current_position[Y_AXIS] = a < 0 ? LOGICAL_Y_POSITION(Y_HOME_POS) : cos(a) * (_DELTA_TOWER_MOVE_RADIUS);
current_position[X_AXIS] = a < 0 ? LOGICAL_X_POSITION(X_HOME_POS) : sin(a) * -(delta_calibration_radius);
current_position[Y_AXIS] = a < 0 ? LOGICAL_Y_POSITION(Y_HOME_POS) : cos(a) * (delta_calibration_radius);
line_to_current(Z_AXIS);
current_position[Z_AXIS] = 4.0;