|
|
@ -36,7 +36,9 @@
|
|
|
|
extern void set_current_from_destination();
|
|
|
|
extern void set_current_from_destination();
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
void unified_bed_leveling::line_to_destination_cartesian(const float &feed_rate, uint8_t extruder) {
|
|
|
|
#if !UBL_SEGMENTED
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void unified_bed_leveling::line_to_destination_cartesian(const float &feed_rate, const uint8_t extruder) {
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Much of the nozzle movement will be within the same cell. So we will do as little computation
|
|
|
|
* Much of the nozzle movement will be within the same cell. So we will do as little computation
|
|
|
|
* as possible to determine if this is the case. If this move is within the same cell, we will
|
|
|
|
* as possible to determine if this is the case. If this move is within the same cell, we will
|
|
|
@ -402,15 +404,7 @@
|
|
|
|
set_current_from_destination();
|
|
|
|
set_current_from_destination();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#if UBL_SEGMENTED
|
|
|
|
#else // UBL_SEGMENTED
|
|
|
|
|
|
|
|
|
|
|
|
// macro to inline copy exactly 4 floats, don't rely on sizeof operator
|
|
|
|
|
|
|
|
#define COPY_XYZE( target, source ) { \
|
|
|
|
|
|
|
|
target[X_AXIS] = source[X_AXIS]; \
|
|
|
|
|
|
|
|
target[Y_AXIS] = source[Y_AXIS]; \
|
|
|
|
|
|
|
|
target[Z_AXIS] = source[Z_AXIS]; \
|
|
|
|
|
|
|
|
target[E_AXIS] = source[E_AXIS]; \
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if IS_SCARA // scale the feed rate from mm/s to degrees/s
|
|
|
|
#if IS_SCARA // scale the feed rate from mm/s to degrees/s
|
|
|
|
static float scara_feed_factor, scara_oldA, scara_oldB;
|
|
|
|
static float scara_feed_factor, scara_oldA, scara_oldB;
|
|
|
|