Browse Source

added retraction to preheat, no waiting when running mesh bed leveling from calibration menu

PavelSindler 8 years ago
parent
commit
abadaa5885
5 changed files with 20 additions and 5 deletions
  1. 10 4
      Firmware/Marlin_main.cpp
  2. 5 0
      Firmware/language_all.cpp
  3. 2 0
      Firmware/language_all.h
  4. 1 0
      Firmware/language_en.h
  5. 2 1
      Firmware/language_it.h

+ 10 - 4
Firmware/Marlin_main.cpp

@@ -2894,9 +2894,9 @@ void process_commands()
 			repeatcommand_front(); // repeat G80 with all its parameters
 			enquecommand_front_P((PSTR("G28 W0")));
 			break;
-		}
+		} 
 		
-		if (run == false) {
+		if (run == false && card.sdprinting == true) {
 			temp_compensation_start();
 			run = true;
 			repeatcommand_front(); // repeat G80 with all its parameters
@@ -3108,6 +3108,11 @@ void process_commands()
 		SERIAL_ECHOLNPGM("Mesh bed leveling activated");
 		go_home_with_z_lift();
 		SERIAL_ECHOLNPGM("Go home finished");
+		//unretract (after PINDA preheat retraction)
+		if (card.sdprinting == true && degHotend(active_extruder) > EXTRUDE_MINTEMP) {
+			current_position[E_AXIS] += DEFAULT_RETRACTION;
+			plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 400, active_extruder);
+		}
 		// Restore custom message state
 		custom_message = custom_message_old;
 		custom_message_type = custom_message_type_old;
@@ -6208,6 +6213,9 @@ void bed_analysis(float x_dimension, float y_dimension, int x_points_num, int y_
 #endif
 
 void temp_compensation_start() {
+	if (degHotend(active_extruder)>EXTRUDE_MINTEMP) current_position[E_AXIS] -= DEFAULT_RETRACTION;
+	plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 400, active_extruder);
+	
 	current_position[X_AXIS] = PINDA_PREHEAT_X;
 	current_position[Y_AXIS] = PINDA_PREHEAT_Y;
 	current_position[Z_AXIS] = 0;
@@ -6217,8 +6225,6 @@ void temp_compensation_start() {
 	while (fabs(degBed() - target_temperature_bed) > 3) delay_keep_alive(1000);
 
 	for(int i = 0; i < PINDA_HEAT_T; i++) delay_keep_alive(1000);
-	
-
 }
 
 void temp_compensation_apply() {

+ 5 - 0
Firmware/language_all.cpp

@@ -1741,6 +1741,11 @@ const char * const MSG_PINDA_NOT_CALIBRATED_LANG_TABLE[1] PROGMEM = {
 	MSG_PINDA_NOT_CALIBRATED_EN
 };
 
+const char MSG_PINDA_PREHEAT_EN[] PROGMEM = "Preheating";
+const char * const MSG_PINDA_PREHEAT_LANG_TABLE[1] PROGMEM = {
+	MSG_PINDA_PREHEAT_EN
+};
+
 const char MSG_PLANNER_BUFFER_BYTES_EN[] PROGMEM = "  PlannerBufferBytes: ";
 const char * const MSG_PLANNER_BUFFER_BYTES_LANG_TABLE[1] PROGMEM = {
 	MSG_PLANNER_BUFFER_BYTES_EN

+ 2 - 0
Firmware/language_all.h

@@ -347,6 +347,8 @@ extern const char* const MSG_PICK_Z_LANG_TABLE[LANG_NUM];
 #define MSG_PICK_Z LANG_TABLE_SELECT(MSG_PICK_Z_LANG_TABLE)
 extern const char* const MSG_PINDA_NOT_CALIBRATED_LANG_TABLE[1];
 #define MSG_PINDA_NOT_CALIBRATED LANG_TABLE_SELECT_EXPLICIT(MSG_PINDA_NOT_CALIBRATED_LANG_TABLE, 0)
+extern const char* const MSG_PINDA_PREHEAT_LANG_TABLE[1];
+#define MSG_PINDA_PREHEAT LANG_TABLE_SELECT_EXPLICIT(MSG_PINDA_PREHEAT_LANG_TABLE, 0)
 extern const char* const MSG_PLANNER_BUFFER_BYTES_LANG_TABLE[1];
 #define MSG_PLANNER_BUFFER_BYTES LANG_TABLE_SELECT_EXPLICIT(MSG_PLANNER_BUFFER_BYTES_LANG_TABLE, 0)
 extern const char* const MSG_PLEASE_WAIT_LANG_TABLE[LANG_NUM];

+ 1 - 0
Firmware/language_en.h

@@ -268,3 +268,4 @@
 
 #define MSG_CALIBRATE_PINDA										"Calibrate PINDA"
 #define MSG_PINDA_NOT_CALIBRATED								"PINDA probe has not been calibrated"
+#define MSG_PINDA_PREHEAT										"Preheating"

+ 2 - 1
Firmware/language_it.h

@@ -248,4 +248,5 @@
 #define MSG_WAITING_TEMP								"In attesa del raffreddamento della testina e del piatto"
 #define MSG_FILAMENT_CLEAN								"Il colore e' nitido?"
 #define MSG_UNLOADING_FILAMENT							"Rilasc. filamento"
-#define MSG_PAPER										"Porre un foglio sotto l'ugello durante la calibrazione dei primi 4 punti. In caso l'ugello muova il foglio spegnere prontamente la stampante."
+#define MSG_PAPER										"Porre un foglio sotto l'ugello durante la calibrazione dei primi 4 punti. In caso l'ugello muova il foglio spegnere prontamente la stampante."
+