Browse Source

Add option to move Z on double-click when idle

dot-bob 7 years ago
parent
commit
b0fd8f2d74

+ 5
- 0
Marlin/Configuration_adv.h View File

777
                                             // Note: Extra time may be added to mitigate controller latency.
777
                                             // Note: Extra time may be added to mitigate controller latency.
778
   #endif
778
   #endif
779
 
779
 
780
+  //#define MOVE_Z_WHEN_IDLE                // Jump to the move Z menu on doubleclick when printer is idle.
781
+  #if ENABLED(MOVE_Z_WHEN_IDLE)
782
+    #define MOVE_Z_IDLE_MULTIPLICATOR 1     // Multiply 1mm by this factor for the move step size.
783
+  #endif
784
+
780
   //#define BABYSTEP_ZPROBE_OFFSET          // Combine M851 Z and Babystepping
785
   //#define BABYSTEP_ZPROBE_OFFSET          // Combine M851 Z and Babystepping
781
   #if ENABLED(BABYSTEP_ZPROBE_OFFSET)
786
   #if ENABLED(BABYSTEP_ZPROBE_OFFSET)
782
     //#define BABYSTEP_HOTEND_Z_OFFSET      // For multiple hotends, babystep relative Z offsets
787
     //#define BABYSTEP_HOTEND_Z_OFFSET      // For multiple hotends, babystep relative Z offsets

+ 5
- 0
Marlin/src/config/default/Configuration_adv.h View File

777
                                             // Note: Extra time may be added to mitigate controller latency.
777
                                             // Note: Extra time may be added to mitigate controller latency.
778
   #endif
778
   #endif
779
 
779
 
780
+  //#define MOVE_Z_WHEN_IDLE                // Jump to the move Z menu on doubleclick when printer is idle.
781
+  #if ENABLED(MOVE_Z_WHEN_IDLE)
782
+    #define MOVE_Z_IDLE_MULTIPLICATOR 1     // Multiply 1mm by this factor for the move step size.
783
+  #endif
784
+
780
   //#define BABYSTEP_ZPROBE_OFFSET          // Combine M851 Z and Babystepping
785
   //#define BABYSTEP_ZPROBE_OFFSET          // Combine M851 Z and Babystepping
781
   #if ENABLED(BABYSTEP_ZPROBE_OFFSET)
786
   #if ENABLED(BABYSTEP_ZPROBE_OFFSET)
782
     //#define BABYSTEP_HOTEND_Z_OFFSET      // For multiple hotends, babystep relative Z offsets
787
     //#define BABYSTEP_HOTEND_Z_OFFSET      // For multiple hotends, babystep relative Z offsets

+ 20
- 12
Marlin/src/lcd/ultralcd.cpp View File

509
 
509
 
510
   inline bool printer_busy() { return planner.movesplanned() || IS_SD_PRINTING; }
510
   inline bool printer_busy() { return planner.movesplanned() || IS_SD_PRINTING; }
511
 
511
 
512
+  void lcd_move_z();
513
+  float move_menu_scale;
514
+
512
   /**
515
   /**
513
    * General function to go directly to a screen
516
    * General function to go directly to a screen
514
    */
517
    */
528
           if (currentScreen == lcd_status_screen)
531
           if (currentScreen == lcd_status_screen)
529
             doubleclick_expire_ms = millis() + DOUBLECLICK_MAX_INTERVAL;
532
             doubleclick_expire_ms = millis() + DOUBLECLICK_MAX_INTERVAL;
530
         }
533
         }
531
-        else if (screen == lcd_status_screen && currentScreen == lcd_main_menu && PENDING(millis(), doubleclick_expire_ms)/* && printer_busy()*/)
532
-          screen =
533
-            #if ENABLED(BABYSTEP_ZPROBE_OFFSET)
534
-              lcd_babystep_zoffset
535
-            #else
536
-              lcd_babystep_z
537
-            #endif
538
-          ;
534
+        else if (screen == lcd_status_screen && currentScreen == lcd_main_menu && PENDING(millis(), doubleclick_expire_ms)) {
535
+          if (printer_busy()) {
536
+            screen =
537
+              #if ENABLED(BABYSTEP_ZPROBE_OFFSET)
538
+                lcd_babystep_zoffset
539
+              #else
540
+                lcd_babystep_z
541
+              #endif
542
+            ;
543
+          }
544
+          #if ENABLED(MOVE_Z_WHEN_IDLE)
545
+            else {
546
+              move_menu_scale = MOVE_Z_IDLE_MULTIPLICATOR;
547
+              screen = lcd_move_z;
548
+            }
549
+          #endif
550
+        }
539
       #endif
551
       #endif
540
 
552
 
541
       currentScreen = screen;
553
       currentScreen = screen;
2850
     END_MENU();
2862
     END_MENU();
2851
   }
2863
   }
2852
 
2864
 
2853
-  float move_menu_scale;
2854
-
2855
   #if ENABLED(DELTA_CALIBRATION_MENU) || ENABLED(DELTA_AUTO_CALIBRATION)
2865
   #if ENABLED(DELTA_CALIBRATION_MENU) || ENABLED(DELTA_AUTO_CALIBRATION)
2856
 
2866
 
2857
-    void lcd_move_z();
2858
-
2859
     void _man_probe_pt(const float &rx, const float &ry) {
2867
     void _man_probe_pt(const float &rx, const float &ry) {
2860
       do_blocking_move_to_z(Z_CLEARANCE_BETWEEN_PROBES);
2868
       do_blocking_move_to_z(Z_CLEARANCE_BETWEEN_PROBES);
2861
       do_blocking_move_to_xy(rx, ry);
2869
       do_blocking_move_to_xy(rx, ry);

Loading…
Cancel
Save