|
|
@ -752,7 +752,7 @@ void report_current_position_detail();
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#define DEBUG_POS(SUFFIX,VAR) do { \
|
|
|
|
#define DEBUG_POS(SUFFIX,VAR) do { \
|
|
|
|
print_xyz(PSTR(" " STRINGIFY(VAR) "="), PSTR(" : " SUFFIX "\n"), VAR); } while(0)
|
|
|
|
print_xyz(PSTR(" " STRINGIFY(VAR) "="), PSTR(" : " SUFFIX "\n"), VAR); }while(0)
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
@ -3492,20 +3492,20 @@ inline void gcode_G4() {
|
|
|
|
SERIAL_ECHOPAIR("Probe Offset X:", X_PROBE_OFFSET_FROM_EXTRUDER);
|
|
|
|
SERIAL_ECHOPAIR("Probe Offset X:", X_PROBE_OFFSET_FROM_EXTRUDER);
|
|
|
|
SERIAL_ECHOPAIR(" Y:", Y_PROBE_OFFSET_FROM_EXTRUDER);
|
|
|
|
SERIAL_ECHOPAIR(" Y:", Y_PROBE_OFFSET_FROM_EXTRUDER);
|
|
|
|
SERIAL_ECHOPAIR(" Z:", zprobe_zoffset);
|
|
|
|
SERIAL_ECHOPAIR(" Z:", zprobe_zoffset);
|
|
|
|
#if (X_PROBE_OFFSET_FROM_EXTRUDER > 0)
|
|
|
|
#if X_PROBE_OFFSET_FROM_EXTRUDER > 0
|
|
|
|
SERIAL_ECHOPGM(" (Right");
|
|
|
|
SERIAL_ECHOPGM(" (Right");
|
|
|
|
#elif (X_PROBE_OFFSET_FROM_EXTRUDER < 0)
|
|
|
|
#elif X_PROBE_OFFSET_FROM_EXTRUDER < 0
|
|
|
|
SERIAL_ECHOPGM(" (Left");
|
|
|
|
SERIAL_ECHOPGM(" (Left");
|
|
|
|
#elif (Y_PROBE_OFFSET_FROM_EXTRUDER != 0)
|
|
|
|
#elif Y_PROBE_OFFSET_FROM_EXTRUDER != 0
|
|
|
|
SERIAL_ECHOPGM(" (Middle");
|
|
|
|
SERIAL_ECHOPGM(" (Middle");
|
|
|
|
#else
|
|
|
|
#else
|
|
|
|
SERIAL_ECHOPGM(" (Aligned With");
|
|
|
|
SERIAL_ECHOPGM(" (Aligned With");
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#if (Y_PROBE_OFFSET_FROM_EXTRUDER > 0)
|
|
|
|
#if Y_PROBE_OFFSET_FROM_EXTRUDER > 0
|
|
|
|
SERIAL_ECHOPGM("-Back");
|
|
|
|
SERIAL_ECHOPGM("-Back");
|
|
|
|
#elif (Y_PROBE_OFFSET_FROM_EXTRUDER < 0)
|
|
|
|
#elif Y_PROBE_OFFSET_FROM_EXTRUDER < 0
|
|
|
|
SERIAL_ECHOPGM("-Front");
|
|
|
|
SERIAL_ECHOPGM("-Front");
|
|
|
|
#elif (X_PROBE_OFFSET_FROM_EXTRUDER != 0)
|
|
|
|
#elif X_PROBE_OFFSET_FROM_EXTRUDER != 0
|
|
|
|
SERIAL_ECHOPGM("-Center");
|
|
|
|
SERIAL_ECHOPGM("-Center");
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
if (zprobe_zoffset < 0)
|
|
|
|
if (zprobe_zoffset < 0)
|
|
|
@ -5109,7 +5109,7 @@ void home_all_axes() { gcode_G28(true); }
|
|
|
|
|
|
|
|
|
|
|
|
const int8_t probe_points = parser.seen('P') ? parser.value_int() : DELTA_CALIBRATION_DEFAULT_POINTS;
|
|
|
|
const int8_t probe_points = parser.seen('P') ? parser.value_int() : DELTA_CALIBRATION_DEFAULT_POINTS;
|
|
|
|
if (!WITHIN(probe_points, 1, 7)) {
|
|
|
|
if (!WITHIN(probe_points, 1, 7)) {
|
|
|
|
SERIAL_PROTOCOLLNPGM("?(P)oints is implausible (1-7).");
|
|
|
|
SERIAL_PROTOCOLLNPGM("?(P)oints is implausible (1 to 7).");
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -11279,7 +11279,7 @@ void ok_to_send() {
|
|
|
|
delta[A_AXIS] = DELTA_Z(A_AXIS); \
|
|
|
|
delta[A_AXIS] = DELTA_Z(A_AXIS); \
|
|
|
|
delta[B_AXIS] = DELTA_Z(B_AXIS); \
|
|
|
|
delta[B_AXIS] = DELTA_Z(B_AXIS); \
|
|
|
|
delta[C_AXIS] = DELTA_Z(C_AXIS); \
|
|
|
|
delta[C_AXIS] = DELTA_Z(C_AXIS); \
|
|
|
|
} while(0)
|
|
|
|
}while(0)
|
|
|
|
|
|
|
|
|
|
|
|
#define DELTA_LOGICAL_IK() do { \
|
|
|
|
#define DELTA_LOGICAL_IK() do { \
|
|
|
|
const float raw[XYZ] = { \
|
|
|
|
const float raw[XYZ] = { \
|
|
|
@ -11288,7 +11288,7 @@ void ok_to_send() {
|
|
|
|
RAW_Z_POSITION(logical[Z_AXIS]) \
|
|
|
|
RAW_Z_POSITION(logical[Z_AXIS]) \
|
|
|
|
}; \
|
|
|
|
}; \
|
|
|
|
DELTA_RAW_IK(); \
|
|
|
|
DELTA_RAW_IK(); \
|
|
|
|
} while(0)
|
|
|
|
}while(0)
|
|
|
|
|
|
|
|
|
|
|
|
#define DELTA_DEBUG() do { \
|
|
|
|
#define DELTA_DEBUG() do { \
|
|
|
|
SERIAL_ECHOPAIR("cartesian X:", raw[X_AXIS]); \
|
|
|
|
SERIAL_ECHOPAIR("cartesian X:", raw[X_AXIS]); \
|
|
|
@ -11297,7 +11297,7 @@ void ok_to_send() {
|
|
|
|
SERIAL_ECHOPAIR("delta A:", delta[A_AXIS]); \
|
|
|
|
SERIAL_ECHOPAIR("delta A:", delta[A_AXIS]); \
|
|
|
|
SERIAL_ECHOPAIR(" B:", delta[B_AXIS]); \
|
|
|
|
SERIAL_ECHOPAIR(" B:", delta[B_AXIS]); \
|
|
|
|
SERIAL_ECHOLNPAIR(" C:", delta[C_AXIS]); \
|
|
|
|
SERIAL_ECHOLNPAIR(" C:", delta[C_AXIS]); \
|
|
|
|
} while(0)
|
|
|
|
}while(0)
|
|
|
|
|
|
|
|
|
|
|
|
void inverse_kinematics(const float logical[XYZ]) {
|
|
|
|
void inverse_kinematics(const float logical[XYZ]) {
|
|
|
|
DELTA_LOGICAL_IK();
|
|
|
|
DELTA_LOGICAL_IK();
|
|
|
|