From 6e19e350296a65f72faf950131776120953e3f2e Mon Sep 17 00:00:00 2001 From: Ambroz Bizjak Date: Wed, 8 May 2013 21:16:41 +0200 Subject: [PATCH 1/2] Remove the duplication of axis limits configuration, and always use max_length. --- Marlin/Configuration.h | 11 +---------- Marlin/EEPROMwrite.h | 1 - Marlin/FPUTransform.cpp | 6 +++--- Marlin/Marlin.h | 1 + Marlin/motion_control.cpp | 6 +++--- Marlin/z_probe.cpp | 6 +++--- 6 files changed, 11 insertions(+), 20 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 284ab7b0c2a2..e470243064e0 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -197,7 +197,7 @@ //can be software-disabled for whatever purposes by #define PREVENT_DANGEROUS_EXTRUDE #define EXTRUDE_MINTEMP 170 - #define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances. + #define EXTRUDE_MAXLENGTH 400 //prevent extrusion of very large distances. #else #define BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE #endif @@ -276,9 +276,6 @@ const bool Z_ENDSTOPS_INVERTING = false; // set to true to invert the logic of t #ifdef REPRAPPRO_MENDEL -#define X_MAX_LENGTH 210 -#define Y_MAX_LENGTH 210 -#define Z_MAX_LENGTH 110 #define HOMING_FEEDRATE {10*60, 10*60, 1*60, 0} // set the homing speeds (mm/min) #define FAST_HOME_FEEDRATE {50*60, 50*60, 1*60, 0} // set the homing speeds (mm/min) #define DEFAULT_MAX_FEEDRATE {500, 500, 3, 45} @@ -289,9 +286,6 @@ const bool Z_ENDSTOPS_INVERTING = false; // set to true to invert the logic of t #ifdef REPRAPPRO_MENDEL2 -#define X_MAX_LENGTH 210 -#define Y_MAX_LENGTH 210 -#define Z_MAX_LENGTH 110 #define HOMING_FEEDRATE {10*60, 10*60, 1*60, 0} // set the homing speeds (mm/min) #define FAST_HOME_FEEDRATE {50*60, 50*60, 1*60, 0} // set the homing speeds (mm/min) #define DEFAULT_MAX_FEEDRATE {500, 500, 3, 45} @@ -300,9 +294,6 @@ const bool Z_ENDSTOPS_INVERTING = false; // set to true to invert the logic of t #else -#define X_MAX_LENGTH 155 -#define Y_MAX_LENGTH 150 -#define Z_MAX_LENGTH 90 #define HOMING_FEEDRATE {10*60, 10*60, 1*60, 0} // set the homing speeds (mm/min) #define FAST_HOME_FEEDRATE {80*60, 80*60, 4*60, 0} // set the homing speeds (mm/min) #define DEFAULT_MAX_FEEDRATE {500, 500, 5, 45} // (mm/sec) diff --git a/Marlin/EEPROMwrite.h b/Marlin/EEPROMwrite.h index fd2b9be83f29..6246155f8d02 100644 --- a/Marlin/EEPROMwrite.h +++ b/Marlin/EEPROMwrite.h @@ -7,7 +7,6 @@ #include "FPUTransform.h" //#include -extern float max_length[]; extern float extruder_x_off[]; extern float extruder_y_off[]; extern float extruder_z_off[]; diff --git a/Marlin/FPUTransform.cpp b/Marlin/FPUTransform.cpp index 17d766030694..06e1f26d6c48 100644 --- a/Marlin/FPUTransform.cpp +++ b/Marlin/FPUTransform.cpp @@ -153,16 +153,16 @@ void FPUDisable() void FPUTransform_determineBedOrientation() { int X3 = 15; -float X4 = X_MAX_LENGTH - 20; +float X4 = max_length[X_AXIS] - 20; float X2 = (X4 + X3) / 2; int Y1 = 15; -float Y2 = Y_MAX_LENGTH - 5; +float Y2 = max_length[Y_AXIS] - 5; float Z1; float Z2; float Z3; float Z4; -//get Z for X15 Y15, X15 Y(Y_MAX_LENGTH - 15) and X(X_MAX_LENGTH - 15) Y15 +//get Z for X15 Y15, X15 Y(max_length[Y_AXIS] - 15) and X(max_length[X_AXIS] - 15) Y15 Z3 = Probe_Bed(X3,Y1,PROBE_N); Z4 = Probe_Bed(X4,Y1,PROBE_N); Z1 = (Z3 + Z4) / 2; diff --git a/Marlin/Marlin.h b/Marlin/Marlin.h index 632463cfb943..5ad7f8ec3358 100644 --- a/Marlin/Marlin.h +++ b/Marlin/Marlin.h @@ -215,6 +215,7 @@ extern bool axis_relative_modes[]; extern volatile int feedmultiply; extern int saved_feedmultiply; extern float current_position[NUM_AXIS] ; +extern float max_length[3] ; extern float add_homeing[3]; extern unsigned char FanSpeed; diff --git a/Marlin/motion_control.cpp b/Marlin/motion_control.cpp index f11d8c8b8e5e..6d9c448fa38f 100644 --- a/Marlin/motion_control.cpp +++ b/Marlin/motion_control.cpp @@ -132,9 +132,9 @@ void mc_arc(float *position, float *target, float *offset, uint8_t axis_0, uint8 } if (max_software_endstops) { - if (arc_target[X_AXIS] > X_MAX_LENGTH) arc_target[X_AXIS] = X_MAX_LENGTH; - if (arc_target[Y_AXIS] > Y_MAX_LENGTH) arc_target[Y_AXIS] = Y_MAX_LENGTH; - if (arc_target[Z_AXIS] > Z_MAX_LENGTH) arc_target[Z_AXIS] = Z_MAX_LENGTH; + if (arc_target[X_AXIS] > max_length[X_AXIS]) arc_target[X_AXIS] = max_length[X_AXIS]; + if (arc_target[Y_AXIS] > max_length[Y_AXIS]) arc_target[Y_AXIS] = max_length[Y_AXIS]; + if (arc_target[Z_AXIS] > max_length[Z_AXIS]) arc_target[Z_AXIS] = max_length[Z_AXIS]; } plan_buffer_line(arc_target[X_AXIS], arc_target[Y_AXIS], arc_target[Z_AXIS], arc_target[E_AXIS], feed_rate, extruder); diff --git a/Marlin/z_probe.cpp b/Marlin/z_probe.cpp index 7c696cf0e12d..bac4e311519f 100644 --- a/Marlin/z_probe.cpp +++ b/Marlin/z_probe.cpp @@ -46,7 +46,7 @@ float Probe_Bed(float x_pos, float y_pos, int n) //fast probe //plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); - destination[Z_AXIS] = 1.1 * Z_MAX_LENGTH * Z_HOME_DIR; + destination[Z_AXIS] = 1.1 * max_length[Z_AXIS] * Z_HOME_DIR; feedrate = homing_feedrate[Z_AXIS]; plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder); st_synchronize(); @@ -138,8 +138,8 @@ void probe_3points() { float Probe_Avg, Point1, Point2, Point3; Point1 = Probe_Bed(15,15,PROBE_N); - Point2 = Probe_Bed(X_MAX_LENGTH - 20,15,PROBE_N) ; - Point3 = Probe_Bed(X_MAX_LENGTH/2,Y_MAX_LENGTH - 5,PROBE_N); + Point2 = Probe_Bed(max_length[X_AXIS] - 20,15,PROBE_N) ; + Point3 = Probe_Bed(max_length[X_AXIS]/2,max_length[Y_AXIS] - 5,PROBE_N); Probe_Avg = (Point1 + Point2 + Point3) / 3; //destination[2] = Probe_Avg; //feedrate = homing_feedrate[Z_AXIS]; From dc861aa0586ea807f731f85aeec25e27a259b629 Mon Sep 17 00:00:00 2001 From: Ambroz Bizjak Date: Wed, 8 May 2013 21:35:28 +0200 Subject: [PATCH 2/2] Move machine-specific defaults to one place. Remove duplicate definitions of DEFAULT_MAX_FEEDRATE. --- Marlin/Configuration.h | 42 ++++++++++++------------------------------ 1 file changed, 12 insertions(+), 30 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index e470243064e0..f233c765f8d6 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -234,6 +234,10 @@ const bool Z_ENDSTOPS_INVERTING = false; // set to true to invert the logic of t #define INVERT_E0_DIR true // for direct drive extruder v9 set to true, for geared extruder set to false #define INVERT_E1_DIR true // for direct drive extruder v9 set to true, for geared extruder set to false #define INVERT_E2_DIR true // for direct drive extruder v9 set to true, for geared extruder set to false +#define HOMING_FEEDRATE {10*60, 10*60, 1*60, 0} // set the homing speeds (mm/min) +#define FAST_HOME_FEEDRATE {50*60, 50*60, 1*60, 0} // set the homing speeds (mm/min) +#define DEFAULT_MAX_FEEDRATE {300, 300, 3, 45} // (mm/sec) +#define DEFAULT_MAX_ACCELERATION {800,800,30,250} // X, Y, Z, E maximum start speed for accelerated moves. E default values #endif #ifdef REPRAPPRO_MENDEL2 @@ -244,6 +248,10 @@ const bool Z_ENDSTOPS_INVERTING = false; // set to true to invert the logic of t #define INVERT_E0_DIR true // for direct drive extruder v9 set to true, for geared extruder set to false #define INVERT_E1_DIR true // for direct drive extruder v9 set to true, for geared extruder set to false #define INVERT_E2_DIR true // for direct drive extruder v9 set to true, for geared extruder set to false +#define HOMING_FEEDRATE {10*60, 10*60, 1*60, 0} // set the homing speeds (mm/min) +#define FAST_HOME_FEEDRATE {50*60, 50*60, 1*60, 0} // set the homing speeds (mm/min) +#define DEFAULT_MAX_FEEDRATE {300, 300, 3, 45} // (mm/sec) +#define DEFAULT_MAX_ACCELERATION {800,800,30,250} // X, Y, Z, E maximum start speed for accelerated moves. E default values #endif #ifdef REPRAPPRO_HUXLEY @@ -254,6 +262,10 @@ const bool Z_ENDSTOPS_INVERTING = false; // set to true to invert the logic of t #define INVERT_E0_DIR true // for direct drive extruder v9 set to true, for geared extruder set to false #define INVERT_E1_DIR true // for direct drive extruder v9 set to true, for geared extruder set to false #define INVERT_E2_DIR true // for direct drive extruder v9 set to true, for geared extruder set to false +#define HOMING_FEEDRATE {10*60, 10*60, 1*60, 0} // set the homing speeds (mm/min) +#define FAST_HOME_FEEDRATE {80*60, 80*60, 4*60, 0} // set the homing speeds (mm/min) +#define DEFAULT_MAX_FEEDRATE {500, 500, 5, 45} // (mm/sec) +#define DEFAULT_MAX_ACCELERATION {1000,1000,50,250} // X, Y, Z, E maximum start speed for accelerated moves. E default values #endif @@ -274,36 +286,6 @@ const bool Z_ENDSTOPS_INVERTING = false; // set to true to invert the logic of t //// MOVEMENT SETTINGS #define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E -#ifdef REPRAPPRO_MENDEL - -#define HOMING_FEEDRATE {10*60, 10*60, 1*60, 0} // set the homing speeds (mm/min) -#define FAST_HOME_FEEDRATE {50*60, 50*60, 1*60, 0} // set the homing speeds (mm/min) -#define DEFAULT_MAX_FEEDRATE {500, 500, 3, 45} -#define DEFAULT_MAX_FEEDRATE {300, 300, 3, 45} // (mm/sec) -#define DEFAULT_MAX_ACCELERATION {800,800,30,250} // X, Y, Z, E maximum start speed for accelerated moves. E default values - -#else - -#ifdef REPRAPPRO_MENDEL2 - -#define HOMING_FEEDRATE {10*60, 10*60, 1*60, 0} // set the homing speeds (mm/min) -#define FAST_HOME_FEEDRATE {50*60, 50*60, 1*60, 0} // set the homing speeds (mm/min) -#define DEFAULT_MAX_FEEDRATE {500, 500, 3, 45} -#define DEFAULT_MAX_FEEDRATE {300, 300, 3, 45} // (mm/sec) -#define DEFAULT_MAX_ACCELERATION {800,800,30,250} // X, Y, Z, E maximum start speed for accelerated moves. E default values - -#else - -#define HOMING_FEEDRATE {10*60, 10*60, 1*60, 0} // set the homing speeds (mm/min) -#define FAST_HOME_FEEDRATE {80*60, 80*60, 4*60, 0} // set the homing speeds (mm/min) -#define DEFAULT_MAX_FEEDRATE {500, 500, 5, 45} // (mm/sec) -#define DEFAULT_MAX_FEEDRATE {500, 500, 5, 45} // (mm/sec) -#define DEFAULT_MAX_ACCELERATION {1000,1000,50,250} // X, Y, Z, E maximum start speed for accelerated moves. E default values - -#endif -#endif - - // default settings // X, Y, Z, E steps per mm #define DEFAULT_AXIS_STEPS_PER_UNIT {92.635, 92.635, 4000, 660}