@ -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]
|
||||
#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 WORKSPACE_OFFSET(AXIS) 0
|
||||
#define NATIVE_TO_LOGICAL(POS, AXIS) (POS)
|
||||
#define LOGICAL_TO_NATIVE(POS, AXIS) (POS)
|
||||
#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)
|
||||
#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)
|
||||
#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
|
||||
|
Reference in New Issue
Block a user