Browse Source

Merge pull request #8596 from thinkyhead/bf1_cartesian_segments

[1.1.x] Segmented mesh moves
Scott Lahteine 7 years ago
parent
commit
83ab68b36f
No account linked to committer's email address
41 changed files with 291 additions and 20 deletions
  1. 5
    1
      Marlin/Conditionals_post.h
  2. 5
    0
      Marlin/Configuration.h
  3. 94
    19
      Marlin/Marlin_main.cpp
  4. 2
    0
      Marlin/SanityCheck.h
  5. 5
    0
      Marlin/example_configurations/AlephObjects/TAZ4/Configuration.h
  6. 5
    0
      Marlin/example_configurations/AliExpress/CL-260/Configuration.h
  7. 5
    0
      Marlin/example_configurations/Anet/A6/Configuration.h
  8. 5
    0
      Marlin/example_configurations/Anet/A8/Configuration.h
  9. 5
    0
      Marlin/example_configurations/BQ/Hephestos/Configuration.h
  10. 5
    0
      Marlin/example_configurations/BQ/Hephestos_2/Configuration.h
  11. 5
    0
      Marlin/example_configurations/BQ/WITBOX/Configuration.h
  12. 5
    0
      Marlin/example_configurations/Cartesio/Configuration.h
  13. 5
    0
      Marlin/example_configurations/Creality/CR-10/Configuration.h
  14. 5
    0
      Marlin/example_configurations/Felix/Configuration.h
  15. 5
    0
      Marlin/example_configurations/Felix/DUAL/Configuration.h
  16. 5
    0
      Marlin/example_configurations/FolgerTech/i3-2020/Configuration.h
  17. 5
    0
      Marlin/example_configurations/Geeetech/GT2560/Configuration.h
  18. 5
    0
      Marlin/example_configurations/Geeetech/I3_Pro_X-GT2560/Configuration.h
  19. 5
    0
      Marlin/example_configurations/Infitary/i3-M508/Configuration.h
  20. 5
    0
      Marlin/example_configurations/Malyan/M150/Configuration.h
  21. 5
    0
      Marlin/example_configurations/Micromake/C1/basic/Configuration.h
  22. 5
    0
      Marlin/example_configurations/Micromake/C1/enhanced/Configuration.h
  23. 5
    0
      Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h
  24. 5
    0
      Marlin/example_configurations/RigidBot/Configuration.h
  25. 5
    0
      Marlin/example_configurations/SCARA/Configuration.h
  26. 5
    0
      Marlin/example_configurations/Sanguinololu/Configuration.h
  27. 5
    0
      Marlin/example_configurations/TinyBoy2/Configuration.h
  28. 5
    0
      Marlin/example_configurations/Velleman/K8200/Configuration.h
  29. 5
    0
      Marlin/example_configurations/Velleman/K8400/Configuration.h
  30. 5
    0
      Marlin/example_configurations/Velleman/K8400/Dual-head/Configuration.h
  31. 5
    0
      Marlin/example_configurations/adafruit/ST7565/Configuration.h
  32. 5
    0
      Marlin/example_configurations/delta/FLSUN/auto_calibrate/Configuration.h
  33. 5
    0
      Marlin/example_configurations/delta/FLSUN/kossel_mini/Configuration.h
  34. 5
    0
      Marlin/example_configurations/delta/generic/Configuration.h
  35. 5
    0
      Marlin/example_configurations/delta/kossel_mini/Configuration.h
  36. 5
    0
      Marlin/example_configurations/delta/kossel_pro/Configuration.h
  37. 5
    0
      Marlin/example_configurations/delta/kossel_xl/Configuration.h
  38. 5
    0
      Marlin/example_configurations/gCreate/gMax1.5+/Configuration.h
  39. 5
    0
      Marlin/example_configurations/makibox/Configuration.h
  40. 5
    0
      Marlin/example_configurations/tvrrug/Round2/Configuration.h
  41. 5
    0
      Marlin/example_configurations/wt150/Configuration.h

+ 5
- 1
Marlin/Conditionals_post.h View File

@@ -890,7 +890,7 @@
890 890
   /**
891 891
    * Set granular options based on the specific type of leveling
892 892
    */
893
-  #define UBL_DELTA  (ENABLED(AUTO_BED_LEVELING_UBL) && (ENABLED(DELTA) || ENABLED(UBL_GRANULAR_SEGMENTATION_FOR_CARTESIAN)))
893
+  #define UBL_DELTA  (ENABLED(AUTO_BED_LEVELING_UBL) && (ENABLED(DELTA) || ENABLED(SEGMENT_LEVELED_MOVES)))
894 894
   #define ABL_PLANAR (ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_3POINT))
895 895
   #define ABL_GRID   (ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR))
896 896
   #define OLDSCHOOL_ABL         (ABL_PLANAR || ABL_GRID)
@@ -905,6 +905,10 @@
905 905
     #define PROBE_BED_HEIGHT abs(BACK_PROBE_BED_POSITION - (FRONT_PROBE_BED_POSITION))
906 906
   #endif
907 907
 
908
+  #if ENABLED(SEGMENT_LEVELED_MOVES) && !defined(LEVELED_SEGMENT_LENGTH)
909
+    #define LEVELED_SEGMENT_LENGTH 5
910
+  #endif
911
+
908 912
   /**
909 913
    * Bed Probing rectangular bounds
910 914
    * These can be further constrained in code for Delta and SCARA

+ 5
- 0
Marlin/Configuration.h View File

@@ -891,6 +891,11 @@
891 891
   // The height can be set with M420 Z<height>
892 892
   #define ENABLE_LEVELING_FADE_HEIGHT
893 893
 
894
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
895
+  // split up moves into short segments like a Delta.
896
+  #define SEGMENT_LEVELED_MOVES
897
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
898
+
894 899
   /**
895 900
    * Enable the G26 Mesh Validation Pattern tool.
896 901
    */

+ 94
- 19
Marlin/Marlin_main.cpp View File

@@ -12531,7 +12531,81 @@ void set_current_from_steppers_for_axis(const AxisEnum axis) {
12531 12531
     current_position[axis] = cartes[axis];
12532 12532
 }
12533 12533
 
12534
-#if ENABLED(MESH_BED_LEVELING)
12534
+#if IS_CARTESIAN
12535
+#if ENABLED(SEGMENT_LEVELED_MOVES)
12536
+
12537
+  /**
12538
+   * Prepare a segmented move on a CARTESIAN setup.
12539
+   *
12540
+   * This calls planner.buffer_line several times, adding
12541
+   * small incremental moves. This allows the planner to
12542
+   * apply more detailed bed leveling to the full move.
12543
+   */
12544
+  inline void segmented_line_to_destination(const float fr_mm_s, const float segment_size=LEVELED_SEGMENT_LENGTH) {
12545
+
12546
+    const float xdiff = destination[X_AXIS] - current_position[X_AXIS],
12547
+                ydiff = destination[Y_AXIS] - current_position[Y_AXIS];
12548
+
12549
+    // If the move is only in Z/E don't split up the move
12550
+    if (!xdiff && !ydiff) {
12551
+      planner.buffer_line_kinematic(destination, fr_mm_s, active_extruder);
12552
+      return;
12553
+    }
12554
+
12555
+    // Remaining cartesian distances
12556
+    const float zdiff = destination[Z_AXIS] - current_position[Z_AXIS],
12557
+                ediff = destination[E_AXIS] - current_position[E_AXIS];
12558
+
12559
+    // Get the linear distance in XYZ
12560
+    // If the move is very short, check the E move distance
12561
+    // No E move either? Game over.
12562
+    float cartesian_mm = SQRT(sq(xdiff) + sq(ydiff) + sq(zdiff));
12563
+    if (UNEAR_ZERO(cartesian_mm)) cartesian_mm = FABS(ediff);
12564
+    if (UNEAR_ZERO(cartesian_mm)) return;
12565
+
12566
+    // The length divided by the segment size
12567
+    // At least one segment is required
12568
+    uint16_t segments = cartesian_mm / segment_size;
12569
+    NOLESS(segments, 1);
12570
+
12571
+    // The approximate length of each segment
12572
+    const float inv_segments = 1.0 / float(segments),
12573
+                segment_distance[XYZE] = {
12574
+                  xdiff * inv_segments,
12575
+                  ydiff * inv_segments,
12576
+                  zdiff * inv_segments,
12577
+                  ediff * inv_segments
12578
+                };
12579
+
12580
+    // SERIAL_ECHOPAIR("mm=", cartesian_mm);
12581
+    // SERIAL_ECHOLNPAIR(" segments=", segments);
12582
+
12583
+    // Drop one segment so the last move is to the exact target.
12584
+    // If there's only 1 segment, loops will be skipped entirely.
12585
+    --segments;
12586
+
12587
+    // Get the raw current position as starting point
12588
+    float raw[XYZE];
12589
+    COPY(raw, current_position);
12590
+
12591
+    // Calculate and execute the segments
12592
+    for (uint16_t s = segments + 1; --s;) {
12593
+      static millis_t next_idle_ms = millis() + 200UL;
12594
+      thermalManager.manage_heater();  // This returns immediately if not really needed.
12595
+      if (ELAPSED(millis(), next_idle_ms)) {
12596
+        next_idle_ms = millis() + 200UL;
12597
+        idle();
12598
+      }
12599
+      LOOP_XYZE(i) raw[i] += segment_distance[i];
12600
+      planner.buffer_line_kinematic(raw, fr_mm_s, active_extruder);
12601
+    }
12602
+
12603
+    // Since segment_distance is only approximate,
12604
+    // the final move must be to the exact destination.
12605
+    planner.buffer_line_kinematic(destination, fr_mm_s, active_extruder);
12606
+  }
12607
+
12608
+#elif ENABLED(MESH_BED_LEVELING)
12535 12609
 
12536 12610
   /**
12537 12611
    * Prepare a mesh-leveled linear move in a Cartesian setup,
@@ -12592,7 +12666,7 @@ void set_current_from_steppers_for_axis(const AxisEnum axis) {
12592 12666
     mesh_line_to_destination(fr_mm_s, x_splits, y_splits);
12593 12667
   }
12594 12668
 
12595
-#elif ENABLED(AUTO_BED_LEVELING_BILINEAR) && !IS_KINEMATIC
12669
+#elif ENABLED(AUTO_BED_LEVELING_BILINEAR)
12596 12670
 
12597 12671
   #define CELL_INDEX(A,V) ((V - bilinear_start[A##_AXIS]) * ABL_BG_FACTOR(A##_AXIS))
12598 12672
 
@@ -12656,6 +12730,7 @@ void set_current_from_steppers_for_axis(const AxisEnum axis) {
12656 12730
   }
12657 12731
 
12658 12732
 #endif // AUTO_BED_LEVELING_BILINEAR
12733
+#endif // IS_CARTESIAN
12659 12734
 
12660 12735
 #if !UBL_DELTA
12661 12736
 #if IS_KINEMATIC
@@ -12674,8 +12749,11 @@ void set_current_from_steppers_for_axis(const AxisEnum axis) {
12674 12749
     // Get the top feedrate of the move in the XY plane
12675 12750
     const float _feedrate_mm_s = MMS_SCALED(feedrate_mm_s);
12676 12751
 
12752
+    const float xdiff = rtarget[X_AXIS] - current_position[X_AXIS],
12753
+                ydiff = rtarget[Y_AXIS] - current_position[Y_AXIS];
12754
+
12677 12755
     // If the move is only in Z/E don't split up the move
12678
-    if (rtarget[X_AXIS] == current_position[X_AXIS] && rtarget[Y_AXIS] == current_position[Y_AXIS]) {
12756
+    if (!xdiff && !ydiff) {
12679 12757
       planner.buffer_line_kinematic(rtarget, _feedrate_mm_s, active_extruder);
12680 12758
       return false;
12681 12759
     }
@@ -12683,21 +12761,15 @@ void set_current_from_steppers_for_axis(const AxisEnum axis) {
12683 12761
     // Fail if attempting move outside printable radius
12684 12762
     if (!position_is_reachable(rtarget[X_AXIS], rtarget[Y_AXIS])) return true;
12685 12763
 
12686
-    // Get the cartesian distances moved in XYZE
12687
-    const float difference[XYZE] = {
12688
-      rtarget[X_AXIS] - current_position[X_AXIS],
12689
-      rtarget[Y_AXIS] - current_position[Y_AXIS],
12690
-      rtarget[Z_AXIS] - current_position[Z_AXIS],
12691
-      rtarget[E_AXIS] - current_position[E_AXIS]
12692
-    };
12764
+    // Remaining cartesian distances
12765
+    const float zdiff = rtarget[Z_AXIS] - current_position[Z_AXIS],
12766
+                ediff = rtarget[E_AXIS] - current_position[E_AXIS];
12693 12767
 
12694 12768
     // Get the linear distance in XYZ
12695
-    float cartesian_mm = SQRT(sq(difference[X_AXIS]) + sq(difference[Y_AXIS]) + sq(difference[Z_AXIS]));
12696
-
12697 12769
     // If the move is very short, check the E move distance
12698
-    if (UNEAR_ZERO(cartesian_mm)) cartesian_mm = FABS(difference[E_AXIS]);
12699
-
12700 12770
     // No E move either? Game over.
12771
+    float cartesian_mm = SQRT(sq(xdiff) + sq(ydiff) + sq(zdiff));
12772
+    if (UNEAR_ZERO(cartesian_mm)) cartesian_mm = FABS(ediff);
12701 12773
     if (UNEAR_ZERO(cartesian_mm)) return true;
12702 12774
 
12703 12775
     // Minimum number of seconds to move the given distance
@@ -12718,10 +12790,10 @@ void set_current_from_steppers_for_axis(const AxisEnum axis) {
12718 12790
     // The approximate length of each segment
12719 12791
     const float inv_segments = 1.0 / float(segments),
12720 12792
                 segment_distance[XYZE] = {
12721
-                  difference[X_AXIS] * inv_segments,
12722
-                  difference[Y_AXIS] * inv_segments,
12723
-                  difference[Z_AXIS] * inv_segments,
12724
-                  difference[E_AXIS] * inv_segments
12793
+                  xdiff * inv_segments,
12794
+                  ydiff * inv_segments,
12795
+                  zdiff * inv_segments,
12796
+                  ediff * inv_segments
12725 12797
                 };
12726 12798
 
12727 12799
     // SERIAL_ECHOPAIR("mm=", cartesian_mm);
@@ -12806,10 +12878,13 @@ void set_current_from_steppers_for_axis(const AxisEnum axis) {
12806 12878
    */
12807 12879
   inline bool prepare_move_to_destination_cartesian() {
12808 12880
     #if HAS_MESH
12809
-      if (planner.leveling_active) {
12881
+      if (planner.leveling_active && planner.leveling_active_at_z(destination[Z_AXIS])) {
12810 12882
         #if ENABLED(AUTO_BED_LEVELING_UBL)
12811 12883
           ubl.line_to_destination_cartesian(MMS_SCALED(feedrate_mm_s), active_extruder);  // UBL's motion routine needs to know about
12812 12884
           return true;                                                                    // all moves, including Z-only moves.
12885
+        #elif ENABLED(SEGMENT_LEVELED_MOVES)
12886
+          segmented_line_to_destination(MMS_SCALED(feedrate_mm_s));
12887
+          return false;
12813 12888
         #else
12814 12889
           /**
12815 12890
            * For MBL and ABL-BILINEAR only segment moves when X or Y are involved.

+ 2
- 0
Marlin/SanityCheck.h View File

@@ -220,6 +220,8 @@
220 220
   #error "ENABLE_MESH_EDIT_GFX_OVERLAY is now MESH_EDIT_GFX_OVERLAY. Please update your configuration."
221 221
 #elif defined(BABYSTEP_ZPROBE_GFX_REVERSE)
222 222
   #error "BABYSTEP_ZPROBE_GFX_REVERSE is now set by OVERLAY_GFX_REVERSE. Please update your configurations."
223
+#elif defined(UBL_GRANULAR_SEGMENTATION_FOR_CARTESIAN)
224
+  #error "UBL_GRANULAR_SEGMENTATION_FOR_CARTESIAN is now SEGMENT_LEVELED_MOVES. Please update your configuration."
223 225
 #endif
224 226
 
225 227
 /**

+ 5
- 0
Marlin/example_configurations/AlephObjects/TAZ4/Configuration.h View File

@@ -911,6 +911,11 @@
911 911
   // The height can be set with M420 Z<height>
912 912
   #define ENABLE_LEVELING_FADE_HEIGHT
913 913
 
914
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
915
+  // split up moves into short segments like a Delta.
916
+  #define SEGMENT_LEVELED_MOVES
917
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
918
+
914 919
   /**
915 920
    * Enable the G26 Mesh Validation Pattern tool.
916 921
    */

+ 5
- 0
Marlin/example_configurations/AliExpress/CL-260/Configuration.h View File

@@ -891,6 +891,11 @@
891 891
   // The height can be set with M420 Z<height>
892 892
   #define ENABLE_LEVELING_FADE_HEIGHT
893 893
 
894
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
895
+  // split up moves into short segments like a Delta.
896
+  #define SEGMENT_LEVELED_MOVES
897
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
898
+
894 899
   /**
895 900
    * Enable the G26 Mesh Validation Pattern tool.
896 901
    */

+ 5
- 0
Marlin/example_configurations/Anet/A6/Configuration.h View File

@@ -1010,6 +1010,11 @@
1010 1010
   // The height can be set with M420 Z<height>
1011 1011
   #define ENABLE_LEVELING_FADE_HEIGHT
1012 1012
 
1013
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
1014
+  // split up moves into short segments like a Delta.
1015
+  #define SEGMENT_LEVELED_MOVES
1016
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
1017
+
1013 1018
   /**
1014 1019
    * Enable the G26 Mesh Validation Pattern tool.
1015 1020
    */

+ 5
- 0
Marlin/example_configurations/Anet/A8/Configuration.h View File

@@ -898,6 +898,11 @@
898 898
   // The height can be set with M420 Z<height>
899 899
   #define ENABLE_LEVELING_FADE_HEIGHT
900 900
 
901
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
902
+  // split up moves into short segments like a Delta.
903
+  #define SEGMENT_LEVELED_MOVES
904
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
905
+
901 906
   /**
902 907
    * Enable the G26 Mesh Validation Pattern tool.
903 908
    */

+ 5
- 0
Marlin/example_configurations/BQ/Hephestos/Configuration.h View File

@@ -882,6 +882,11 @@
882 882
   // The height can be set with M420 Z<height>
883 883
   #define ENABLE_LEVELING_FADE_HEIGHT
884 884
 
885
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
886
+  // split up moves into short segments like a Delta.
887
+  #define SEGMENT_LEVELED_MOVES
888
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
889
+
885 890
   /**
886 891
    * Enable the G26 Mesh Validation Pattern tool.
887 892
    */

+ 5
- 0
Marlin/example_configurations/BQ/Hephestos_2/Configuration.h View File

@@ -892,6 +892,11 @@
892 892
   // The height can be set with M420 Z<height>
893 893
   #define ENABLE_LEVELING_FADE_HEIGHT
894 894
 
895
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
896
+  // split up moves into short segments like a Delta.
897
+  #define SEGMENT_LEVELED_MOVES
898
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
899
+
895 900
   /**
896 901
    * Enable the G26 Mesh Validation Pattern tool.
897 902
    */

+ 5
- 0
Marlin/example_configurations/BQ/WITBOX/Configuration.h View File

@@ -882,6 +882,11 @@
882 882
   // The height can be set with M420 Z<height>
883 883
   #define ENABLE_LEVELING_FADE_HEIGHT
884 884
 
885
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
886
+  // split up moves into short segments like a Delta.
887
+  #define SEGMENT_LEVELED_MOVES
888
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
889
+
885 890
   /**
886 891
    * Enable the G26 Mesh Validation Pattern tool.
887 892
    */

+ 5
- 0
Marlin/example_configurations/Cartesio/Configuration.h View File

@@ -890,6 +890,11 @@
890 890
   // The height can be set with M420 Z<height>
891 891
   #define ENABLE_LEVELING_FADE_HEIGHT
892 892
 
893
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
894
+  // split up moves into short segments like a Delta.
895
+  #define SEGMENT_LEVELED_MOVES
896
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
897
+
893 898
   /**
894 899
    * Enable the G26 Mesh Validation Pattern tool.
895 900
    */

+ 5
- 0
Marlin/example_configurations/Creality/CR-10/Configuration.h View File

@@ -901,6 +901,11 @@
901 901
   // The height can be set with M420 Z<height>
902 902
   #define ENABLE_LEVELING_FADE_HEIGHT
903 903
 
904
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
905
+  // split up moves into short segments like a Delta.
906
+  #define SEGMENT_LEVELED_MOVES
907
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
908
+
904 909
   /**
905 910
    * Enable the G26 Mesh Validation Pattern tool.
906 911
    */

+ 5
- 0
Marlin/example_configurations/Felix/Configuration.h View File

@@ -873,6 +873,11 @@
873 873
   // The height can be set with M420 Z<height>
874 874
   #define ENABLE_LEVELING_FADE_HEIGHT
875 875
 
876
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
877
+  // split up moves into short segments like a Delta.
878
+  #define SEGMENT_LEVELED_MOVES
879
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
880
+
876 881
   /**
877 882
    * Enable the G26 Mesh Validation Pattern tool.
878 883
    */

+ 5
- 0
Marlin/example_configurations/Felix/DUAL/Configuration.h View File

@@ -873,6 +873,11 @@
873 873
   // The height can be set with M420 Z<height>
874 874
   #define ENABLE_LEVELING_FADE_HEIGHT
875 875
 
876
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
877
+  // split up moves into short segments like a Delta.
878
+  #define SEGMENT_LEVELED_MOVES
879
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
880
+
876 881
   /**
877 882
    * Enable the G26 Mesh Validation Pattern tool.
878 883
    */

+ 5
- 0
Marlin/example_configurations/FolgerTech/i3-2020/Configuration.h View File

@@ -894,6 +894,11 @@
894 894
   // The height can be set with M420 Z<height>
895 895
   #define ENABLE_LEVELING_FADE_HEIGHT
896 896
 
897
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
898
+  // split up moves into short segments like a Delta.
899
+  #define SEGMENT_LEVELED_MOVES
900
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
901
+
897 902
   /**
898 903
    * Enable the G26 Mesh Validation Pattern tool.
899 904
    */

+ 5
- 0
Marlin/example_configurations/Geeetech/GT2560/Configuration.h View File

@@ -906,6 +906,11 @@
906 906
   // The height can be set with M420 Z<height>
907 907
   #define ENABLE_LEVELING_FADE_HEIGHT
908 908
 
909
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
910
+  // split up moves into short segments like a Delta.
911
+  #define SEGMENT_LEVELED_MOVES
912
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
913
+
909 914
   /**
910 915
    * Enable the G26 Mesh Validation Pattern tool.
911 916
    */

+ 5
- 0
Marlin/example_configurations/Geeetech/I3_Pro_X-GT2560/Configuration.h View File

@@ -891,6 +891,11 @@
891 891
   // The height can be set with M420 Z<height>
892 892
   #define ENABLE_LEVELING_FADE_HEIGHT
893 893
 
894
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
895
+  // split up moves into short segments like a Delta.
896
+  #define SEGMENT_LEVELED_MOVES
897
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
898
+
894 899
   /**
895 900
    * Enable the G26 Mesh Validation Pattern tool.
896 901
    */

+ 5
- 0
Marlin/example_configurations/Infitary/i3-M508/Configuration.h View File

@@ -895,6 +895,11 @@
895 895
   // The height can be set with M420 Z<height>
896 896
   #define ENABLE_LEVELING_FADE_HEIGHT
897 897
 
898
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
899
+  // split up moves into short segments like a Delta.
900
+  #define SEGMENT_LEVELED_MOVES
901
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
902
+
898 903
   /**
899 904
    * Enable the G26 Mesh Validation Pattern tool.
900 905
    */

+ 5
- 0
Marlin/example_configurations/Malyan/M150/Configuration.h View File

@@ -919,6 +919,11 @@
919 919
   // The height can be set with M420 Z<height>
920 920
   #define ENABLE_LEVELING_FADE_HEIGHT
921 921
 
922
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
923
+  // split up moves into short segments like a Delta.
924
+  #define SEGMENT_LEVELED_MOVES
925
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
926
+
922 927
   /**
923 928
    * Enable the G26 Mesh Validation Pattern tool.
924 929
    */

+ 5
- 0
Marlin/example_configurations/Micromake/C1/basic/Configuration.h View File

@@ -895,6 +895,11 @@
895 895
   // The height can be set with M420 Z<height>
896 896
   #define ENABLE_LEVELING_FADE_HEIGHT
897 897
 
898
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
899
+  // split up moves into short segments like a Delta.
900
+  #define SEGMENT_LEVELED_MOVES
901
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
902
+
898 903
   /**
899 904
    * Enable the G26 Mesh Validation Pattern tool.
900 905
    */

+ 5
- 0
Marlin/example_configurations/Micromake/C1/enhanced/Configuration.h View File

@@ -895,6 +895,11 @@
895 895
   // The height can be set with M420 Z<height>
896 896
   #define ENABLE_LEVELING_FADE_HEIGHT
897 897
 
898
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
899
+  // split up moves into short segments like a Delta.
900
+  #define SEGMENT_LEVELED_MOVES
901
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
902
+
898 903
   /**
899 904
    * Enable the G26 Mesh Validation Pattern tool.
900 905
    */

+ 5
- 0
Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h View File

@@ -891,6 +891,11 @@
891 891
   // The height can be set with M420 Z<height>
892 892
   #define ENABLE_LEVELING_FADE_HEIGHT
893 893
 
894
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
895
+  // split up moves into short segments like a Delta.
896
+  #define SEGMENT_LEVELED_MOVES
897
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
898
+
894 899
   /**
895 900
    * Enable the G26 Mesh Validation Pattern tool.
896 901
    */

+ 5
- 0
Marlin/example_configurations/RigidBot/Configuration.h View File

@@ -889,6 +889,11 @@
889 889
   // The height can be set with M420 Z<height>
890 890
   #define ENABLE_LEVELING_FADE_HEIGHT
891 891
 
892
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
893
+  // split up moves into short segments like a Delta.
894
+  #define SEGMENT_LEVELED_MOVES
895
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
896
+
892 897
   /**
893 898
    * Enable the G26 Mesh Validation Pattern tool.
894 899
    */

+ 5
- 0
Marlin/example_configurations/SCARA/Configuration.h View File

@@ -903,6 +903,11 @@
903 903
   // The height can be set with M420 Z<height>
904 904
   #define ENABLE_LEVELING_FADE_HEIGHT
905 905
 
906
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
907
+  // split up moves into short segments like a Delta.
908
+  #define SEGMENT_LEVELED_MOVES
909
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
910
+
906 911
   /**
907 912
    * Enable the G26 Mesh Validation Pattern tool.
908 913
    */

+ 5
- 0
Marlin/example_configurations/Sanguinololu/Configuration.h View File

@@ -922,6 +922,11 @@
922 922
   // The height can be set with M420 Z<height>
923 923
   #define ENABLE_LEVELING_FADE_HEIGHT
924 924
 
925
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
926
+  // split up moves into short segments like a Delta.
927
+  #define SEGMENT_LEVELED_MOVES
928
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
929
+
925 930
   /**
926 931
    * Enable the G26 Mesh Validation Pattern tool.
927 932
    */

+ 5
- 0
Marlin/example_configurations/TinyBoy2/Configuration.h View File

@@ -947,6 +947,11 @@
947 947
   // The height can be set with M420 Z<height>
948 948
   #define ENABLE_LEVELING_FADE_HEIGHT
949 949
 
950
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
951
+  // split up moves into short segments like a Delta.
952
+  #define SEGMENT_LEVELED_MOVES
953
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
954
+
950 955
   /**
951 956
    * Enable the G26 Mesh Validation Pattern tool.
952 957
    */

+ 5
- 0
Marlin/example_configurations/Velleman/K8200/Configuration.h View File

@@ -921,6 +921,11 @@
921 921
   // The height can be set with M420 Z<height>
922 922
   #define ENABLE_LEVELING_FADE_HEIGHT
923 923
 
924
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
925
+  // split up moves into short segments like a Delta.
926
+  #define SEGMENT_LEVELED_MOVES
927
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
928
+
924 929
   /**
925 930
    * Enable the G26 Mesh Validation Pattern tool.
926 931
    */

+ 5
- 0
Marlin/example_configurations/Velleman/K8400/Configuration.h View File

@@ -891,6 +891,11 @@
891 891
   // The height can be set with M420 Z<height>
892 892
   #define ENABLE_LEVELING_FADE_HEIGHT
893 893
 
894
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
895
+  // split up moves into short segments like a Delta.
896
+  #define SEGMENT_LEVELED_MOVES
897
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
898
+
894 899
   /**
895 900
    * Enable the G26 Mesh Validation Pattern tool.
896 901
    */

+ 5
- 0
Marlin/example_configurations/Velleman/K8400/Dual-head/Configuration.h View File

@@ -891,6 +891,11 @@
891 891
   // The height can be set with M420 Z<height>
892 892
   #define ENABLE_LEVELING_FADE_HEIGHT
893 893
 
894
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
895
+  // split up moves into short segments like a Delta.
896
+  #define SEGMENT_LEVELED_MOVES
897
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
898
+
894 899
   /**
895 900
    * Enable the G26 Mesh Validation Pattern tool.
896 901
    */

+ 5
- 0
Marlin/example_configurations/adafruit/ST7565/Configuration.h View File

@@ -891,6 +891,11 @@
891 891
   // The height can be set with M420 Z<height>
892 892
   #define ENABLE_LEVELING_FADE_HEIGHT
893 893
 
894
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
895
+  // split up moves into short segments like a Delta.
896
+  #define SEGMENT_LEVELED_MOVES
897
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
898
+
894 899
   /**
895 900
    * Enable the G26 Mesh Validation Pattern tool.
896 901
    */

+ 5
- 0
Marlin/example_configurations/delta/FLSUN/auto_calibrate/Configuration.h View File

@@ -1021,6 +1021,11 @@
1021 1021
   // The height can be set with M420 Z<height>
1022 1022
   //#define ENABLE_LEVELING_FADE_HEIGHT
1023 1023
 
1024
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
1025
+  // split up moves into short segments like a Delta.
1026
+  #define SEGMENT_LEVELED_MOVES
1027
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
1028
+
1024 1029
   /**
1025 1030
    * Enable the G26 Mesh Validation Pattern tool.
1026 1031
    */

+ 5
- 0
Marlin/example_configurations/delta/FLSUN/kossel_mini/Configuration.h View File

@@ -1021,6 +1021,11 @@
1021 1021
   // The height can be set with M420 Z<height>
1022 1022
   //#define ENABLE_LEVELING_FADE_HEIGHT
1023 1023
 
1024
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
1025
+  // split up moves into short segments like a Delta.
1026
+  #define SEGMENT_LEVELED_MOVES
1027
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
1028
+
1024 1029
   /**
1025 1030
    * Enable the G26 Mesh Validation Pattern tool.
1026 1031
    */

+ 5
- 0
Marlin/example_configurations/delta/generic/Configuration.h View File

@@ -1012,6 +1012,11 @@
1012 1012
   #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
1013 1013
 
1014 1014
 
1015
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
1016
+  // split up moves into short segments like a Delta.
1017
+  #define SEGMENT_LEVELED_MOVES
1018
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
1019
+
1015 1020
   /**
1016 1021
    * Enable the G26 Mesh Validation Pattern tool.
1017 1022
    */

+ 5
- 0
Marlin/example_configurations/delta/kossel_mini/Configuration.h View File

@@ -1015,6 +1015,11 @@
1015 1015
   #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
1016 1016
 
1017 1017
 
1018
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
1019
+  // split up moves into short segments like a Delta.
1020
+  #define SEGMENT_LEVELED_MOVES
1021
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
1022
+
1018 1023
   /**
1019 1024
    * Enable the G26 Mesh Validation Pattern tool.
1020 1025
    */

+ 5
- 0
Marlin/example_configurations/delta/kossel_pro/Configuration.h View File

@@ -1015,6 +1015,11 @@
1015 1015
   #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
1016 1016
 
1017 1017
 
1018
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
1019
+  // split up moves into short segments like a Delta.
1020
+  #define SEGMENT_LEVELED_MOVES
1021
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
1022
+
1018 1023
   /**
1019 1024
    * Enable the G26 Mesh Validation Pattern tool.
1020 1025
    */

+ 5
- 0
Marlin/example_configurations/delta/kossel_xl/Configuration.h View File

@@ -1024,6 +1024,11 @@
1024 1024
   #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
1025 1025
 
1026 1026
 
1027
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
1028
+  // split up moves into short segments like a Delta.
1029
+  #define SEGMENT_LEVELED_MOVES
1030
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
1031
+
1027 1032
   /**
1028 1033
    * Enable the G26 Mesh Validation Pattern tool.
1029 1034
    */

+ 5
- 0
Marlin/example_configurations/gCreate/gMax1.5+/Configuration.h View File

@@ -905,6 +905,11 @@
905 905
   // The height can be set with M420 Z<height>
906 906
   #define ENABLE_LEVELING_FADE_HEIGHT
907 907
 
908
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
909
+  // split up moves into short segments like a Delta.
910
+  #define SEGMENT_LEVELED_MOVES
911
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
912
+
908 913
   /**
909 914
    * Enable the G26 Mesh Validation Pattern tool.
910 915
    */

+ 5
- 0
Marlin/example_configurations/makibox/Configuration.h View File

@@ -894,6 +894,11 @@
894 894
   // The height can be set with M420 Z<height>
895 895
   #define ENABLE_LEVELING_FADE_HEIGHT
896 896
 
897
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
898
+  // split up moves into short segments like a Delta.
899
+  #define SEGMENT_LEVELED_MOVES
900
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
901
+
897 902
   /**
898 903
    * Enable the G26 Mesh Validation Pattern tool.
899 904
    */

+ 5
- 0
Marlin/example_configurations/tvrrug/Round2/Configuration.h View File

@@ -886,6 +886,11 @@
886 886
   // The height can be set with M420 Z<height>
887 887
   #define ENABLE_LEVELING_FADE_HEIGHT
888 888
 
889
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
890
+  // split up moves into short segments like a Delta.
891
+  #define SEGMENT_LEVELED_MOVES
892
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
893
+
889 894
   /**
890 895
    * Enable the G26 Mesh Validation Pattern tool.
891 896
    */

+ 5
- 0
Marlin/example_configurations/wt150/Configuration.h View File

@@ -896,6 +896,11 @@
896 896
   // The height can be set with M420 Z<height>
897 897
   #define ENABLE_LEVELING_FADE_HEIGHT
898 898
 
899
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
900
+  // split up moves into short segments like a Delta.
901
+  #define SEGMENT_LEVELED_MOVES
902
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
903
+
899 904
   /**
900 905
    * Enable the G26 Mesh Validation Pattern tool.
901 906
    */

Loading…
Cancel
Save