1
0
mirror of https://github.com/MarlinFirmware/Marlin.git synced 2024-11-29 14:57:05 +00:00

🐛 Fix SEGMENT_LEVELED_MOVES with UBL

This commit is contained in:
Scott Lahteine 2022-05-22 16:53:12 -05:00
parent d99185be24
commit a93146b71d
2 changed files with 9 additions and 8 deletions

View File

@ -1241,7 +1241,7 @@
*/ */
#if ENABLED(AUTO_BED_LEVELING_UBL) #if ENABLED(AUTO_BED_LEVELING_UBL)
#undef LCD_BED_LEVELING #undef LCD_BED_LEVELING
#if ENABLED(DELTA) #if EITHER(DELTA, SEGMENT_LEVELED_MOVES)
#define UBL_SEGMENTED 1 #define UBL_SEGMENTED 1
#endif #endif
#endif #endif

View File

@ -960,8 +960,6 @@ void restore_feedrate_and_scaling() {
#endif // !HAS_SOFTWARE_ENDSTOPS #endif // !HAS_SOFTWARE_ENDSTOPS
#if !UBL_SEGMENTED
FORCE_INLINE void segment_idle(millis_t &next_idle_ms) { FORCE_INLINE void segment_idle(millis_t &next_idle_ms) {
const millis_t ms = millis(); const millis_t ms = millis();
if (ELAPSED(ms, next_idle_ms)) { if (ELAPSED(ms, next_idle_ms)) {
@ -1078,7 +1076,7 @@ FORCE_INLINE void segment_idle(millis_t &next_idle_ms) {
#else // !IS_KINEMATIC #else // !IS_KINEMATIC
#if ENABLED(SEGMENT_LEVELED_MOVES) #if ENABLED(SEGMENT_LEVELED_MOVES) && DISABLED(AUTO_BED_LEVELING_UBL)
/** /**
* Prepare a segmented move on a CARTESIAN setup. * Prepare a segmented move on a CARTESIAN setup.
@ -1138,7 +1136,7 @@ FORCE_INLINE void segment_idle(millis_t &next_idle_ms) {
planner.buffer_line(destination, fr_mm_s, active_extruder, cartesian_segment_mm OPTARG(SCARA_FEEDRATE_SCALING, inv_duration)); planner.buffer_line(destination, fr_mm_s, active_extruder, cartesian_segment_mm OPTARG(SCARA_FEEDRATE_SCALING, inv_duration));
} }
#endif // SEGMENT_LEVELED_MOVES #endif // SEGMENT_LEVELED_MOVES && !AUTO_BED_LEVELING_UBL
/** /**
* Prepare a linear move in a Cartesian setup. * Prepare a linear move in a Cartesian setup.
@ -1153,8 +1151,12 @@ FORCE_INLINE void segment_idle(millis_t &next_idle_ms) {
#if HAS_MESH #if HAS_MESH
if (planner.leveling_active && planner.leveling_active_at_z(destination.z)) { if (planner.leveling_active && planner.leveling_active_at_z(destination.z)) {
#if ENABLED(AUTO_BED_LEVELING_UBL) #if ENABLED(AUTO_BED_LEVELING_UBL)
#if UBL_SEGMENTED
return bedlevel.line_to_destination_segmented(scaled_fr_mm_s);
#else
bedlevel.line_to_destination_cartesian(scaled_fr_mm_s, active_extruder); // UBL's motion routine needs to know about bedlevel.line_to_destination_cartesian(scaled_fr_mm_s, active_extruder); // UBL's motion routine needs to know about
return true; // all moves, including Z-only moves. return true; // all moves, including Z-only moves.
#endif
#elif ENABLED(SEGMENT_LEVELED_MOVES) #elif ENABLED(SEGMENT_LEVELED_MOVES)
segmented_line_to_destination(scaled_fr_mm_s); segmented_line_to_destination(scaled_fr_mm_s);
return false; // caller will update current_position return false; // caller will update current_position
@ -1180,7 +1182,6 @@ FORCE_INLINE void segment_idle(millis_t &next_idle_ms) {
} }
#endif // !IS_KINEMATIC #endif // !IS_KINEMATIC
#endif // !UBL_SEGMENTED
#if HAS_DUPLICATION_MODE #if HAS_DUPLICATION_MODE
bool extruder_duplication_enabled; bool extruder_duplication_enabled;