Sfoglia il codice sorgente

Move Delta Calibrate Menu to its own file

Scott Lahteine 6 anni fa
parent
commit
3b0d2330b6
2 ha cambiato i file con 134 aggiunte e 102 eliminazioni
  1. 1
    102
      Marlin/src/lcd/menu/menu.cpp
  2. 133
    0
      Marlin/src/lcd/menu/menu_delta_calibrate.cpp

+ 1
- 102
Marlin/src/lcd/menu/menu.cpp Vedi File

43
   #include "../../sd/cardreader.h"
43
   #include "../../sd/cardreader.h"
44
 #endif
44
 #endif
45
 
45
 
46
-#if HAS_LEVELING
47
-  #include "../../feature/bedlevel/bedlevel.h"
48
-#endif
49
-
50
 ////////////////////////////////////////////
46
 ////////////////////////////////////////////
51
 ///////////// Global Variables /////////////
47
 ///////////// Global Variables /////////////
52
 ////////////////////////////////////////////
48
 ////////////////////////////////////////////
562
 }
558
 }
563
 
559
 
564
 #if ENABLED(LCD_BED_LEVELING) || (HAS_LEVELING && DISABLED(SLIM_LCD_MENUS))
560
 #if ENABLED(LCD_BED_LEVELING) || (HAS_LEVELING && DISABLED(SLIM_LCD_MENUS))
561
+  #include "../../feature/bedlevel/bedlevel.h"
565
   void _lcd_toggle_bed_leveling() { set_bed_leveling_enabled(!planner.leveling_active); }
562
   void _lcd_toggle_bed_leveling() { set_bed_leveling_enabled(!planner.leveling_active); }
566
 #endif
563
 #endif
567
 
564
 
568
-#if ENABLED(DELTA_CALIBRATION_MENU) || ENABLED(DELTA_AUTO_CALIBRATION)
569
-
570
-  void _man_probe_pt(const float &rx, const float &ry) {
571
-    do_blocking_move_to_z(Z_CLEARANCE_BETWEEN_PROBES);
572
-    do_blocking_move_to_xy(rx, ry);
573
-
574
-    lcd_synchronize();
575
-    move_menu_scale = MAX(PROBE_MANUALLY_STEP, MIN_STEPS_PER_SEGMENT / float(DEFAULT_XYZ_STEPS_PER_UNIT));
576
-    lcd_goto_screen(lcd_move_z);
577
-  }
578
-
579
-#endif // DELTA_CALIBRATION_MENU || DELTA_AUTO_CALIBRATION
580
-
581
-#if ENABLED(DELTA_AUTO_CALIBRATION)
582
-
583
-  float lcd_probe_pt(const float &rx, const float &ry) {
584
-    _man_probe_pt(rx, ry);
585
-    KEEPALIVE_STATE(PAUSED_FOR_USER);
586
-    defer_return_to_status = true;
587
-    wait_for_user = true;
588
-    while (wait_for_user) idle();
589
-    KEEPALIVE_STATE(IN_HANDLER);
590
-    lcd_goto_previous_menu_no_defer();
591
-    return current_position[Z_AXIS];
592
-  }
593
-
594
-#endif // DELTA_AUTO_CALIBRATION
595
-
596
-#if ENABLED(DELTA_CALIBRATION_MENU)
597
-
598
-  void _lcd_calibrate_homing() {
599
-    _lcd_draw_homing();
600
-    if (all_axes_homed()) lcd_goto_previous_menu();
601
-  }
602
-
603
-  void _lcd_delta_calibrate_home() {
604
-    enqueue_and_echo_commands_P(PSTR("G28"));
605
-    lcd_goto_screen(_lcd_calibrate_homing);
606
-  }
607
-
608
-  void _goto_tower_x() { _man_probe_pt(cos(RADIANS(210)) * delta_calibration_radius, sin(RADIANS(210)) * delta_calibration_radius); }
609
-  void _goto_tower_y() { _man_probe_pt(cos(RADIANS(330)) * delta_calibration_radius, sin(RADIANS(330)) * delta_calibration_radius); }
610
-  void _goto_tower_z() { _man_probe_pt(cos(RADIANS( 90)) * delta_calibration_radius, sin(RADIANS( 90)) * delta_calibration_radius); }
611
-  void _goto_center()  { _man_probe_pt(0,0); }
612
-
613
-#endif // DELTA_CALIBRATION_MENU
614
-
615
-#if ENABLED(DELTA_CALIBRATION_MENU) || ENABLED(DELTA_AUTO_CALIBRATION)
616
-
617
-  void _recalc_delta_settings() {
618
-    #if HAS_LEVELING
619
-      reset_bed_level(); // After changing kinematics bed-level data is no longer valid
620
-    #endif
621
-    recalc_delta_settings();
622
-  }
623
-
624
-  void lcd_delta_settings() {
625
-    START_MENU();
626
-    MENU_BACK(MSG_DELTA_CALIBRATE);
627
-    MENU_ITEM_EDIT_CALLBACK(float52sign, MSG_DELTA_HEIGHT, &delta_height, delta_height - 10, delta_height + 10, _recalc_delta_settings);
628
-    MENU_ITEM_EDIT_CALLBACK(float43, "Ex", &delta_endstop_adj[A_AXIS], -5, 5, _recalc_delta_settings);
629
-    MENU_ITEM_EDIT_CALLBACK(float43, "Ey", &delta_endstop_adj[B_AXIS], -5, 5, _recalc_delta_settings);
630
-    MENU_ITEM_EDIT_CALLBACK(float43, "Ez", &delta_endstop_adj[C_AXIS], -5, 5, _recalc_delta_settings);
631
-    MENU_ITEM_EDIT_CALLBACK(float52sign, MSG_DELTA_RADIUS, &delta_radius, delta_radius - 5, delta_radius + 5, _recalc_delta_settings);
632
-    MENU_ITEM_EDIT_CALLBACK(float43, "Tx", &delta_tower_angle_trim[A_AXIS], -5, 5, _recalc_delta_settings);
633
-    MENU_ITEM_EDIT_CALLBACK(float43, "Ty", &delta_tower_angle_trim[B_AXIS], -5, 5, _recalc_delta_settings);
634
-    MENU_ITEM_EDIT_CALLBACK(float43, "Tz", &delta_tower_angle_trim[C_AXIS], -5, 5, _recalc_delta_settings);
635
-    MENU_ITEM_EDIT_CALLBACK(float52sign, MSG_DELTA_DIAG_ROD, &delta_diagonal_rod, delta_diagonal_rod - 5, delta_diagonal_rod + 5, _recalc_delta_settings);
636
-    END_MENU();
637
-  }
638
-
639
-  void menu_delta_calibrate() {
640
-    START_MENU();
641
-    MENU_BACK(MSG_MAIN);
642
-    #if ENABLED(DELTA_AUTO_CALIBRATION)
643
-      MENU_ITEM(gcode, MSG_DELTA_AUTO_CALIBRATE, PSTR("G33"));
644
-      MENU_ITEM(gcode, MSG_DELTA_HEIGHT_CALIBRATE, PSTR("G33 S P1"));
645
-      MENU_ITEM(gcode, MSG_DELTA_Z_OFFSET_CALIBRATE, PSTR("G33 P-1"));
646
-      #if ENABLED(EEPROM_SETTINGS)
647
-        MENU_ITEM(function, MSG_STORE_EEPROM, lcd_store_settings);
648
-        MENU_ITEM(function, MSG_LOAD_EEPROM, lcd_load_settings);
649
-      #endif
650
-    #endif
651
-    MENU_ITEM(submenu, MSG_DELTA_SETTINGS, lcd_delta_settings);
652
-    #if ENABLED(DELTA_CALIBRATION_MENU)
653
-      MENU_ITEM(submenu, MSG_AUTO_HOME, _lcd_delta_calibrate_home);
654
-      if (all_axes_homed()) {
655
-        MENU_ITEM(submenu, MSG_DELTA_CALIBRATE_X, _goto_tower_x);
656
-        MENU_ITEM(submenu, MSG_DELTA_CALIBRATE_Y, _goto_tower_y);
657
-        MENU_ITEM(submenu, MSG_DELTA_CALIBRATE_Z, _goto_tower_z);
658
-        MENU_ITEM(submenu, MSG_DELTA_CALIBRATE_CENTER, _goto_center);
659
-      }
660
-    #endif
661
-    END_MENU();
662
-  }
663
-
664
-#endif // DELTA_CALIBRATION_MENU || DELTA_AUTO_CALIBRATION
665
-
666
 #if ENABLED(SDSUPPORT)
565
 #if ENABLED(SDSUPPORT)
667
 
566
 
668
   #if !PIN_EXISTS(SD_DETECT)
567
   #if !PIN_EXISTS(SD_DETECT)

+ 133
- 0
Marlin/src/lcd/menu/menu_delta_calibrate.cpp Vedi File

1
+/**
2
+ * Marlin 3D Printer Firmware
3
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
4
+ *
5
+ * Based on Sprinter and grbl.
6
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
7
+ *
8
+ * This program is free software: you can redistribute it and/or modify
9
+ * it under the terms of the GNU General Public License as published by
10
+ * the Free Software Foundation, either version 3 of the License, or
11
+ * (at your option) any later version.
12
+ *
13
+ * This program is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
+ * GNU General Public License for more details.
17
+ *
18
+ * You should have received a copy of the GNU General Public License
19
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
20
+ *
21
+ */
22
+
23
+//
24
+// Delta Calibrate Menu
25
+//
26
+
27
+#include "../../inc/MarlinConfigPre.h"
28
+
29
+#if HAS_LCD_MENU && (ENABLED(DELTA_CALIBRATION_MENU) || ENABLED(DELTA_AUTO_CALIBRATION))
30
+
31
+#include "menu.h"
32
+#include "../../module/delta.h"
33
+#include "../../module/motion.h"
34
+
35
+#if HAS_LEVELING
36
+  #include "../../feature/bedlevel/bedlevel.h"
37
+#endif
38
+
39
+void _man_probe_pt(const float &rx, const float &ry) {
40
+  do_blocking_move_to(rx, ry, Z_CLEARANCE_BETWEEN_PROBES);
41
+  lcd_synchronize();
42
+  move_menu_scale = MAX(PROBE_MANUALLY_STEP, MIN_STEPS_PER_SEGMENT / float(DEFAULT_XYZ_STEPS_PER_UNIT));
43
+  lcd_goto_screen(lcd_move_z);
44
+}
45
+
46
+#if ENABLED(DELTA_AUTO_CALIBRATION)
47
+
48
+  float lcd_probe_pt(const float &rx, const float &ry) {
49
+    _man_probe_pt(rx, ry);
50
+    KEEPALIVE_STATE(PAUSED_FOR_USER);
51
+    defer_return_to_status = true;
52
+    wait_for_user = true;
53
+    while (wait_for_user) idle();
54
+    KEEPALIVE_STATE(IN_HANDLER);
55
+    lcd_goto_previous_menu_no_defer();
56
+    return current_position[Z_AXIS];
57
+  }
58
+
59
+#endif
60
+
61
+#if ENABLED(DELTA_CALIBRATION_MENU)
62
+
63
+  #include "../../gcode/queue.h"
64
+
65
+  void _lcd_calibrate_homing() {
66
+    _lcd_draw_homing();
67
+    if (all_axes_homed()) lcd_goto_previous_menu();
68
+  }
69
+
70
+  void _lcd_delta_calibrate_home() {
71
+    enqueue_and_echo_commands_P(PSTR("G28"));
72
+    lcd_goto_screen(_lcd_calibrate_homing);
73
+  }
74
+
75
+  void _goto_tower_x() { _man_probe_pt(cos(RADIANS(210)) * delta_calibration_radius, sin(RADIANS(210)) * delta_calibration_radius); }
76
+  void _goto_tower_y() { _man_probe_pt(cos(RADIANS(330)) * delta_calibration_radius, sin(RADIANS(330)) * delta_calibration_radius); }
77
+  void _goto_tower_z() { _man_probe_pt(cos(RADIANS( 90)) * delta_calibration_radius, sin(RADIANS( 90)) * delta_calibration_radius); }
78
+  void _goto_center()  { _man_probe_pt(0,0); }
79
+
80
+#endif
81
+
82
+void _recalc_delta_settings() {
83
+  #if HAS_LEVELING
84
+    reset_bed_level(); // After changing kinematics bed-level data is no longer valid
85
+  #endif
86
+  recalc_delta_settings();
87
+}
88
+
89
+void lcd_delta_settings() {
90
+  START_MENU();
91
+  MENU_BACK(MSG_DELTA_CALIBRATE);
92
+  MENU_ITEM_EDIT_CALLBACK(float52sign, MSG_DELTA_HEIGHT, &delta_height, delta_height - 10, delta_height + 10, _recalc_delta_settings);
93
+  MENU_ITEM_EDIT_CALLBACK(float43, "Ex", &delta_endstop_adj[A_AXIS], -5, 5, _recalc_delta_settings);
94
+  MENU_ITEM_EDIT_CALLBACK(float43, "Ey", &delta_endstop_adj[B_AXIS], -5, 5, _recalc_delta_settings);
95
+  MENU_ITEM_EDIT_CALLBACK(float43, "Ez", &delta_endstop_adj[C_AXIS], -5, 5, _recalc_delta_settings);
96
+  MENU_ITEM_EDIT_CALLBACK(float52sign, MSG_DELTA_RADIUS, &delta_radius, delta_radius - 5, delta_radius + 5, _recalc_delta_settings);
97
+  MENU_ITEM_EDIT_CALLBACK(float43, "Tx", &delta_tower_angle_trim[A_AXIS], -5, 5, _recalc_delta_settings);
98
+  MENU_ITEM_EDIT_CALLBACK(float43, "Ty", &delta_tower_angle_trim[B_AXIS], -5, 5, _recalc_delta_settings);
99
+  MENU_ITEM_EDIT_CALLBACK(float43, "Tz", &delta_tower_angle_trim[C_AXIS], -5, 5, _recalc_delta_settings);
100
+  MENU_ITEM_EDIT_CALLBACK(float52sign, MSG_DELTA_DIAG_ROD, &delta_diagonal_rod, delta_diagonal_rod - 5, delta_diagonal_rod + 5, _recalc_delta_settings);
101
+  END_MENU();
102
+}
103
+
104
+void menu_delta_calibrate() {
105
+  START_MENU();
106
+  MENU_BACK(MSG_MAIN);
107
+
108
+  #if ENABLED(DELTA_AUTO_CALIBRATION)
109
+    MENU_ITEM(gcode, MSG_DELTA_AUTO_CALIBRATE, PSTR("G33"));
110
+    MENU_ITEM(gcode, MSG_DELTA_HEIGHT_CALIBRATE, PSTR("G33 S P1"));
111
+    MENU_ITEM(gcode, MSG_DELTA_Z_OFFSET_CALIBRATE, PSTR("G33 P-1"));
112
+    #if ENABLED(EEPROM_SETTINGS)
113
+      MENU_ITEM(function, MSG_STORE_EEPROM, lcd_store_settings);
114
+      MENU_ITEM(function, MSG_LOAD_EEPROM, lcd_load_settings);
115
+    #endif
116
+  #endif
117
+
118
+  MENU_ITEM(submenu, MSG_DELTA_SETTINGS, lcd_delta_settings);
119
+
120
+  #if ENABLED(DELTA_CALIBRATION_MENU)
121
+    MENU_ITEM(submenu, MSG_AUTO_HOME, _lcd_delta_calibrate_home);
122
+    if (all_axes_homed()) {
123
+      MENU_ITEM(submenu, MSG_DELTA_CALIBRATE_X, _goto_tower_x);
124
+      MENU_ITEM(submenu, MSG_DELTA_CALIBRATE_Y, _goto_tower_y);
125
+      MENU_ITEM(submenu, MSG_DELTA_CALIBRATE_Z, _goto_tower_z);
126
+      MENU_ITEM(submenu, MSG_DELTA_CALIBRATE_CENTER, _goto_center);
127
+    }
128
+  #endif
129
+
130
+  END_MENU();
131
+}
132
+
133
+#endif // HAS_LCD_MENU && (DELTA_CALIBRATION_MENU || DELTA_AUTO_CALIBRATION)

Loading…
Annulla
Salva