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

Add option to disallow filament change without homing first

Jim Brown 7 роки тому
джерело
коміт
3d043976f7
26 змінених файлів з 30 додано та 4 видалено
  1. 1
    0
      Marlin/Configuration_adv.h
  2. 4
    4
      Marlin/Marlin_main.cpp
  3. 2
    0
      Marlin/SanityCheck.h
  4. 1
    0
      Marlin/example_configurations/Cartesio/Configuration_adv.h
  5. 1
    0
      Marlin/example_configurations/Felix/Configuration_adv.h
  6. 1
    0
      Marlin/example_configurations/FolgerTech-i3-2020/Configuration_adv.h
  7. 1
    0
      Marlin/example_configurations/Hephestos/Configuration_adv.h
  8. 1
    0
      Marlin/example_configurations/Hephestos_2/Configuration_adv.h
  9. 1
    0
      Marlin/example_configurations/K8200/Configuration_adv.h
  10. 1
    0
      Marlin/example_configurations/K8400/Configuration_adv.h
  11. 1
    0
      Marlin/example_configurations/M150/Configuration_adv.h
  12. 1
    0
      Marlin/example_configurations/RigidBot/Configuration_adv.h
  13. 1
    0
      Marlin/example_configurations/SCARA/Configuration_adv.h
  14. 1
    0
      Marlin/example_configurations/TAZ4/Configuration_adv.h
  15. 1
    0
      Marlin/example_configurations/TinyBoy2/Configuration_adv.h
  16. 1
    0
      Marlin/example_configurations/WITBOX/Configuration_adv.h
  17. 1
    0
      Marlin/example_configurations/delta/FLSUN/auto_calibrate/Configuration_adv.h
  18. 1
    0
      Marlin/example_configurations/delta/FLSUN/kossel_mini/Configuration_adv.h
  19. 1
    0
      Marlin/example_configurations/delta/generic/Configuration_adv.h
  20. 1
    0
      Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h
  21. 1
    0
      Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h
  22. 1
    0
      Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h
  23. 1
    0
      Marlin/example_configurations/gCreate_gMax1.5+/Configuration_adv.h
  24. 1
    0
      Marlin/example_configurations/makibox/Configuration_adv.h
  25. 1
    0
      Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h
  26. 1
    0
      Marlin/example_configurations/wt150/Configuration_adv.h

+ 1
- 0
Marlin/Configuration_adv.h Переглянути файл

@@ -807,6 +807,7 @@
807 807
   #define PAUSE_PARK_NO_STEPPER_TIMEOUT       // Enable to have stepper motors hold position during filament change
808 808
                                               // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
809 809
   //#define PARK_HEAD_ON_PAUSE                // Go to filament change position on pause, return to print position on resume
810
+  //#define HOME_BEFORE_FILAMENT_CHANGE       // Ensure homing has been completed prior to parking for filament change
810 811
 #endif
811 812
 
812 813
 // @section tmc

+ 4
- 4
Marlin/Marlin_main.cpp Переглянути файл

@@ -9265,10 +9265,10 @@ inline void gcode_M503() {
9265 9265
    */
9266 9266
   inline void gcode_M600() {
9267 9267
 
9268
-    // Don't allow filament change without homing first
9269
-    if (axis_unhomed_error()) {
9270
-        home_all_axes();
9271
-    }
9268
+    #if ENABLED(HOME_BEFORE_FILAMENT_CHANGE)
9269
+      // Don't allow filament change without homing first
9270
+      if (axis_unhomed_error()) home_all_axes();
9271
+    #endif
9272 9272
 
9273 9273
     // Initial retract before move to filament change position
9274 9274
     const float retract = parser.seen('E') ? parser.value_axis_units(E_AXIS) : 0

+ 2
- 0
Marlin/SanityCheck.h Переглянути файл

@@ -321,6 +321,8 @@
321 321
     #error "EXTRUDER_RUNOUT_PREVENT is incompatible with ADVANCED_PAUSE_FEATURE."
322 322
   #elif ENABLED(PARK_HEAD_ON_PAUSE) && DISABLED(SDSUPPORT) && DISABLED(NEWPANEL) && DISABLED(EMERGENCY_PARSER)
323 323
     #error "PARK_HEAD_ON_PAUSE requires SDSUPPORT, EMERGENCY_PARSER, or an LCD controller."
324
+  #elif ENABLED(HOME_BEFORE_FILAMENT_CHANGE) && DISABLED(PAUSE_PARK_NO_STEPPER_TIMEOUT)
325
+    #error "HOME_BEFORE_FILAMENT_CHANGE requires PAUSE_PARK_NO_STEPPER_TIMEOUT"
324 326
   #endif
325 327
 #endif
326 328
 

+ 1
- 0
Marlin/example_configurations/Cartesio/Configuration_adv.h Переглянути файл

@@ -800,6 +800,7 @@
800 800
   #define PAUSE_PARK_NO_STEPPER_TIMEOUT       // Enable to have stepper motors hold position during filament change
801 801
                                               // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
802 802
   //#define PARK_HEAD_ON_PAUSE                // Go to filament change position on pause, return to print position on resume
803
+  //#define HOME_BEFORE_FILAMENT_CHANGE       // Ensure homing has been completed prior to parking for filament change
803 804
 #endif
804 805
 
805 806
 // @section tmc

+ 1
- 0
Marlin/example_configurations/Felix/Configuration_adv.h Переглянути файл

@@ -800,6 +800,7 @@
800 800
   #define PAUSE_PARK_NO_STEPPER_TIMEOUT       // Enable to have stepper motors hold position during filament change
801 801
                                               // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
802 802
   //#define PARK_HEAD_ON_PAUSE                // Go to filament change position on pause, return to print position on resume
803
+  //#define HOME_BEFORE_FILAMENT_CHANGE       // Ensure homing has been completed prior to parking for filament change
803 804
 #endif
804 805
 
805 806
 // @section tmc

+ 1
- 0
Marlin/example_configurations/FolgerTech-i3-2020/Configuration_adv.h Переглянути файл

@@ -809,6 +809,7 @@
809 809
   #define PAUSE_PARK_NO_STEPPER_TIMEOUT       // Enable to have stepper motors hold position during filament change
810 810
                                               // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
811 811
   #define PARK_HEAD_ON_PAUSE                  // Go to filament change position on pause, return to print position on resume
812
+  //#define HOME_BEFORE_FILAMENT_CHANGE       // Ensure homing has been completed prior to parking for filament change
812 813
 #endif
813 814
 
814 815
 // @section tmc

+ 1
- 0
Marlin/example_configurations/Hephestos/Configuration_adv.h Переглянути файл

@@ -800,6 +800,7 @@
800 800
   #define PAUSE_PARK_NO_STEPPER_TIMEOUT       // Enable to have stepper motors hold position during filament change
801 801
                                               // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
802 802
   //#define PARK_HEAD_ON_PAUSE                // Go to filament change position on pause, return to print position on resume
803
+  //#define HOME_BEFORE_FILAMENT_CHANGE       // Ensure homing has been completed prior to parking for filament change
803 804
 #endif
804 805
 
805 806
 // @section tmc

+ 1
- 0
Marlin/example_configurations/Hephestos_2/Configuration_adv.h Переглянути файл

@@ -783,6 +783,7 @@
783 783
   #define PAUSE_PARK_NO_STEPPER_TIMEOUT       // Enable to have stepper motors hold position during filament change
784 784
                                               // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
785 785
   //#define PARK_HEAD_ON_PAUSE                // Go to filament change position on pause, return to print position on resume
786
+  //#define HOME_BEFORE_FILAMENT_CHANGE       // Ensure homing has been completed prior to parking for filament change
786 787
 #endif
787 788
 
788 789
 // @section tmc

+ 1
- 0
Marlin/example_configurations/K8200/Configuration_adv.h Переглянути файл

@@ -813,6 +813,7 @@
813 813
   #define PAUSE_PARK_NO_STEPPER_TIMEOUT       // Enable to have stepper motors hold position during filament change
814 814
                                               // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
815 815
   //#define PARK_HEAD_ON_PAUSE                // Go to filament change position on pause, return to print position on resume
816
+  //#define HOME_BEFORE_FILAMENT_CHANGE       // Ensure homing has been completed prior to parking for filament change
816 817
 #endif
817 818
 
818 819
 // @section tmc

+ 1
- 0
Marlin/example_configurations/K8400/Configuration_adv.h Переглянути файл

@@ -800,6 +800,7 @@
800 800
   #define PAUSE_PARK_NO_STEPPER_TIMEOUT       // Enable to have stepper motors hold position during filament change
801 801
                                               // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
802 802
   //#define PARK_HEAD_ON_PAUSE                // Go to filament change position on pause, return to print position on resume
803
+  //#define HOME_BEFORE_FILAMENT_CHANGE       // Ensure homing has been completed prior to parking for filament change
803 804
 #endif
804 805
 
805 806
 // @section tmc

+ 1
- 0
Marlin/example_configurations/M150/Configuration_adv.h Переглянути файл

@@ -807,6 +807,7 @@
807 807
   #define PAUSE_PARK_NO_STEPPER_TIMEOUT       // Enable to have stepper motors hold position during filament change
808 808
                                               // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
809 809
   //#define PARK_HEAD_ON_PAUSE                // Go to filament change position on pause, return to print position on resume
810
+  //#define HOME_BEFORE_FILAMENT_CHANGE       // Ensure homing has been completed prior to parking for filament change
810 811
 #endif
811 812
 
812 813
 // @section tmc

+ 1
- 0
Marlin/example_configurations/RigidBot/Configuration_adv.h Переглянути файл

@@ -800,6 +800,7 @@
800 800
   #define PAUSE_PARK_NO_STEPPER_TIMEOUT       // Enable to have stepper motors hold position during filament change
801 801
                                               // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
802 802
   //#define PARK_HEAD_ON_PAUSE                // Go to filament change position on pause, return to print position on resume
803
+  //#define HOME_BEFORE_FILAMENT_CHANGE       // Ensure homing has been completed prior to parking for filament change
803 804
 #endif
804 805
 
805 806
 // @section tmc

+ 1
- 0
Marlin/example_configurations/SCARA/Configuration_adv.h Переглянути файл

@@ -800,6 +800,7 @@
800 800
   #define PAUSE_PARK_NO_STEPPER_TIMEOUT       // Enable to have stepper motors hold position during filament change
801 801
                                               // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
802 802
   //#define PARK_HEAD_ON_PAUSE                // Go to filament change position on pause, return to print position on resume
803
+  //#define HOME_BEFORE_FILAMENT_CHANGE       // Ensure homing has been completed prior to parking for filament change
803 804
 #endif
804 805
 
805 806
 // @section tmc

+ 1
- 0
Marlin/example_configurations/TAZ4/Configuration_adv.h Переглянути файл

@@ -800,6 +800,7 @@
800 800
   #define PAUSE_PARK_NO_STEPPER_TIMEOUT       // Enable to have stepper motors hold position during filament change
801 801
                                               // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
802 802
   //#define PARK_HEAD_ON_PAUSE                // Go to filament change position on pause, return to print position on resume
803
+  //#define HOME_BEFORE_FILAMENT_CHANGE       // Ensure homing has been completed prior to parking for filament change
803 804
 #endif
804 805
 
805 806
 // @section tmc

+ 1
- 0
Marlin/example_configurations/TinyBoy2/Configuration_adv.h Переглянути файл

@@ -803,6 +803,7 @@
803 803
   #define PAUSE_PARK_NO_STEPPER_TIMEOUT       // Enable to have stepper motors hold position during filament change
804 804
                                               // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
805 805
   //#define PARK_HEAD_ON_PAUSE                // Go to filament change position on pause, return to print position on resume
806
+  //#define HOME_BEFORE_FILAMENT_CHANGE       // Ensure homing has been completed prior to parking for filament change
806 807
 #endif
807 808
 
808 809
 // @section tmc

+ 1
- 0
Marlin/example_configurations/WITBOX/Configuration_adv.h Переглянути файл

@@ -800,6 +800,7 @@
800 800
   #define PAUSE_PARK_NO_STEPPER_TIMEOUT       // Enable to have stepper motors hold position during filament change
801 801
                                               // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
802 802
   //#define PARK_HEAD_ON_PAUSE                // Go to filament change position on pause, return to print position on resume
803
+  //#define HOME_BEFORE_FILAMENT_CHANGE       // Ensure homing has been completed prior to parking for filament change
803 804
 #endif
804 805
 
805 806
 // @section tmc

+ 1
- 0
Marlin/example_configurations/delta/FLSUN/auto_calibrate/Configuration_adv.h Переглянути файл

@@ -805,6 +805,7 @@
805 805
   #define PAUSE_PARK_NO_STEPPER_TIMEOUT       // Enable to have stepper motors hold position during filament change
806 806
                                               // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
807 807
   //#define PARK_HEAD_ON_PAUSE                // Go to filament change position on pause, return to print position on resume
808
+  //#define HOME_BEFORE_FILAMENT_CHANGE       // Ensure homing has been completed prior to parking for filament change
808 809
 #endif
809 810
 
810 811
 // @section tmc

+ 1
- 0
Marlin/example_configurations/delta/FLSUN/kossel_mini/Configuration_adv.h Переглянути файл

@@ -804,6 +804,7 @@
804 804
   #define PAUSE_PARK_NO_STEPPER_TIMEOUT       // Enable to have stepper motors hold position during filament change
805 805
                                               // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
806 806
   //#define PARK_HEAD_ON_PAUSE                // Go to filament change position on pause, return to print position on resume
807
+  //#define HOME_BEFORE_FILAMENT_CHANGE       // Ensure homing has been completed prior to parking for filament change
807 808
 #endif
808 809
 
809 810
 // @section tmc

+ 1
- 0
Marlin/example_configurations/delta/generic/Configuration_adv.h Переглянути файл

@@ -802,6 +802,7 @@
802 802
   #define PAUSE_PARK_NO_STEPPER_TIMEOUT       // Enable to have stepper motors hold position during filament change
803 803
                                               // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
804 804
   //#define PARK_HEAD_ON_PAUSE                // Go to filament change position on pause, return to print position on resume
805
+  //#define HOME_BEFORE_FILAMENT_CHANGE       // Ensure homing has been completed prior to parking for filament change
805 806
 #endif
806 807
 
807 808
 // @section tmc

+ 1
- 0
Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h Переглянути файл

@@ -802,6 +802,7 @@
802 802
   #define PAUSE_PARK_NO_STEPPER_TIMEOUT       // Enable to have stepper motors hold position during filament change
803 803
                                               // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
804 804
   //#define PARK_HEAD_ON_PAUSE                // Go to filament change position on pause, return to print position on resume
805
+  //#define HOME_BEFORE_FILAMENT_CHANGE       // Ensure homing has been completed prior to parking for filament change
805 806
 #endif
806 807
 
807 808
 // @section tmc

+ 1
- 0
Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h Переглянути файл

@@ -807,6 +807,7 @@
807 807
   #define PAUSE_PARK_NO_STEPPER_TIMEOUT       // Enable to have stepper motors hold position during filament change
808 808
                                               // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
809 809
   //#define PARK_HEAD_ON_PAUSE                // Go to filament change position on pause, return to print position on resume
810
+  //#define HOME_BEFORE_FILAMENT_CHANGE       // Ensure homing has been completed prior to parking for filament change
810 811
 #endif
811 812
 
812 813
 // @section tmc

+ 1
- 0
Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h Переглянути файл

@@ -802,6 +802,7 @@
802 802
   #define PAUSE_PARK_NO_STEPPER_TIMEOUT       // Enable to have stepper motors hold position during filament change
803 803
                                               // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
804 804
   //#define PARK_HEAD_ON_PAUSE                // Go to filament change position on pause, return to print position on resume
805
+  //#define HOME_BEFORE_FILAMENT_CHANGE       // Ensure homing has been completed prior to parking for filament change
805 806
 #endif
806 807
 
807 808
 // @section tmc

+ 1
- 0
Marlin/example_configurations/gCreate_gMax1.5+/Configuration_adv.h Переглянути файл

@@ -809,6 +809,7 @@
809 809
   #define PAUSE_PARK_NO_STEPPER_TIMEOUT       // Enable to have stepper motors hold position during filament change
810 810
                                               // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
811 811
   #define PARK_HEAD_ON_PAUSE                  // Go to filament change position on pause, return to print position on resume
812
+  //#define HOME_BEFORE_FILAMENT_CHANGE       // Ensure homing has been completed prior to parking for filament change
812 813
 #endif
813 814
 
814 815
 // @section tmc

+ 1
- 0
Marlin/example_configurations/makibox/Configuration_adv.h Переглянути файл

@@ -800,6 +800,7 @@
800 800
   #define PAUSE_PARK_NO_STEPPER_TIMEOUT       // Enable to have stepper motors hold position during filament change
801 801
                                               // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
802 802
   //#define PARK_HEAD_ON_PAUSE                // Go to filament change position on pause, return to print position on resume
803
+  //#define HOME_BEFORE_FILAMENT_CHANGE       // Ensure homing has been completed prior to parking for filament change
803 804
 #endif
804 805
 
805 806
 // @section tmc

+ 1
- 0
Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h Переглянути файл

@@ -800,6 +800,7 @@
800 800
   #define PAUSE_PARK_NO_STEPPER_TIMEOUT       // Enable to have stepper motors hold position during filament change
801 801
                                               // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
802 802
   //#define PARK_HEAD_ON_PAUSE                // Go to filament change position on pause, return to print position on resume
803
+  //#define HOME_BEFORE_FILAMENT_CHANGE       // Ensure homing has been completed prior to parking for filament change
803 804
 #endif
804 805
 
805 806
 // @section tmc

+ 1
- 0
Marlin/example_configurations/wt150/Configuration_adv.h Переглянути файл

@@ -803,6 +803,7 @@
803 803
   #define PAUSE_PARK_NO_STEPPER_TIMEOUT       // Enable to have stepper motors hold position during filament change
804 804
                                               // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
805 805
   //#define PARK_HEAD_ON_PAUSE                // Go to filament change position on pause, return to print position on resume
806
+  //#define HOME_BEFORE_FILAMENT_CHANGE       // Ensure homing has been completed prior to parking for filament change
806 807
 #endif
807 808
 
808 809
 // @section tmc

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