|
|
@ -195,7 +195,9 @@ void homeaxis(const AxisEnum axis); |
|
|
|
// Macros
|
|
|
|
//
|
|
|
|
|
|
|
|
// Workspace offsets
|
|
|
|
/**
|
|
|
|
* Workspace offsets |
|
|
|
*/ |
|
|
|
#if HAS_WORKSPACE_OFFSET |
|
|
|
#if HAS_HOME_OFFSET |
|
|
|
extern float home_offset[XYZ]; |
|
|
@ -203,36 +205,26 @@ void homeaxis(const AxisEnum axis); |
|
|
|
#if HAS_POSITION_SHIFT |
|
|
|
extern float position_shift[XYZ]; |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
|
|
|
|
#if HAS_HOME_OFFSET && HAS_POSITION_SHIFT |
|
|
|
extern float workspace_offset[XYZ]; |
|
|
|
#define WORKSPACE_OFFSET(AXIS) workspace_offset[AXIS] |
|
|
|
#elif HAS_HOME_OFFSET |
|
|
|
#define WORKSPACE_OFFSET(AXIS) home_offset[AXIS] |
|
|
|
#elif HAS_POSITION_SHIFT |
|
|
|
#define WORKSPACE_OFFSET(AXIS) position_shift[AXIS] |
|
|
|
#else |
|
|
|
#define WORKSPACE_OFFSET(AXIS) 0 |
|
|
|
#endif |
|
|
|
|
|
|
|
#define NATIVE_TO_LOGICAL(POS, AXIS) ((POS) + WORKSPACE_OFFSET(AXIS)) |
|
|
|
#define LOGICAL_TO_NATIVE(POS, AXIS) ((POS) - WORKSPACE_OFFSET(AXIS)) |
|
|
|
|
|
|
|
#if HAS_POSITION_SHIFT || DISABLED(DELTA) |
|
|
|
#define LOGICAL_X_POSITION(POS) NATIVE_TO_LOGICAL(POS, X_AXIS) |
|
|
|
#define LOGICAL_Y_POSITION(POS) NATIVE_TO_LOGICAL(POS, Y_AXIS) |
|
|
|
#define RAW_X_POSITION(POS) LOGICAL_TO_NATIVE(POS, X_AXIS) |
|
|
|
#define RAW_Y_POSITION(POS) LOGICAL_TO_NATIVE(POS, Y_AXIS) |
|
|
|
#if HAS_HOME_OFFSET && HAS_POSITION_SHIFT |
|
|
|
extern float workspace_offset[XYZ]; |
|
|
|
#define WORKSPACE_OFFSET(AXIS) workspace_offset[AXIS] |
|
|
|
#elif HAS_HOME_OFFSET |
|
|
|
#define WORKSPACE_OFFSET(AXIS) home_offset[AXIS] |
|
|
|
#elif HAS_POSITION_SHIFT |
|
|
|
#define WORKSPACE_OFFSET(AXIS) position_shift[AXIS] |
|
|
|
#endif |
|
|
|
#define NATIVE_TO_LOGICAL(POS, AXIS) ((POS) + WORKSPACE_OFFSET(AXIS)) |
|
|
|
#define LOGICAL_TO_NATIVE(POS, AXIS) ((POS) - WORKSPACE_OFFSET(AXIS)) |
|
|
|
#else |
|
|
|
#define LOGICAL_X_POSITION(POS) (POS) |
|
|
|
#define LOGICAL_Y_POSITION(POS) (POS) |
|
|
|
#define RAW_X_POSITION(POS) (POS) |
|
|
|
#define RAW_Y_POSITION(POS) (POS) |
|
|
|
#define NATIVE_TO_LOGICAL(POS, AXIS) (POS) |
|
|
|
#define LOGICAL_TO_NATIVE(POS, AXIS) (POS) |
|
|
|
#endif |
|
|
|
|
|
|
|
#define LOGICAL_Z_POSITION(POS) NATIVE_TO_LOGICAL(POS, Z_AXIS) |
|
|
|
#define RAW_Z_POSITION(POS) LOGICAL_TO_NATIVE(POS, Z_AXIS) |
|
|
|
#define LOGICAL_X_POSITION(POS) NATIVE_TO_LOGICAL(POS, X_AXIS) |
|
|
|
#define LOGICAL_Y_POSITION(POS) NATIVE_TO_LOGICAL(POS, Y_AXIS) |
|
|
|
#define LOGICAL_Z_POSITION(POS) NATIVE_TO_LOGICAL(POS, Z_AXIS) |
|
|
|
#define RAW_X_POSITION(POS) LOGICAL_TO_NATIVE(POS, X_AXIS) |
|
|
|
#define RAW_Y_POSITION(POS) LOGICAL_TO_NATIVE(POS, Y_AXIS) |
|
|
|
#define RAW_Z_POSITION(POS) LOGICAL_TO_NATIVE(POS, Z_AXIS) |
|
|
|
|
|
|
|
/**
|
|
|
|
* position_is_reachable family of functions |
|
|
|