Commit 79561977 authored by MagoKimbra's avatar MagoKimbra

fix Delta

parent c9f51a43
...@@ -50,8 +50,36 @@ ...@@ -50,8 +50,36 @@
// if you want use new function comment this (using // at the start of the line) // if you want use new function comment this (using // at the start of the line)
#define DELTA_SEGMENTS_PER_SECOND 200 #define DELTA_SEGMENTS_PER_SECOND 200
// NOTE: All following values for DELTA_* MUST be floating point,
// so always have a decimal point in them.
//
// Towers and rod nomenclature for the following defines:
//
// C, Y-axis
// |
// DELTA_ALPHA_CA=120° | DELTA_ALPHA_CB=120°
// |
// |______ X-axis
// / \
// / \
// / \
// / \
// A B
//
// |___| DELTA_CARRIAGE_OFFSET
// | \
// | \
// | \ DELTA_DIAGONAL_ROD
// | \
// | \ | Effector is at printer center!
// | \__|__/
// | |--| DELTA_EFFECTOR_OFFSET
// |----| DELTA_RADIUS Calculated in fw (DELTA_SMOOTH_ROD_OFFSET - DELTA_EFFECTOR_OFFSET - DELTA_CARRIAGE_OFFSET)
// |---------| DELTA_PRINTABLE_RADIUS
// |-----------| DELTA_SMOOTH_ROD_OFFSET
// Center-to-center distance of the holes in the diagonal push rods. // Center-to-center distance of the holes in the diagonal push rods.
#define DEFAULT_DELTA_DIAGONAL_ROD 220.0 // mm #define DELTA_DIAGONAL_ROD 220.0 // mm
// Horizontal offset from middle of printer to smooth rod center. // Horizontal offset from middle of printer to smooth rod center.
#define DELTA_SMOOTH_ROD_OFFSET 150.0 // mm #define DELTA_SMOOTH_ROD_OFFSET 150.0 // mm
...@@ -62,8 +90,8 @@ ...@@ -62,8 +90,8 @@
// Horizontal offset of the universal joints on the carriages. // Horizontal offset of the universal joints on the carriages.
#define DELTA_CARRIAGE_OFFSET 20.0 // mm #define DELTA_CARRIAGE_OFFSET 20.0 // mm
// Bed Printer radius // Delta Printable radius
#define BED_PRINTER_RADIUS 75 // mm #define DELTA_PRINTABLE_RADIUS 75.0 // mm
//Endstop Offset Adjustment - All values are in mm and must be negative (to move down away from endstop switches) //Endstop Offset Adjustment - All values are in mm and must be negative (to move down away from endstop switches)
#define TOWER_A_ENDSTOP_ADJ 0 // Front Left Tower #define TOWER_A_ENDSTOP_ADJ 0 // Front Left Tower
...@@ -80,7 +108,7 @@ ...@@ -80,7 +108,7 @@
#define TOWER_B_RADIUS_ADJ 0 //Front Right Tower #define TOWER_B_RADIUS_ADJ 0 //Front Right Tower
#define TOWER_C_RADIUS_ADJ 0 //Rear Tower #define TOWER_C_RADIUS_ADJ 0 //Rear Tower
//Diagonal Rod Adjustment - Adj diag rod for Tower by x mm from DEFAULT_DELTA_DIAGONAL_ROD value //Diagonal Rod Adjustment - Adj diag rod for Tower by x mm from DELTA_DIAGONAL_ROD value
#define TOWER_A_DIAGROD_ADJ 0 //Front Left Tower #define TOWER_A_DIAGROD_ADJ 0 //Front Left Tower
#define TOWER_B_DIAGROD_ADJ 0 //Front Right Tower #define TOWER_B_DIAGROD_ADJ 0 //Front Right Tower
#define TOWER_C_DIAGROD_ADJ 0 //Rear Tower #define TOWER_C_DIAGROD_ADJ 0 //Rear Tower
...@@ -298,10 +326,10 @@ ...@@ -298,10 +326,10 @@
* Travel limits after homing (units are in mm) * * Travel limits after homing (units are in mm) *
* * * *
*****************************************************************************************/ *****************************************************************************************/
#define X_MAX_POS BED_PRINTER_RADIUS #define X_MAX_POS DELTA_PRINTABLE_RADIUS
#define X_MIN_POS -BED_PRINTER_RADIUS #define X_MIN_POS -DELTA_PRINTABLE_RADIUS
#define Y_MAX_POS BED_PRINTER_RADIUS #define Y_MAX_POS DELTA_PRINTABLE_RADIUS
#define Y_MIN_POS -BED_PRINTER_RADIUS #define Y_MIN_POS -DELTA_PRINTABLE_RADIUS
#define Z_MAX_POS MANUAL_Z_HOME_POS #define Z_MAX_POS MANUAL_Z_HOME_POS
#define Z_MIN_POS 0 #define Z_MIN_POS 0
#define E_MIN_POS 0 #define E_MIN_POS 0
......
...@@ -529,7 +529,7 @@ void Config_ResetDefault() { ...@@ -529,7 +529,7 @@ void Config_ResetDefault() {
#if MECH(DELTA) #if MECH(DELTA)
delta_radius = DEFAULT_DELTA_RADIUS; delta_radius = DEFAULT_DELTA_RADIUS;
delta_diagonal_rod = DEFAULT_DELTA_DIAGONAL_ROD; delta_diagonal_rod = DELTA_DIAGONAL_ROD;
endstop_adj[0] = TOWER_A_ENDSTOP_ADJ; endstop_adj[0] = TOWER_A_ENDSTOP_ADJ;
endstop_adj[1] = TOWER_B_ENDSTOP_ADJ; endstop_adj[1] = TOWER_B_ENDSTOP_ADJ;
endstop_adj[2] = TOWER_C_ENDSTOP_ADJ; endstop_adj[2] = TOWER_C_ENDSTOP_ADJ;
......
...@@ -184,8 +184,8 @@ double printer_usage_filament; ...@@ -184,8 +184,8 @@ double printer_usage_filament;
float diagrod_adj[3] = { 0 }; float diagrod_adj[3] = { 0 };
float saved_endstop_adj[3] = { 0 }; float saved_endstop_adj[3] = { 0 };
float tower_adj[6] = { 0 }; float tower_adj[6] = { 0 };
float delta_radius; // = DEFAULT_delta_radius; float delta_radius; // = delta_radius;
float delta_diagonal_rod; // = DEFAULT_DELTA_DIAGONAL_ROD; float delta_diagonal_rod; // = DELTA_DIAGONAL_ROD;
float delta_diagonal_rod_1; float delta_diagonal_rod_1;
float delta_diagonal_rod_2; float delta_diagonal_rod_2;
float delta_diagonal_rod_3; float delta_diagonal_rod_3;
......
...@@ -373,7 +373,7 @@ ...@@ -373,7 +373,7 @@
#define BACK_PROBE_BED_POSITION DELTA_PROBABLE_RADIUS #define BACK_PROBE_BED_POSITION DELTA_PROBABLE_RADIUS
// Radius for probe // Radius for probe
#define DELTA_PROBABLE_RADIUS BED_PRINTER_RADIUS - 5 #define DELTA_PROBABLE_RADIUS DELTA_PRINTABLE_RADIUS - 5
#endif #endif
/** /**
......
...@@ -967,7 +967,7 @@ static void _lcd_move(const char* name, AxisEnum axis, int min, int max) { ...@@ -967,7 +967,7 @@ static void _lcd_move(const char* name, AxisEnum axis, int min, int max) {
} }
#if MECH(DELTA) #if MECH(DELTA)
static float delta_clip_radius_2 = BED_PRINTER_RADIUS * BED_PRINTER_RADIUS; 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 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_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)); } 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)); }
......
...@@ -1220,8 +1220,8 @@ ...@@ -1220,8 +1220,8 @@
#endif #endif
#if MECH(DELTA) #if MECH(DELTA)
#if DISABLED(DEFAULT_DELTA_DIAGONAL_ROD) #if DISABLED(DELTA_DIAGONAL_ROD)
#error DEPENDENCY ERROR: Missing setting DEFAULT_DELTA_DIAGONAL_ROD #error DEPENDENCY ERROR: Missing setting DELTA_DIAGONAL_ROD
#endif #endif
#if DISABLED(DELTA_SMOOTH_ROD_OFFSET) #if DISABLED(DELTA_SMOOTH_ROD_OFFSET)
#error DEPENDENCY ERROR: Missing setting DELTA_SMOOTH_ROD_OFFSET #error DEPENDENCY ERROR: Missing setting DELTA_SMOOTH_ROD_OFFSET
...@@ -1229,8 +1229,8 @@ ...@@ -1229,8 +1229,8 @@
#if DISABLED(DELTA_CARRIAGE_OFFSET) #if DISABLED(DELTA_CARRIAGE_OFFSET)
#error DEPENDENCY ERROR: Missing setting DELTA_CARRIAGE_OFFSET #error DEPENDENCY ERROR: Missing setting DELTA_CARRIAGE_OFFSET
#endif #endif
#if DISABLED(BED_PRINTER_RADIUS) #if DISABLED(DELTA_PRINTABLE_RADIUS)
#error DEPENDENCY ERROR: Missing setting BED_PRINTER_RADIUS #error DEPENDENCY ERROR: Missing setting DELTA_PRINTABLE_RADIUS
#endif #endif
#if DISABLED(DEFAULT_DELTA_RADIUS) #if DISABLED(DEFAULT_DELTA_RADIUS)
#error DEPENDENCY ERROR: Missing setting DEFAULT_DELTA_RADIUS #error DEPENDENCY ERROR: Missing setting DEFAULT_DELTA_RADIUS
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment