浏览代码

Merge branch 'Marlin_v1' of https://github.com/ErikZalm/Marlin into Marlin_v1

neildarlow 11 年前
父节点
当前提交
bbe8fbe13d
共有 5 个文件被更改,包括 397 次插入54 次删除
  1. 8
    0
      Marlin/Configuration_adv.h
  2. 2
    1
      Marlin/Marlin.h
  3. 62
    14
      Marlin/Marlin_main.cpp
  4. 159
    6
      Marlin/language.h
  5. 166
    33
      Marlin/ultralcd.cpp

+ 8
- 0
Marlin/Configuration_adv.h 查看文件

@@ -239,6 +239,11 @@
239 239
 #define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60}  // set the speeds for manual moves (mm/min)
240 240
 #endif
241 241
 
242
+//Comment to disable setting feedrate multiplier via encoder
243
+#ifdef ULTIPANEL
244
+    #define ULTIPANEL_FEEDMULTIPLY
245
+#endif
246
+
242 247
 // minimum time in microseconds that a movement needs to take if the buffer is emptied.
243 248
 #define DEFAULT_MINSEGMENTTIME        20000
244 249
 
@@ -279,6 +284,9 @@
279 284
 //=============================Additional Features===========================
280 285
 //===========================================================================
281 286
 
287
+//#define CHDK 4        //Pin for triggering CHDK to take a picture see how to use it here http://captain-slow.dk/2014/03/09/3d-printing-timelapses/
288
+#define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again
289
+
282 290
 #define SD_FINISHED_STEPPERRELEASE true  //if sd support and the file is finished: disable steppers?
283 291
 #define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
284 292
 

+ 2
- 1
Marlin/Marlin.h 查看文件

@@ -203,7 +203,8 @@ void setPwmFrequency(uint8_t pin, int val);
203 203
 extern float homing_feedrate[];
204 204
 extern bool axis_relative_modes[];
205 205
 extern int feedmultiply;
206
-extern int extrudemultiply; // Sets extrude multiply factor (in percent)
206
+extern int extrudemultiply; // Sets extrude multiply factor (in percent) for all extruders
207
+extern int extruder_multiply[EXTRUDERS]; // sets extrude multiply factor (in percent) for each extruder individually
207 208
 extern float volumetric_multiplier[EXTRUDERS]; // reciprocal of cross-sectional area of filament (in square millimeters), stored this way to reduce computational burden in planner
208 209
 extern float current_position[NUM_AXIS] ;
209 210
 extern float add_homeing[3];

+ 62
- 14
Marlin/Marlin_main.cpp 查看文件

@@ -189,6 +189,14 @@ bool axis_relative_modes[] = AXIS_RELATIVE_MODES;
189 189
 int feedmultiply=100; //100->1 200->2
190 190
 int saved_feedmultiply;
191 191
 int extrudemultiply=100; //100->1 200->2
192
+int extruder_multiply[EXTRUDERS] = {100
193
+  #if EXTRUDERS > 1
194
+    , 100
195
+    #if EXTRUDERS > 2
196
+      , 100
197
+    #endif
198
+  #endif
199
+};
192 200
 float volumetric_multiplier[EXTRUDERS] = {1.0
193 201
   #if EXTRUDERS > 1
194 202
     , 1.0
@@ -314,6 +322,12 @@ bool Stopped=false;
314 322
 bool CooldownNoWait = true;
315 323
 bool target_direction;
316 324
 
325
+//Insert variables if CHDK is defined
326
+#ifdef CHDK
327
+unsigned long chdkHigh = 0;
328
+boolean chdkActive = false;
329
+#endif
330
+
317 331
 //===========================================================================
318 332
 //=============================Routines======================================
319 333
 //===========================================================================
@@ -2422,7 +2436,18 @@ void process_commands()
2422 2436
     {
2423 2437
       if(code_seen('S'))
2424 2438
       {
2425
-        extrudemultiply = code_value() ;
2439
+        int tmp_code = code_value();
2440
+        if (code_seen('T'))
2441
+        {
2442
+          if(setTargetedHotend(221)){
2443
+            break;
2444
+          }
2445
+          extruder_multiply[tmp_extruder] = tmp_code;
2446
+        }
2447
+        else
2448
+        {
2449
+          extrudemultiply = tmp_code ;
2450
+        }
2426 2451
       }
2427 2452
     }
2428 2453
     break;
@@ -2590,23 +2615,33 @@ void process_commands()
2590 2615
     #endif //PIDTEMP
2591 2616
     case 240: // M240  Triggers a camera by emulating a Canon RC-1 : http://www.doc-diy.net/photo/rc-1_hacked/
2592 2617
      {
2593
-      #if defined(PHOTOGRAPH_PIN) && PHOTOGRAPH_PIN > -1
2594
-        const uint8_t NUM_PULSES=16;
2595
-        const float PULSE_LENGTH=0.01524;
2596
-        for(int i=0; i < NUM_PULSES; i++) {
2597
-          WRITE(PHOTOGRAPH_PIN, HIGH);
2598
-          _delay_ms(PULSE_LENGTH);
2599
-          WRITE(PHOTOGRAPH_PIN, LOW);
2600
-          _delay_ms(PULSE_LENGTH);
2618
+     	#ifdef CHDK
2619
+       
2620
+         SET_OUTPUT(CHDK);
2621
+         WRITE(CHDK, HIGH);
2622
+         chdkHigh = millis();
2623
+         chdkActive = true;
2624
+       
2625
+       #else
2626
+     	
2627
+      	#if defined(PHOTOGRAPH_PIN) && PHOTOGRAPH_PIN > -1
2628
+	const uint8_t NUM_PULSES=16;
2629
+	const float PULSE_LENGTH=0.01524;
2630
+	for(int i=0; i < NUM_PULSES; i++) {
2631
+        WRITE(PHOTOGRAPH_PIN, HIGH);
2632
+        _delay_ms(PULSE_LENGTH);
2633
+        WRITE(PHOTOGRAPH_PIN, LOW);
2634
+        _delay_ms(PULSE_LENGTH);
2601 2635
         }
2602 2636
         delay(7.33);
2603 2637
         for(int i=0; i < NUM_PULSES; i++) {
2604
-          WRITE(PHOTOGRAPH_PIN, HIGH);
2605
-          _delay_ms(PULSE_LENGTH);
2606
-          WRITE(PHOTOGRAPH_PIN, LOW);
2607
-          _delay_ms(PULSE_LENGTH);
2638
+        WRITE(PHOTOGRAPH_PIN, HIGH);
2639
+        _delay_ms(PULSE_LENGTH);
2640
+        WRITE(PHOTOGRAPH_PIN, LOW);
2641
+        _delay_ms(PULSE_LENGTH);
2608 2642
         }
2609
-      #endif
2643
+      	#endif
2644
+      #endif //chdk end if
2610 2645
      }
2611 2646
     break;
2612 2647
 #ifdef DOGLCD
@@ -3355,6 +3390,16 @@ void manage_inactivity()
3355 3390
       }
3356 3391
     }
3357 3392
   }
3393
+  
3394
+  #ifdef CHDK //Check if pin should be set to LOW after M240 set it to HIGH
3395
+    if (chdkActive)
3396
+    {
3397
+      chdkActive = false;
3398
+      if (millis()-chdkHigh < CHDK_DELAY) return;
3399
+      WRITE(CHDK, LOW);
3400
+    }
3401
+  #endif
3402
+  
3358 3403
   #if defined(KILL_PIN) && KILL_PIN > -1
3359 3404
     if( 0 == READ(KILL_PIN) )
3360 3405
       kill();
@@ -3522,6 +3567,9 @@ bool setTargetedHotend(int code){
3522 3567
         case 218:
3523 3568
           SERIAL_ECHO(MSG_M218_INVALID_EXTRUDER);
3524 3569
           break;
3570
+        case 221:
3571
+          SERIAL_ECHO(MSG_M221_INVALID_EXTRUDER);
3572
+          break;
3525 3573
       }
3526 3574
       SERIAL_ECHOLN(tmp_extruder);
3527 3575
       return true;

+ 159
- 6
Marlin/language.h 查看文件

@@ -77,8 +77,18 @@
77 77
 	#define MSG_AUTO_HOME "Auto home"
78 78
 	#define MSG_SET_ORIGIN "Set origin"
79 79
 	#define MSG_PREHEAT_PLA "Preheat PLA"
80
+	#define MSG_PREHEAT_PLA0 "Preheat PLA 1"
81
+	#define MSG_PREHEAT_PLA1 "Preheat PLA 2"
82
+	#define MSG_PREHEAT_PLA2 "Preheat PLA 3"
83
+	#define MSG_PREHEAT_PLA012 "Preheat PLA All"
84
+	#define MSG_PREHEAT_PLA_BEDONLY "Preheat PLA Bed"
80 85
 	#define MSG_PREHEAT_PLA_SETTINGS "Preheat PLA conf"
81 86
 	#define MSG_PREHEAT_ABS "Preheat ABS"
87
+	#define MSG_PREHEAT_ABS0 "Preheat ABS 1"
88
+	#define MSG_PREHEAT_ABS1 "Preheat ABS 2"
89
+	#define MSG_PREHEAT_ABS2 "Preheat ABS 3"
90
+	#define MSG_PREHEAT_ABS012 "Preheat ABS All"
91
+	#define MSG_PREHEAT_ABS_BEDONLY "Preheat ABS Bed"
82 92
 	#define MSG_PREHEAT_ABS_SETTINGS "Preheat ABS conf"
83 93
 	#define MSG_COOLDOWN "Cooldown"
84 94
 	#define MSG_SWITCH_PS_ON "Switch power on"
@@ -100,6 +110,9 @@
100 110
 	#define MSG_BED "Bed"
101 111
 	#define MSG_FAN_SPEED "Fan speed"
102 112
 	#define MSG_FLOW "Flow"
113
+	#define MSG_FLOW0 "Flow 0"
114
+	#define MSG_FLOW1 "Flow 1"
115
+	#define MSG_FLOW2 "Flow 2"
103 116
 	#define MSG_CONTROL "Control"
104 117
 	#define MSG_MIN " \002 Min"
105 118
 	#define MSG_MAX " \002 Max"
@@ -192,6 +205,7 @@
192 205
 	#define MSG_M105_INVALID_EXTRUDER "M105 Invalid extruder "
193 206
 	#define MSG_M200_INVALID_EXTRUDER "M200 Invalid extruder "
194 207
 	#define MSG_M218_INVALID_EXTRUDER "M218 Invalid extruder "
208
+	#define MSG_M221_INVALID_EXTRUDER "M221 Invalid extruder "
195 209
 	#define MSG_ERR_NO_THERMISTORS "No thermistors - no temperature"
196 210
 	#define MSG_M109_INVALID_EXTRUDER "M109 Invalid extruder "
197 211
 	#define MSG_HEATING "Heating..."
@@ -247,7 +261,6 @@
247 261
 
248 262
 #if LANGUAGE_CHOICE == 2
249 263
 
250
-
251 264
 // LCD Menu Messages
252 265
 // Please note these are limited to 17 characters!
253 266
 
@@ -260,8 +273,18 @@
260 273
 	#define MSG_AUTO_HOME "Auto. poz. zerowa"
261 274
 	#define MSG_SET_ORIGIN "Ustaw punkt zero"
262 275
 	#define MSG_PREHEAT_PLA "Rozgrzej PLA"
276
+	#define MSG_PREHEAT_PLA0 "Rozgrzej PLA 1"
277
+	#define MSG_PREHEAT_PLA1 "Rozgrzej PLA 2"
278
+	#define MSG_PREHEAT_PLA2 "Rozgrzej PLA 3"
279
+	#define MSG_PREHEAT_PLA012 "Roz. PLA Wszystko"
280
+	#define MSG_PREHEAT_PLA_BEDONLY "Rozgrzej PLA Loze"
263 281
 	#define MSG_PREHEAT_PLA_SETTINGS "Ustaw. rozg. PLA"
264 282
 	#define MSG_PREHEAT_ABS "Rozgrzej ABS"
283
+	#define MSG_PREHEAT_ABS0 "Rozgrzej ABS 1"
284
+	#define MSG_PREHEAT_ABS1 "Rozgrzej ABS 2"
285
+	#define MSG_PREHEAT_ABS2 "Rozgrzej ABS 3"
286
+	#define MSG_PREHEAT_ABS012 "Roz. ABS Wszystko"
287
+	#define MSG_PREHEAT_ABS_BEDONLY "Rozgrzej ABS Loze"
265 288
 	#define MSG_PREHEAT_ABS_SETTINGS "Ustaw. rozg. ABS"
266 289
 	#define MSG_COOLDOWN "Chlodzenie"
267 290
 	#define MSG_SWITCH_PS_ON "Wlacz zasilacz"
@@ -283,6 +306,9 @@
283 306
 	#define MSG_BED "Loze"
284 307
 	#define MSG_FAN_SPEED "Obroty wiatraka"
285 308
 	#define MSG_FLOW "Przeplyw"
309
+	#define MSG_FLOW0 "Przeplyw 0"
310
+	#define MSG_FLOW1 "Przeplyw 1"
311
+	#define MSG_FLOW2 "Przeplyw 2"
286 312
 	#define MSG_CONTROL "Kontrola"
287 313
 	#define MSG_MIN " \002 Min"
288 314
 	#define MSG_MAX " \002 Max"
@@ -378,6 +404,7 @@
378 404
 	#define MSG_M105_INVALID_EXTRUDER "M105 Niepoprawny ekstruder "
379 405
 	#define MSG_M200_INVALID_EXTRUDER "M200 Niepoprawny ekstruder "
380 406
 	#define MSG_M218_INVALID_EXTRUDER "M218 Niepoprawny ekstruder "
407
+	#define MSG_M221_INVALID_EXTRUDER "M221 Niepoprawny ekstruder "
381 408
 	#define MSG_ERR_NO_THERMISTORS "Brak termistorow - brak temperatury :("
382 409
 	#define MSG_M109_INVALID_EXTRUDER "M109 Niepoprawny ekstruder "
383 410
 	#define MSG_HEATING "Nagrzewanie ekstrudera..."
@@ -445,8 +472,18 @@
445 472
 	#define MSG_AUTO_HOME "Home auto."
446 473
 	#define MSG_SET_ORIGIN "Regler origine"
447 474
 	#define MSG_PREHEAT_PLA " Prechauffage PLA"
448
-	#define MSG_PREHEAT_PLA_SETTINGS " Regl. prech. PLA"
475
+	#define MSG_PREHEAT_PLA0 "Prechauff. PLA 1"
476
+        #define MSG_PREHEAT_PLA1 "Prechauff. PLA 2"
477
+	#define MSG_PREHEAT_PLA2 "Prechauff. PLA 3"
478
+	#define MSG_PREHEAT_PLA012 "Prech. PLA Tout"
479
+	#define MSG_PREHEAT_PLA_BEDONLY "Prech. PLA Plateau"
480
+	#define MSG_PREHEAT_PLA_SETTINGS "Regl. prech. PLA"
449 481
 	#define MSG_PREHEAT_ABS "Prechauffage ABS"
482
+	#define MSG_PREHEAT_ABS0 "Prechauff. ABS 1"
483
+	#define MSG_PREHEAT_ABS1 "Prechauff. ABS 2"
484
+	#define MSG_PREHEAT_ABS2 "Prechauff. ABS 3"
485
+	#define MSG_PREHEAT_ABS012 "Prech. ABS Tout"
486
+	#define MSG_PREHEAT_ABS_BEDONLY "Prech. ABS Plateau"
450 487
 	#define MSG_PREHEAT_ABS_SETTINGS "Regl. prech. ABS"
451 488
 	#define MSG_COOLDOWN "Refroidir"
452 489
 	#define MSG_SWITCH_PS_ON "Allumer alim."
@@ -470,6 +507,9 @@
470 507
 	#define MSG_BED "Plateau"
471 508
 	#define MSG_FAN_SPEED "Vite. ventilateur"
472 509
 	#define MSG_FLOW "Flux"
510
+	#define MSG_FLOW0 "Flux 0"
511
+	#define MSG_FLOW1 "Flux 1"
512
+	#define MSG_FLOW2 "Flux 2"
473 513
 	#define MSG_CONTROL "Controler"
474 514
 	#define MSG_MIN " \002 Min"
475 515
 	#define MSG_MAX " \002 Max"
@@ -563,6 +603,7 @@
563 603
 	#define MSG_M105_INVALID_EXTRUDER "M105 Extruder invalide"
564 604
 	#define MSG_M200_INVALID_EXTRUDER "M200 Extruder invalide"
565 605
 	#define MSG_M218_INVALID_EXTRUDER "M218 Extruder invalide"
606
+	#define MSG_M221_INVALID_EXTRUDER "M221 Extruder invalide"
566 607
 	#define MSG_ERR_NO_THERMISTORS "Pas de thermistor, pas de temperature"
567 608
 	#define MSG_M109_INVALID_EXTRUDER "M109 Extruder invalide "
568 609
 	#define MSG_HEATING "En chauffe..."
@@ -631,8 +672,18 @@
631 672
 	#define MSG_AUTO_HOME        "Auto Nullpunkt"
632 673
 	#define MSG_SET_ORIGIN       "Setze Nullpunkt"
633 674
 	#define MSG_PREHEAT_PLA      "Vorwärmen PLA"
675
+	#define MSG_PREHEAT_PLA0     "Vorwärmen PLA 1"
676
+	#define MSG_PREHEAT_PLA1     "Vorwärmen PLA 2"
677
+	#define MSG_PREHEAT_PLA2     "Vorwärmen PLA 3"
678
+	#define MSG_PREHEAT_PLA012   "Vorw. PLA Alle"
679
+	#define MSG_PREHEAT_PLA_BEDONLY "Vorw. PLA Bett"
634 680
 	#define MSG_PREHEAT_PLA_SETTINGS "Vorwärm. PLA Ein."
635 681
 	#define MSG_PREHEAT_ABS      "Vorwärmen ABS"
682
+	#define MSG_PREHEAT_ABS0     "Vorwärmen ABS 1"
683
+	#define MSG_PREHEAT_ABS1     "Vorwärmen ABS 2"
684
+	#define MSG_PREHEAT_ABS2     "Vorwärmen ABS 3"
685
+	#define MSG_PREHEAT_ABS012   "Vorw. ABS Alle"
686
+	#define MSG_PREHEAT_ABS_BEDONLY "Vorw. ABS Bett"
636 687
 	#define MSG_PREHEAT_ABS_SETTINGS "Vorwärm. ABS Ein."
637 688
 	#define MSG_COOLDOWN         "Abkühlen"
638 689
 	#define MSG_SWITCH_PS_ON     "Switch Power On"
@@ -654,6 +705,9 @@
654 705
 	#define MSG_BED              "Bett"
655 706
 	#define MSG_FAN_SPEED        "Lüftergeschw."
656 707
 	#define MSG_FLOW             "Fluss"
708
+	#define MSG_FLOW0            "Fluss 0"
709
+	#define MSG_FLOW1            "Fluss 1"
710
+	#define MSG_FLOW2            "Fluss 2"
657 711
 	#define MSG_CONTROL          "Einstellungen"
658 712
 	#define MSG_MIN              "\002 Min"
659 713
 	#define MSG_MAX              "\002 Max"
@@ -749,6 +803,7 @@
749 803
 	#define MSG_M105_INVALID_EXTRUDER "M105 Invalid extruder "
750 804
 	#define MSG_M200_INVALID_EXTRUDER "M200 Invalid extruder "
751 805
 	#define MSG_M218_INVALID_EXTRUDER "M218 Invalid extruder "
806
+	#define MSG_M221_INVALID_EXTRUDER "M221 Invalid extruder "
752 807
 	#define MSG_ERR_NO_THERMISTORS "No thermistors - no temp"
753 808
 	#define MSG_M109_INVALID_EXTRUDER "M109 Invalid extruder "
754 809
 	#define MSG_HEATING "Heating..."
@@ -816,8 +871,18 @@
816 871
 	#define MSG_AUTO_HOME "Llevar al origen"
817 872
 	#define MSG_SET_ORIGIN "Establecer cero"
818 873
 	#define MSG_PREHEAT_PLA "Precalentar PLA"
874
+	#define MSG_PREHEAT_PLA0 "Precalentar PLA 1"
875
+	#define MSG_PREHEAT_PLA1 "Precalentar PLA 2"
876
+	#define MSG_PREHEAT_PLA2 "Precalentar PLA 3"
877
+	#define MSG_PREHEAT_PLA012 "Precal. PLA Todo"
878
+	#define MSG_PREHEAT_PLA_BEDONLY "Precal. PLA Base"
819 879
 	#define MSG_PREHEAT_PLA_SETTINGS "Ajustar temp. PLA"
820 880
 	#define MSG_PREHEAT_ABS "Precalentar ABS"
881
+	#define MSG_PREHEAT_ABS0 "Precalentar ABS 1"
882
+	#define MSG_PREHEAT_ABS1 "Precalentar ABS 2"
883
+	#define MSG_PREHEAT_ABS2 "Precalentar ABS 3"
884
+	#define MSG_PREHEAT_ABS012 "Precal. ABS Todo"
885
+	#define MSG_PREHEAT_ABS_BEDONLY "Precal. ABS Base"
821 886
 	#define MSG_PREHEAT_ABS_SETTINGS "Ajustar temp. ABS"
822 887
 	#define MSG_COOLDOWN "Enfriar"
823 888
 	#define MSG_SWITCH_PS_ON "Switch Power On"
@@ -839,6 +904,9 @@
839 904
 	#define MSG_BED "Base"
840 905
 	#define MSG_FAN_SPEED "Ventilador"
841 906
 	#define MSG_FLOW "Flujo"
907
+	#define MSG_FLOW0 "Flujo 0"
908
+	#define MSG_FLOW1 "Flujo 1"
909
+	#define MSG_FLOW2 "Flujo 2"
842 910
 	#define MSG_CONTROL "Control"
843 911
 	#define MSG_MIN "\002 Min"
844 912
 	#define MSG_MAX "\002 Max"
@@ -940,6 +1008,7 @@
940 1008
 	#define MSG_M105_INVALID_EXTRUDER "M105 Extrusor Invalido "
941 1009
 	#define MSG_M200_INVALID_EXTRUDER "M200 Extrusor Invalido "
942 1010
 	#define MSG_M218_INVALID_EXTRUDER "M218 Extrusor Invalido "
1011
+	#define MSG_M221_INVALID_EXTRUDER "M221 Extrusor Invalido "
943 1012
 	#define MSG_ERR_NO_THERMISTORS "No hay termistores - no temp"
944 1013
 	#define MSG_M109_INVALID_EXTRUDER "M109 Extrusor Invalido "
945 1014
 	#define MSG_HEATING "Calentando..."
@@ -997,17 +1066,27 @@
997 1066
 // LCD Menu Messages
998 1067
 // Please note these are limited to 17 characters!
999 1068
 
1000
-	#define WELCOME_MSG MACHINE_NAME			" Готов."
1069
+	#define WELCOME_MSG MACHINE_NAME			        "Готов."
1001 1070
 	#define MSG_SD_INSERTED						"Карта вставлена"
1002 1071
 	#define MSG_SD_REMOVED						"Карта извлечена"
1003
-	#define MSG_MAIN							"Меню            \003"
1072
+	#define MSG_MAIN							"Меню \003"
1004 1073
 	#define MSG_AUTOSTART						"Автостарт"
1005 1074
 	#define MSG_DISABLE_STEPPERS 				"Выкл. двигатели"
1006 1075
 	#define MSG_AUTO_HOME						"Парковка"
1007 1076
 	#define MSG_SET_ORIGIN						"Запомнить ноль"
1008 1077
 	#define MSG_PREHEAT_PLA 					"Преднагрев PLA"
1078
+	#define MSG_PREHEAT_PLA0					"Преднагрев PLA0"
1079
+	#define MSG_PREHEAT_PLA1					"Преднагрев PLA1"
1080
+	#define MSG_PREHEAT_PLA2					"Преднагрев PLA2"
1081
+	#define MSG_PREHEAT_PLA012 					"Преднаг. PLA все"
1082
+	#define MSG_PREHEAT_PLA_BEDONLY 			"Пред. PLA Кровать"
1009 1083
 	#define MSG_PREHEAT_PLA_SETTINGS  			"Настройки PLA"
1010 1084
 	#define MSG_PREHEAT_ABS						"Преднагрев ABS"
1085
+	#define MSG_PREHEAT_ABS0					"Преднагрев ABS0"
1086
+	#define MSG_PREHEAT_ABS1					"Преднагрев ABS1"
1087
+	#define MSG_PREHEAT_ABS2					"Преднагрев ABS2"
1088
+	#define MSG_PREHEAT_ABS012 					"Преднаг. ABS все "
1089
+	#define MSG_PREHEAT_ABS_BEDONLY 			"Пред. ABS Кровать"
1011 1090
 	#define MSG_PREHEAT_ABS_SETTINGS  			"Настройки ABS"
1012 1091
 	#define MSG_COOLDOWN						"Охлаждение"
1013 1092
 	#define MSG_SWITCH_PS_ON					"Switch Power On"
@@ -1029,6 +1108,9 @@
1029 1108
 	#define MSG_BED								"\002 Кровать:"
1030 1109
 	#define MSG_FAN_SPEED						"Куллер:"
1031 1110
 	#define MSG_FLOW							"Поток:"
1111
+	#define MSG_FLOW0 " Поток0:"
1112
+	#define MSG_FLOW1 " Поток1:"
1113
+	#define MSG_FLOW2 " Поток2:"
1032 1114
 	#define MSG_CONTROL							"Настройки \003"
1033 1115
 	#define MSG_MIN								"\002 Минимум:"
1034 1116
 	#define MSG_MAX								"\002 Максимум:"
@@ -1068,8 +1150,8 @@
1068 1150
 	#define MSG_WATCH							"Обзор           \003"
1069 1151
 	#define MSG_PREPARE							"Действия        \x7E"
1070 1152
 	#define MSG_TUNE							"Настройки       \x7E"
1071
-	#define MSG_RESUME_PRINT  					"Продолжить печать"
1072
-	#define MSG_RESUME_PRINT					"Продолжить печать"
1153
+	#define MSG_PAUSE_PRINT  					"Продолжить печать"
1154
+	#define MSG_RESUME_PRINT					"возобн. печать"
1073 1155
 	#define MSG_STOP_PRINT 						"Остановить печать"
1074 1156
 	#define MSG_CARD_MENU						"Меню карты      \x7E"
1075 1157
 	#define MSG_NO_CARD							"Нет карты"
@@ -1122,6 +1204,7 @@
1122 1204
 	#define MSG_M105_INVALID_EXTRUDER			"M105 ошибка экструдера "
1123 1205
 	#define MSG_M200_INVALID_EXTRUDER			"M200 ошибка экструдера "
1124 1206
 	#define MSG_M218_INVALID_EXTRUDER			"M218 ошибка экструдера "
1207
+	#define MSG_M221_INVALID_EXTRUDER			"M221 ошибка экструдера "
1125 1208
 	#define MSG_ERR_NO_THERMISTORS				"Нет термистра - нет температуры"
1126 1209
 	#define MSG_M109_INVALID_EXTRUDER			"M109 ошибка экструдера "
1127 1210
 	#define MSG_HEATING							"Нагрев...  "
@@ -1187,8 +1270,18 @@
1187 1270
 	#define MSG_AUTO_HOME            "Auto Home"
1188 1271
 	#define MSG_SET_ORIGIN           "Imposta Origine"
1189 1272
 	#define MSG_PREHEAT_PLA          "Preriscalda PLA"
1273
+	#define MSG_PREHEAT_PLA0         "Preriscalda PLA 1"
1274
+	#define MSG_PREHEAT_PLA1         "Preriscalda PLA 2"
1275
+	#define MSG_PREHEAT_PLA2         "Preriscalda PLA 3"
1276
+	#define MSG_PREHEAT_PLA012       "Preris. PLA Tutto"
1277
+	#define MSG_PREHEAT_PLA_BEDONLY  "Preri. PLA Piatto"
1190 1278
 	#define MSG_PREHEAT_PLA_SETTINGS "Preris. PLA Conf"
1191 1279
 	#define MSG_PREHEAT_ABS          "Preriscalda ABS"
1280
+	#define MSG_PREHEAT_ABS0         "Preriscalda ABS 1"
1281
+	#define MSG_PREHEAT_ABS1         "Preriscalda ABS 2"
1282
+	#define MSG_PREHEAT_ABS2         "Preriscalda ABS 3"
1283
+	#define MSG_PREHEAT_ABS012       "Preris. ABS Tutto"
1284
+	#define MSG_PREHEAT_ABS_BEDONLY  "Preri. ABS Piatto"
1192 1285
 	#define MSG_PREHEAT_ABS_SETTINGS "Preris. ABS Conf"
1193 1286
 	#define MSG_COOLDOWN             "Raffredda"
1194 1287
 	#define MSG_SWITCH_PS_ON         "Switch Power On"
@@ -1210,6 +1303,9 @@
1210 1303
 	#define MSG_BED                  "Piatto"
1211 1304
 	#define MSG_FAN_SPEED            "Ventola"
1212 1305
 	#define MSG_FLOW                 "Flusso"
1306
+	#define MSG_FLOW0                "Flusso 0"
1307
+	#define MSG_FLOW1                "Flusso 1"
1308
+	#define MSG_FLOW2                "Flusso 2"
1213 1309
 	#define MSG_CONTROL              "Controllo"
1214 1310
 	#define MSG_MIN                  " \002 Min:"
1215 1311
 	#define MSG_MAX                  " \002 Max:"
@@ -1303,6 +1399,7 @@
1303 1399
 	#define MSG_M105_INVALID_EXTRUDER "M105 Estrusore non valido "
1304 1400
 	#define MSG_M200_INVALID_EXTRUDER "M200 Estrusore non valido "
1305 1401
 	#define MSG_M218_INVALID_EXTRUDER "M218 Estrusore non valido "
1402
+	#define MSG_M221_INVALID_EXTRUDER "M221 Estrusore non valido "
1306 1403
 	#define MSG_ERR_NO_THERMISTORS   "Nessun Termistore - nessuna temperatura"
1307 1404
 	#define MSG_M109_INVALID_EXTRUDER "M109 Estrusore non valido "
1308 1405
 	#define MSG_HEATING              "Riscaldamento..."
@@ -1370,8 +1467,18 @@
1370 1467
 	#define MSG_AUTO_HOME "Ir para origen"
1371 1468
 	#define MSG_SET_ORIGIN "Estabelecer orig."
1372 1469
 	#define MSG_PREHEAT_PLA "Pre-aquecer PLA"
1470
+	#define MSG_PREHEAT_PLA0 " pre-aquecer PLA 1"
1471
+	#define MSG_PREHEAT_PLA1 " pre-aquecer PLA 2"
1472
+	#define MSG_PREHEAT_PLA2 " pre-aquecer PLA 3"
1473
+	#define MSG_PREHEAT_PLA012 " pre-aq. PLA Tudo"
1474
+	#define MSG_PREHEAT_PLA_BEDONLY  " pre-aq. PLA \002Base"
1373 1475
 	#define MSG_PREHEAT_PLA_SETTINGS "PLA setting"
1374 1476
 	#define MSG_PREHEAT_ABS "Pre-aquecer ABS"
1477
+	#define MSG_PREHEAT_ABS0 " pre-aquecer ABS 1"
1478
+	#define MSG_PREHEAT_ABS1 " pre-aquecer ABS 2"
1479
+	#define MSG_PREHEAT_ABS2 " pre-aquecer ABS 3"
1480
+	#define MSG_PREHEAT_ABS012 " pre-aq. ABS Tudo"
1481
+	#define MSG_PREHEAT_ABS_BEDONLY  " pre-aq. ABS \002Base"
1375 1482
 	#define MSG_PREHEAT_ABS_SETTINGS "ABS setting"
1376 1483
 	#define MSG_COOLDOWN "Esfriar"
1377 1484
 	#define MSG_SWITCH_PS_ON "Switch Power On"
@@ -1395,6 +1502,9 @@
1395 1502
 	#define MSG_BED "\002Base:"
1396 1503
 	#define MSG_FAN_SPEED "Velocidade vento."
1397 1504
 	#define MSG_FLOW "Fluxo:"
1505
+	#define MSG_FLOW0 "Fluxo0:"
1506
+	#define MSG_FLOW1 "Fluxo1:"
1507
+	#define MSG_FLOW2 "Fluxo2:"
1398 1508
 	#define MSG_CONTROL "Controle \003"
1399 1509
 	#define MSG_MIN "\002 Min:"
1400 1510
 	#define MSG_MAX "\002 Max:"
@@ -1492,6 +1602,7 @@
1492 1602
 	#define MSG_M105_INVALID_EXTRUDER "M105 Extrusor inválido "
1493 1603
 	#define MSG_M200_INVALID_EXTRUDER "M200 Extrusor inválido "
1494 1604
 	#define MSG_M218_INVALID_EXTRUDER "M218 Extrusor inválido "
1605
+	#define MSG_M221_INVALID_EXTRUDER "M221 Extrusor inválido "
1495 1606
 	#define MSG_ERR_NO_THERMISTORS "Nao ha termistor - no temp"
1496 1607
 	#define MSG_M109_INVALID_EXTRUDER "M109 Extrusor inválido "
1497 1608
 	#define MSG_HEATING "Aquecendo..."
@@ -1560,8 +1671,18 @@
1560 1671
 	#define MSG_AUTO_HOME "Aja referenssiin"
1561 1672
 	#define MSG_SET_ORIGIN "Aseta origo"
1562 1673
 	#define MSG_PREHEAT_PLA "Esilammita PLA"
1674
+	#define MSG_PREHEAT_PLA0 "Esilammita PLA 1"
1675
+	#define MSG_PREHEAT_PLA1 "Esilammita PLA 2"
1676
+	#define MSG_PREHEAT_PLA2 "Esilammita PLA 3"
1677
+	#define MSG_PREHEAT_PLA012 "Esila. PLA Kaikki"
1678
+	#define MSG_PREHEAT_PLA_BEDONLY  "Esila. PLA Alusta"
1563 1679
 	#define MSG_PREHEAT_PLA_SETTINGS "Esilamm. PLA konf"
1564 1680
 	#define MSG_PREHEAT_ABS "Esilammita ABS"
1681
+	#define MSG_PREHEAT_ABS0 "Esilammita ABS 1"
1682
+	#define MSG_PREHEAT_ABS1 "Esilammita ABS 2"
1683
+	#define MSG_PREHEAT_ABS2 "Esilammita ABS 3"
1684
+	#define MSG_PREHEAT_ABS012 "Esila. ABS Kaikki"
1685
+	#define MSG_PREHEAT_ABS_BEDONLY  "Esila. ABS Alusta"
1565 1686
 	#define MSG_PREHEAT_ABS_SETTINGS "Esilamm. ABS konf"
1566 1687
 	#define MSG_COOLDOWN "Jaahdyta"
1567 1688
 	#define MSG_SWITCH_PS_ON "Virta paalle"
@@ -1583,6 +1704,9 @@
1583 1704
 	#define MSG_BED "Alusta"
1584 1705
 	#define MSG_FAN_SPEED "Tuul. nopeus"
1585 1706
 	#define MSG_FLOW "Virtaus"
1707
+	#define MSG_FLOW0 "Virtaus 0"
1708
+	#define MSG_FLOW1 "Virtaus 1"
1709
+	#define MSG_FLOW2 "Virtaus 2"
1586 1710
 	#define MSG_CONTROL "Kontrolli"
1587 1711
 	#define MSG_MIN " \002 Min"
1588 1712
 	#define MSG_MAX " \002 Max"
@@ -1675,6 +1799,7 @@
1675 1799
 	#define MSG_M105_INVALID_EXTRUDER "M105 Virheellinen suutin "
1676 1800
 	#define MSG_M200_INVALID_EXTRUDER "M200 Virheellinen suutin "
1677 1801
 	#define MSG_M218_INVALID_EXTRUDER "M218 Virheellinen suutin "
1802
+	#define MSG_M221_INVALID_EXTRUDER "M221 Virheellinen suutin "
1678 1803
 	#define MSG_ERR_NO_THERMISTORS "Ei termistoreja - ei lampotiloja"
1679 1804
 	#define MSG_M109_INVALID_EXTRUDER "M109 Virheellinen suutin "
1680 1805
 	#define MSG_HEATING "Lammitan..."
@@ -1743,8 +1868,18 @@
1743 1868
 	#define MSG_AUTO_HOME "Levar a l'orichen"
1744 1869
 	#define MSG_SET_ORIGIN "Establir zero"
1745 1870
 	#define MSG_PREHEAT_PLA "Precalentar PLA"
1871
+	#define MSG_PREHEAT_PLA0 "Precalentar PLA0"
1872
+	#define MSG_PREHEAT_PLA1 "Precalentar PLA1"
1873
+	#define MSG_PREHEAT_PLA2 "Precalentar PLA2"
1874
+	#define MSG_PREHEAT_PLA012 "Precalentar PLA a"
1875
+	#define MSG_PREHEAT_PLA_BEDONLY  "Prec. PLA Base"
1746 1876
 	#define MSG_PREHEAT_PLA_SETTINGS "Achustar tem. PLA"
1747 1877
 	#define MSG_PREHEAT_ABS "Precalentar ABS"
1878
+	#define MSG_PREHEAT_ABS0 "Precalentar ABS0"
1879
+	#define MSG_PREHEAT_ABS1 "Precalentar ABS1"
1880
+	#define MSG_PREHEAT_ABS2 "Precalentar ABS2"
1881
+	#define MSG_PREHEAT_ABS012 "Precalentar ABS a"
1882
+	#define MSG_PREHEAT_ABS_BEDONLY  "Prec. ABS Base"
1748 1883
 	#define MSG_PREHEAT_ABS_SETTINGS "Achustar tem. ABS"
1749 1884
 	#define MSG_COOLDOWN "Enfriar"
1750 1885
 	#define MSG_SWITCH_PS_ON "Enchegar Fuent"
@@ -1766,6 +1901,9 @@
1766 1901
 	#define MSG_BED "Base"
1767 1902
 	#define MSG_FAN_SPEED "Ixoriador"
1768 1903
 	#define MSG_FLOW "Fluxo"
1904
+	#define MSG_FLOW0 "Fluxo 0"
1905
+	#define MSG_FLOW1 "Fluxo 1"
1906
+	#define MSG_FLOW2 "Fluxo 2"
1769 1907
 	#define MSG_CONTROL "Control"
1770 1908
 	#define MSG_MIN "\002 Min"
1771 1909
 	#define MSG_MAX "\002 Max"
@@ -1867,6 +2005,7 @@
1867 2005
 	#define MSG_M105_INVALID_EXTRUDER "M105 Extrusor Invalido "
1868 2006
 	#define MSG_M200_INVALID_EXTRUDER "M200 Extrusor Invalido "
1869 2007
 	#define MSG_M218_INVALID_EXTRUDER "M218 Extrusor Invalido "
2008
+	#define MSG_M221_INVALID_EXTRUDER "M221 Extrusor Invalido "
1870 2009
 	#define MSG_ERR_NO_THERMISTORS "No i hai termistores - no temp"
1871 2010
 	#define MSG_M109_INVALID_EXTRUDER "M109 Extrusor Invalido "
1872 2011
 	#define MSG_HEATING "Calentando..."
@@ -1932,8 +2071,18 @@
1932 2071
 	#define MSG_AUTO_HOME "Auto home"
1933 2072
 	#define MSG_SET_ORIGIN "Nulpunt instellen"
1934 2073
 	#define MSG_PREHEAT_PLA "PLA voorverwarmen"
2074
+	#define MSG_PREHEAT_PLA0 "PLA voorverw. 0"
2075
+	#define MSG_PREHEAT_PLA1 "PLA voorverw. 1"
2076
+	#define MSG_PREHEAT_PLA2 "PLA voorverw. 2"
2077
+	#define MSG_PREHEAT_PLA012 "PLA voorverw. aan"
2078
+	#define MSG_PREHEAT_PLA_BEDONLY  "PLA voorverw. Bed"
1935 2079
 	#define MSG_PREHEAT_PLA_SETTINGS "PLA verw. conf"
1936 2080
 	#define MSG_PREHEAT_ABS "ABS voorverwarmen"
2081
+	#define MSG_PREHEAT_ABS0 "ABS voorverw. 0"
2082
+	#define MSG_PREHEAT_ABS1 "ABS voorverw. 1"
2083
+	#define MSG_PREHEAT_ABS2 "ABS voorverw. 2"
2084
+	#define MSG_PREHEAT_ABS012 "ABS voorverw. aan"
2085
+	#define MSG_PREHEAT_ABS_BEDONLY  "ABS voorverw. Bed"
1937 2086
 	#define MSG_PREHEAT_ABS_SETTINGS "ABS verw. conf"
1938 2087
 	#define MSG_COOLDOWN "Afkoelen"
1939 2088
 	#define MSG_SWITCH_PS_ON "Stroom aan"
@@ -1955,6 +2104,9 @@
1955 2104
 	#define MSG_BED "Bed"
1956 2105
 	#define MSG_FAN_SPEED "Fan snelheid"
1957 2106
 	#define MSG_FLOW "Flow"
2107
+	#define MSG_FLOW0 "Flow 0"
2108
+	#define MSG_FLOW1 "Flow 1"
2109
+	#define MSG_FLOW2 "Flow 2"
1958 2110
 	#define MSG_CONTROL "Control"
1959 2111
 	#define MSG_MIN " \002 Min"
1960 2112
 	#define MSG_MAX " \002 Max"
@@ -2047,6 +2199,7 @@
2047 2199
 	#define MSG_M105_INVALID_EXTRUDER "M105 Ongeldige extruder "
2048 2200
 	#define MSG_M200_INVALID_EXTRUDER "M200 Ongeldige extruder "
2049 2201
 	#define MSG_M218_INVALID_EXTRUDER "M218 Ongeldige extruder "
2202
+	#define MSG_M221_INVALID_EXTRUDER "M221 Ongeldige extruder "
2050 2203
 	#define MSG_ERR_NO_THERMISTORS "Geen thermistors - geen temperatuur"
2051 2204
 	#define MSG_M109_INVALID_EXTRUDER "M109 Ongeldige extruder "
2052 2205
 	#define MSG_HEATING "Opwarmen..."

+ 166
- 33
Marlin/ultralcd.cpp 查看文件

@@ -196,6 +196,7 @@ static void lcd_status_screen()
196 196
         lcd_quick_feedback();
197 197
     }
198 198
 
199
+#ifdef ULTIPANEL_FEEDMULTIPLY
199 200
     // Dead zone at 100% feedrate
200 201
     if ((feedmultiply < 100 && (feedmultiply + int(encoderPosition)) > 100) ||
201 202
             (feedmultiply > 100 && (feedmultiply + int(encoderPosition)) < 100))
@@ -219,6 +220,7 @@ static void lcd_status_screen()
219 220
         feedmultiply += int(encoderPosition);
220 221
         encoderPosition = 0;
221 222
     }
223
+#endif//ULTIPANEL_FEEDMULTIPLY
222 224
 
223 225
     if (feedmultiply < 10)
224 226
         feedmultiply = 10;
@@ -302,37 +304,6 @@ static void lcd_autostart_sd()
302 304
 }
303 305
 #endif
304 306
 
305
-void lcd_preheat_pla()
306
-{
307
-    setTargetHotend0(plaPreheatHotendTemp);
308
-    setTargetHotend1(plaPreheatHotendTemp);
309
-    setTargetHotend2(plaPreheatHotendTemp);
310
-    setTargetBed(plaPreheatHPBTemp);
311
-    fanSpeed = plaPreheatFanSpeed;
312
-    lcd_return_to_status();
313
-    setWatch(); // heater sanity check timer
314
-}
315
-
316
-void lcd_preheat_abs()
317
-{
318
-    setTargetHotend0(absPreheatHotendTemp);
319
-    setTargetHotend1(absPreheatHotendTemp);
320
-    setTargetHotend2(absPreheatHotendTemp);
321
-    setTargetBed(absPreheatHPBTemp);
322
-    fanSpeed = absPreheatFanSpeed;
323
-    lcd_return_to_status();
324
-    setWatch(); // heater sanity check timer
325
-}
326
-
327
-static void lcd_cooldown()
328
-{
329
-    setTargetHotend0(0);
330
-    setTargetHotend1(0);
331
-    setTargetHotend2(0);
332
-    setTargetBed(0);
333
-    lcd_return_to_status();
334
-}
335
-
336 307
 #ifdef BABYSTEPPING
337 308
 static void lcd_babystep_x()
338 309
 {
@@ -412,6 +383,13 @@ static void lcd_tune_menu()
412 383
 #endif
413 384
     MENU_ITEM_EDIT(int3, MSG_FAN_SPEED, &fanSpeed, 0, 255);
414 385
     MENU_ITEM_EDIT(int3, MSG_FLOW, &extrudemultiply, 10, 999);
386
+    MENU_ITEM_EDIT(int3, MSG_FLOW0, &extruder_multiply[0], 10, 999);
387
+#if TEMP_SENSOR_1 != 0
388
+    MENU_ITEM_EDIT(int3, MSG_FLOW1, &extruder_multiply[1], 10, 999);
389
+#endif
390
+#if TEMP_SENSOR_2 != 0
391
+    MENU_ITEM_EDIT(int3, MSG_FLOW2, &extruder_multiply[2], 10, 999);
392
+#endif
415 393
 
416 394
 #ifdef BABYSTEPPING
417 395
     #ifdef BABYSTEP_XY
@@ -426,6 +404,154 @@ static void lcd_tune_menu()
426 404
     END_MENU();
427 405
 }
428 406
 
407
+void lcd_preheat_pla0()
408
+{
409
+    setTargetHotend0(plaPreheatHotendTemp);
410
+    setTargetBed(plaPreheatHPBTemp);
411
+    fanSpeed = plaPreheatFanSpeed;
412
+    lcd_return_to_status();
413
+    setWatch(); // heater sanity check timer
414
+}
415
+
416
+void lcd_preheat_abs0()
417
+{
418
+    setTargetHotend0(absPreheatHotendTemp);
419
+    setTargetBed(absPreheatHPBTemp);
420
+    fanSpeed = absPreheatFanSpeed;
421
+    lcd_return_to_status();
422
+    setWatch(); // heater sanity check timer
423
+}
424
+
425
+#if TEMP_SENSOR_1 != 0 //2nd extruder preheat
426
+void lcd_preheat_pla1()
427
+{
428
+    setTargetHotend1(plaPreheatHotendTemp);
429
+    setTargetBed(plaPreheatHPBTemp);
430
+    fanSpeed = plaPreheatFanSpeed;
431
+    lcd_return_to_status();
432
+    setWatch(); // heater sanity check timer
433
+}
434
+
435
+void lcd_preheat_abs1()
436
+{
437
+    setTargetHotend1(absPreheatHotendTemp);
438
+    setTargetBed(absPreheatHPBTemp);
439
+    fanSpeed = absPreheatFanSpeed;
440
+    lcd_return_to_status();
441
+    setWatch(); // heater sanity check timer
442
+}
443
+#endif //2nd extruder preheat
444
+
445
+#if TEMP_SENSOR_2 != 0 //3 extruder preheat
446
+void lcd_preheat_pla2()
447
+{
448
+    setTargetHotend2(plaPreheatHotendTemp);
449
+    setTargetBed(plaPreheatHPBTemp);
450
+    fanSpeed = plaPreheatFanSpeed;
451
+    lcd_return_to_status();
452
+    setWatch(); // heater sanity check timer
453
+}
454
+
455
+void lcd_preheat_abs2()
456
+{
457
+    setTargetHotend2(absPreheatHotendTemp);
458
+    setTargetBed(absPreheatHPBTemp);
459
+    fanSpeed = absPreheatFanSpeed;
460
+    lcd_return_to_status();
461
+    setWatch(); // heater sanity check timer
462
+}
463
+#endif //3 extruder preheat
464
+
465
+#if TEMP_SENSOR_1 != 0 || TEMP_SENSOR_2 != 0 //more than one extruder present
466
+void lcd_preheat_pla012()
467
+{
468
+    setTargetHotend0(plaPreheatHotendTemp);
469
+    setTargetHotend1(plaPreheatHotendTemp);
470
+    setTargetHotend2(plaPreheatHotendTemp);
471
+    setTargetBed(plaPreheatHPBTemp);
472
+    fanSpeed = plaPreheatFanSpeed;
473
+    lcd_return_to_status();
474
+    setWatch(); // heater sanity check timer
475
+}
476
+
477
+void lcd_preheat_abs012()
478
+{
479
+    setTargetHotend0(absPreheatHotendTemp);
480
+    setTargetHotend1(absPreheatHotendTemp);
481
+    setTargetHotend2(absPreheatHotendTemp);
482
+    setTargetBed(absPreheatHPBTemp);
483
+    fanSpeed = absPreheatFanSpeed;
484
+    lcd_return_to_status();
485
+    setWatch(); // heater sanity check timer
486
+}
487
+#endif //more than one extruder present
488
+
489
+void lcd_preheat_pla_bedonly()
490
+{
491
+    setTargetBed(plaPreheatHPBTemp);
492
+    fanSpeed = plaPreheatFanSpeed;
493
+    lcd_return_to_status();
494
+    setWatch(); // heater sanity check timer
495
+}
496
+
497
+void lcd_preheat_abs_bedonly()
498
+{
499
+    setTargetBed(absPreheatHPBTemp);
500
+    fanSpeed = absPreheatFanSpeed;
501
+    lcd_return_to_status();
502
+    setWatch(); // heater sanity check timer
503
+}
504
+
505
+static void lcd_preheat_pla_menu()
506
+{
507
+    START_MENU();
508
+    MENU_ITEM(back, MSG_PREPARE, lcd_prepare_menu);
509
+    MENU_ITEM(function, MSG_PREHEAT_PLA0, lcd_preheat_pla0);
510
+#if TEMP_SENSOR_1 != 0 //2 extruder preheat
511
+    MENU_ITEM(function, MSG_PREHEAT_PLA1, lcd_preheat_pla1);
512
+#endif //2 extruder preheat
513
+#if TEMP_SENSOR_2 != 0 //3 extruder preheat
514
+    MENU_ITEM(function, MSG_PREHEAT_PLA2, lcd_preheat_pla2);
515
+#endif //3 extruder preheat
516
+#if TEMP_SENSOR_1 != 0 || TEMP_SENSOR_2 != 0 //all extruder preheat
517
+    MENU_ITEM(function, MSG_PREHEAT_PLA012, lcd_preheat_pla012);
518
+#endif //2 extruder preheat
519
+#if TEMP_SENSOR_BED != 0
520
+    MENU_ITEM(function, MSG_PREHEAT_PLA_BEDONLY, lcd_preheat_pla_bedonly);
521
+#endif
522
+    END_MENU();
523
+}
524
+
525
+static void lcd_preheat_abs_menu()
526
+{
527
+    START_MENU();
528
+    MENU_ITEM(back, MSG_PREPARE, lcd_prepare_menu);
529
+    MENU_ITEM(function, MSG_PREHEAT_ABS0, lcd_preheat_abs0);
530
+#if TEMP_SENSOR_1 != 0 //2 extruder preheat
531
+    MENU_ITEM(function, MSG_PREHEAT_ABS1, lcd_preheat_abs1);
532
+#endif //2 extruder preheat
533
+#if TEMP_SENSOR_2 != 0 //3 extruder preheat
534
+    MENU_ITEM(function, MSG_PREHEAT_ABS2, lcd_preheat_abs2);
535
+#endif //3 extruder preheat
536
+#if TEMP_SENSOR_1 != 0 || TEMP_SENSOR_2 != 0 //all extruder preheat
537
+    MENU_ITEM(function, MSG_PREHEAT_ABS012, lcd_preheat_abs012);
538
+#endif //2 extruder preheat
539
+#if TEMP_SENSOR_BED != 0
540
+    MENU_ITEM(function, MSG_PREHEAT_ABS_BEDONLY, lcd_preheat_abs_bedonly);
541
+#endif
542
+    END_MENU();
543
+}
544
+
545
+void lcd_cooldown()
546
+{
547
+    setTargetHotend0(0);
548
+    setTargetHotend1(0);
549
+    setTargetHotend2(0);
550
+    setTargetBed(0);
551
+    fanSpeed = 0;
552
+    lcd_return_to_status();
553
+}
554
+
429 555
 static void lcd_prepare_menu()
430 556
 {
431 557
     START_MENU();
@@ -438,8 +564,15 @@ static void lcd_prepare_menu()
438 564
     MENU_ITEM(gcode, MSG_DISABLE_STEPPERS, PSTR("M84"));
439 565
     MENU_ITEM(gcode, MSG_AUTO_HOME, PSTR("G28"));
440 566
     //MENU_ITEM(gcode, MSG_SET_ORIGIN, PSTR("G92 X0 Y0 Z0"));
441
-    MENU_ITEM(function, MSG_PREHEAT_PLA, lcd_preheat_pla);
442
-    MENU_ITEM(function, MSG_PREHEAT_ABS, lcd_preheat_abs);
567
+#if TEMP_SENSOR_0 != 0
568
+  #if TEMP_SENSOR_1 != 0 || TEMP_SENSOR_2 != 0 || TEMP_SENSOR_BED != 0
569
+    MENU_ITEM(submenu, MSG_PREHEAT_PLA, lcd_preheat_pla_menu);
570
+    MENU_ITEM(submenu, MSG_PREHEAT_ABS, lcd_preheat_abs_menu);
571
+  #else
572
+    MENU_ITEM(function, MSG_PREHEAT_PLA, lcd_preheat_pla0);
573
+    MENU_ITEM(function, MSG_PREHEAT_ABS, lcd_preheat_abs0);
574
+  #endif
575
+#endif
443 576
     MENU_ITEM(function, MSG_COOLDOWN, lcd_cooldown);
444 577
 #if PS_ON_PIN > -1
445 578
     if (powersupply)

正在加载...
取消
保存