Explorar o código

Merge pull request #996 from PavelSindler/snmm_v2

M600 updated
PavelSindler %!s(int64=6) %!d(string=hai) anos
pai
achega
ac60b3ebe7
Modificáronse 2 ficheiros con 15 adicións e 7 borrados
  1. 14 6
      Firmware/Marlin_main.cpp
  2. 1 1
      Firmware/ultralcd.cpp

+ 14 - 6
Firmware/Marlin_main.cpp

@@ -3122,9 +3122,9 @@ void gcode_M600(bool automatic, float x_position, float y_position, float z_shif
 		
 		// Unload filament
 #if defined (SNMM) || defined (SNMM_V2) 
-		extr_unload(); //unload just current filament
+		extr_unload(); //unload just current filament for multimaterial printers (used also in M702)
 #else
-		unload_filament(); //unload filament fopr single material (used also in M702)
+		unload_filament(); //unload filament for single material (used also in M702)
 #endif 
 		//finish moves
 		st_synchronize();
@@ -3164,7 +3164,7 @@ void gcode_M600(bool automatic, float x_position, float y_position, float z_shif
       st_synchronize();  
       
 	  //Unretract
-      current_position[E_AXIS]= current_position[E_AXIS] - FILAMENTCHANGE_FIRSTRETRACT;
+      current_position[E_AXIS]= current_position[E_AXIS] - e_shift;
       plan_buffer_line(lastpos[X_AXIS], lastpos[Y_AXIS], lastpos[Z_AXIS], current_position[E_AXIS], FILAMENTCHANGE_RFEED, active_extruder);
 	  st_synchronize();
 
@@ -3469,7 +3469,9 @@ void process_commands()
                enquecommand_P(PSTR("M24")); 
 		}	
 		else if (code_seen("MMURES")) {
-			fprintf_P(uart2io, PSTR("X0"));
+
+			printf_P(PSTR("X0\n"));
+			fprintf_P(uart2io, PSTR("X0\n"));
 		}
 		else if (code_seen("RESET")) {
             // careful!
@@ -9103,11 +9105,16 @@ void M600_wait_for_user() {
 		WRITE(BEEPER, LOW);
 }
 
-void mmu_M600_load_filament(bool automatic) {
+void mmu_M600_load_filament(bool automatic) { 
+	//load filament for mmu v2
 #ifdef SNMM_V2
 		  bool response = false;
+		  bool yes = false;
 		  if (!automatic) {
-			  tmp_extruder = choose_extruder_menu();
+			  yes = lcd_show_fullscreen_message_yes_no_and_wait_P(_i("Do you want to switch extruder?"), false);
+			  if(yes) tmp_extruder = choose_extruder_menu();
+			  else tmp_extruder = snmm_extruder;
+
 		  }
 		  else {
 			  tmp_extruder = (tmp_extruder+1)%5;
@@ -9158,6 +9165,7 @@ void M600_load_filament_movements() {
 }
 
 void M600_load_filament() {
+	//load filament for single material and SNMM 
 	lcd_wait_interact();
 
 	//load_filament_time = millis();

+ 1 - 1
Firmware/ultralcd.cpp

@@ -5356,7 +5356,7 @@ void extr_adj(int extruder) //loading filament for SNMM
 }
 
 
-void extr_unload() { //unloads filament
+void extr_unload() { //unload just current filament for multimaterial printers
 	#ifndef SNMM_V2
 	float tmp_motor[3] = DEFAULT_PWM_MOTOR_CURRENT;
 	float tmp_motor_loud[3] = DEFAULT_PWM_MOTOR_CURRENT_LOUD;