Переглянути джерело

Merge pull request #4570 from thinkyhead/rc_proper_delta_calibration

Make DELTA_CALIBRATION_MENU more universal
Scott Lahteine 9 роки тому
джерело
коміт
9afa060ed6
2 змінених файлів з 17 додано та 5 видалено
  1. 1
    0
      .travis.yml
  2. 16
    5
      Marlin/ultralcd.cpp

+ 1
- 0
.travis.yml Переглянути файл

@@ -349,6 +349,7 @@ script:
349 349
   # Delta Config (generic)
350 350
   - restore_configs
351 351
   - use_example_configs delta/generic
352
+  - opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER DELTA_CALIBRATION_MENU
352 353
   - build_marlin
353 354
   #
354 355
   # Delta Config (generic) + ABL + ALLEN_KEY

+ 16
- 5
Marlin/ultralcd.cpp Переглянути файл

@@ -1260,14 +1260,25 @@ void kill_screen(const char* lcd_msg) {
1260 1260
 
1261 1261
   #if ENABLED(DELTA_CALIBRATION_MENU)
1262 1262
 
1263
+    static void _goto_tower_pos(const float &a) {
1264
+      char cmd[20];
1265
+      sprintf_P(cmd, PSTR("G1 X%i Y%i"), int(-(DELTA_PRINTABLE_RADIUS) * sin(a)), int((DELTA_PRINTABLE_RADIUS) * cos(a)));
1266
+      enqueue_and_echo_commands_P(PSTR("G1 F8000 Z4\nG1 F4000"));
1267
+      enqueue_and_echo_command(cmd);
1268
+    }
1269
+
1270
+    static void _goto_tower_x() { _goto_tower_pos(RADIANS(120)); }
1271
+    static void _goto_tower_y() { _goto_tower_pos(RADIANS(240)); }
1272
+    static void _goto_tower_z() { _goto_tower_pos(0); }
1273
+
1263 1274
     static void lcd_delta_calibrate_menu() {
1264 1275
       START_MENU();
1265 1276
       MENU_ITEM(back, MSG_MAIN);
1266 1277
       MENU_ITEM(gcode, MSG_AUTO_HOME, PSTR("G28"));
1267
-      MENU_ITEM(gcode, MSG_DELTA_CALIBRATE_X, PSTR("G0 F8000 X-77.94 Y-45 Z0"));
1268
-      MENU_ITEM(gcode, MSG_DELTA_CALIBRATE_Y, PSTR("G0 F8000 X77.94 Y-45 Z0"));
1269
-      MENU_ITEM(gcode, MSG_DELTA_CALIBRATE_Z, PSTR("G0 F8000 X0 Y90 Z0"));
1270
-      MENU_ITEM(gcode, MSG_DELTA_CALIBRATE_CENTER, PSTR("G0 F8000 X0 Y0 Z0"));
1278
+      MENU_ITEM(function, MSG_DELTA_CALIBRATE_X, _goto_tower_x);
1279
+      MENU_ITEM(function, MSG_DELTA_CALIBRATE_Y, _goto_tower_y);
1280
+      MENU_ITEM(function, MSG_DELTA_CALIBRATE_Z, _goto_tower_z);
1281
+      MENU_ITEM(gcode, MSG_DELTA_CALIBRATE_CENTER, PSTR("G1 F8000 Z4\nG1 F4000 X0 Y0"));
1271 1282
       END_MENU();
1272 1283
     }
1273 1284
 
@@ -2539,7 +2550,6 @@ void lcd_update() {
2539 2550
 
2540 2551
     bool sd_status = IS_SD_INSERTED;
2541 2552
     if (sd_status != lcd_sd_status && lcd_detected()) {
2542
-      lcd_sd_status = sd_status;
2543 2553
 
2544 2554
       if (sd_status) {
2545 2555
         card.initsd();
@@ -2550,6 +2560,7 @@ void lcd_update() {
2550 2560
         if (lcd_sd_status != 2) LCD_MESSAGEPGM(MSG_SD_REMOVED);
2551 2561
       }
2552 2562
 
2563
+      lcd_sd_status = sd_status;
2553 2564
       lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW;
2554 2565
       lcd_implementation_init( // to maybe revive the LCD if static electricity killed it.
2555 2566
         #if ENABLED(LCD_PROGRESS_BAR)

Завантаження…
Відмінити
Зберегти