ソースを参照

Fix incorrectly optimized find_closest_mesh_point_of_type() function (#6761)

Roxy-3D 7年前
コミット
d30e478f97
1個のファイルの変更11行の追加5行の削除
  1. 11
    5
      Marlin/ubl_G29.cpp

+ 11
- 5
Marlin/ubl_G29.cpp ファイルの表示

@@ -730,7 +730,7 @@
730 730
    * Probe all invalidated locations of the mesh that can be reached by the probe.
731 731
    * This attempts to fill in locations closest to the nozzle's start location first.
732 732
    */
733
-  void unified_bed_leveling::probe_entire_mesh(const float &lx, const float &ly, const bool do_ubl_mesh_map, const bool stow_probe, bool do_furthest) {
733
+  void unified_bed_leveling::probe_entire_mesh(const float &lx, const float &ly, const bool do_ubl_mesh_map, const bool stow_probe, bool close_or_far) {
734 734
     mesh_index_pair location;
735 735
 
736 736
     ubl.has_control_of_lcd_panel = true;
@@ -751,10 +751,9 @@
751 751
         return;
752 752
       }
753 753
 
754
-      location = find_closest_mesh_point_of_type(INVALID, lx, ly, USE_PROBE_AS_REFERENCE, NULL, do_furthest);
754
+      location = find_closest_mesh_point_of_type(INVALID, lx, ly, USE_PROBE_AS_REFERENCE, NULL, close_or_far);
755 755
 
756 756
       if (location.x_index >= 0) {    // mesh point found and is reachable by probe
757
-
758 757
         const float rawx = pgm_read_float(&ubl.mesh_index_to_xpos[location.x_index]),
759 758
                     rawy = pgm_read_float(&ubl.mesh_index_to_ypos[location.y_index]);
760 759
 
@@ -763,7 +762,6 @@
763 762
       }
764 763
 
765 764
       if (do_ubl_mesh_map) ubl.display_map(map_type);
766
-
767 765
     } while ((location.x_index >= 0) && (--max_iterations));
768 766
 
769 767
     STOW_PROBE();
@@ -1343,7 +1341,15 @@
1343 1341
           // Also for round beds, there are grid points outside the bed that nozzle can't reach.
1344 1342
           // Prune them from the list and ignore them till the next Phase (manual nozzle probing).
1345 1343
 
1346
-          if ((probe_as_reference && position_is_reachable_by_probe_raw_xy(mx, my)) || position_is_reachable_raw_xy(mx, my))
1344
+//        if ((probe_as_reference && position_is_reachable_by_probe_raw_xy(mx, my)) || position_is_reachable_raw_xy(mx, my))
1345
+//          continue;
1346
+//
1347
+//        THE ABOVE CODE IS NOT A REPLACEMENT FOR THE CODE BELOW!!!!!!!
1348
+//
1349
+          bool reachable = probe_as_reference ?
1350
+                             position_is_reachable_by_probe_raw_xy( mx, my ) :
1351
+                             position_is_reachable_raw_xy( mx, my );
1352
+          if ( ! reachable )
1347 1353
             continue;
1348 1354
 
1349 1355
           // Reachable. Check if it's the closest location to the nozzle.

読み込み中…
キャンセル
保存