More useful ENABLED / DISABLED macros (#17054)

This commit is contained in:
Scott Lahteine
2020-03-07 22:20:41 -06:00
committed by GitHub
parent 5eb6fb1c2f
commit 64d092935b
26 changed files with 636 additions and 766 deletions

View File

@ -62,13 +62,7 @@
current_position.set(0.0, 0.0);
sync_plan_position();
const int x_axis_home_dir =
#if ENABLED(DUAL_X_CARRIAGE)
x_home_dir(active_extruder)
#else
home_dir(X_AXIS)
#endif
;
const int x_axis_home_dir = x_home_dir(active_extruder);
const float mlx = max_length(X_AXIS),
mly = max_length(Y_AXIS),
@ -310,6 +304,8 @@ void GcodeSuite::G28() {
#if ENABLED(DELTA)
constexpr bool doZ = true; // for NANODLP_Z_SYNC if your DLP is on a DELTA
home_delta();
#if ENABLED(IMPROVE_HOMING_RELIABILITY)
@ -330,12 +326,10 @@ void GcodeSuite::G28() {
#endif
const float z_homing_height = (
#if ENABLED(UNKNOWN_Z_NO_RAISE)
!TEST(axis_known_position, Z_AXIS) ? 0 :
#endif
(parser.seenval('R') ? parser.value_linear_units() : Z_HOMING_HEIGHT)
);
const float z_homing_height =
(DISABLED(UNKNOWN_Z_NO_RAISE) || TEST(axis_known_position, Z_AXIS))
? (parser.seenval('R') ? parser.value_linear_units() : Z_HOMING_HEIGHT)
: 0;
if (z_homing_height && (doX || doY)) {
// Raise Z before homing any other axes and z is not already high enough (never lower z)
@ -355,20 +349,13 @@ void GcodeSuite::G28() {
// Home Y (before X)
#if ENABLED(HOME_Y_BEFORE_X)
if (doY
#if ENABLED(CODEPENDENT_XY_HOMING)
|| doX
#endif
) homeaxis(Y_AXIS);
if (doY || (doX && ENABLED(CODEPENDENT_XY_HOMING)))
homeaxis(Y_AXIS);
#endif
// Home X
if (doX
#if ENABLED(CODEPENDENT_XY_HOMING) && DISABLED(HOME_Y_BEFORE_X)
|| doY
#endif
) {
if (doX || (doY && ENABLED(CODEPENDENT_XY_HOMING) && DISABLED(HOME_Y_BEFORE_X))) {
#if ENABLED(DUAL_X_CARRIAGE)
@ -396,9 +383,8 @@ void GcodeSuite::G28() {
}
// Home Y (after X)
#if DISABLED(HOME_Y_BEFORE_X)
if (doY) homeaxis(Y_AXIS);
#endif
if (DISABLED(HOME_Y_BEFORE_X) && doY)
homeaxis(Y_AXIS);
#if ENABLED(IMPROVE_HOMING_RELIABILITY)
end_slow_homing(slow_homing);
@ -487,7 +473,7 @@ void GcodeSuite::G28() {
do_blocking_move_to_z(delta_clip_start_height);
#endif
#if HAS_LEVELING && ENABLED(RESTORE_LEVELING_AFTER_G28)
#if ENABLED(RESTORE_LEVELING_AFTER_G28)
set_bed_leveling_enabled(leveling_was_active);
#endif
@ -495,12 +481,7 @@ void GcodeSuite::G28() {
// Restore the active tool after homing
#if HOTENDS > 1 && (DISABLED(DELTA) || ENABLED(DELTA_HOME_TO_SAFE_ZONE))
#if EITHER(PARKING_EXTRUDER, DUAL_X_CARRIAGE)
#define NO_FETCH false // fetch the previous toolhead
#else
#define NO_FETCH true
#endif
tool_change(old_tool_index, NO_FETCH);
tool_change(old_tool_index, NONE(PARKING_EXTRUDER, DUAL_X_CARRIAGE)); // Do move if one of these
#endif
#if HAS_HOMING_CURRENT
@ -523,15 +504,8 @@ void GcodeSuite::G28() {
report_current_position();
#if ENABLED(NANODLP_Z_SYNC)
#if ENABLED(NANODLP_ALL_AXIS)
#define _HOME_SYNC true // For any axis, output sync text.
#else
#define _HOME_SYNC doZ // Only for Z-axis
#endif
if (_HOME_SYNC)
SERIAL_ECHOLNPGM(STR_Z_MOVE_COMP);
#endif
if (ENABLED(NANODLP_Z_SYNC) && (doZ || ENABLED(NANODLP_ALL_AXIS)))
SERIAL_ECHOLNPGM(STR_Z_MOVE_COMP);
if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPGM("<<< G28");

View File

@ -56,8 +56,12 @@
#define CALIBRATION_MEASUREMENT_CERTAIN 0.5 // mm
#endif
#define HAS_X_CENTER BOTH(CALIBRATION_MEASURE_LEFT, CALIBRATION_MEASURE_RIGHT)
#define HAS_Y_CENTER BOTH(CALIBRATION_MEASURE_FRONT, CALIBRATION_MEASURE_BACK)
#if BOTH(CALIBRATION_MEASURE_LEFT, CALIBRATION_MEASURE_RIGHT)
#define HAS_X_CENTER 1
#endif
#if BOTH(CALIBRATION_MEASURE_FRONT, CALIBRATION_MEASURE_BACK)
#define HAS_Y_CENTER 1
#endif
enum side_t : uint8_t { TOP, RIGHT, FRONT, LEFT, BACK, NUM_SIDES };