Skip to content

Commit

Permalink
✨ More Nozzle Park move options (MarlinFirmware#23158)
Browse files Browse the repository at this point in the history
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
  • Loading branch information
2 people authored and Jeremy Fairbanks committed Jul 18, 2022
1 parent fa425ac commit 3bbcb47
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 7 deletions.
3 changes: 1 addition & 2 deletions Marlin/Configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -1913,8 +1913,7 @@
#if ENABLED(NOZZLE_PARK_FEATURE)
// Specify a park position as { X, Y, Z_raise }
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
//#define NOZZLE_PARK_X_ONLY // X move only is required to park
//#define NOZZLE_PARK_Y_ONLY // Y move only is required to park
#define NOZZLE_PARK_MOVE 0 // Park motion: 0 = XY Move, 1 = X Only, 2 = Y Only, 3 = X before Y, 4 = Y before X
#define NOZZLE_PARK_Z_RAISE_MIN 2 // (mm) Always raise Z by at least this distance
#define NOZZLE_PARK_XY_FEEDRATE 100 // (mm/s) X and Y axes feedrate (also used for delta Z axis)
#define NOZZLE_PARK_Z_FEEDRATE 5 // (mm/s) Z axis feedrate (not used for delta printers)
Expand Down
4 changes: 4 additions & 0 deletions Marlin/src/inc/SanityCheck.h
Original file line number Diff line number Diff line change
Expand Up @@ -609,6 +609,10 @@
#error "LCD_SCREEN_ROT_270 is now LCD_SCREEN_ROTATE with a value of 270."
#elif defined(DEFAULT_LCD_BRIGHTNESS)
#error "DEFAULT_LCD_BRIGHTNESS is now LCD_BRIGHTNESS_DEFAULT."
#elif defined(NOZZLE_PARK_X_ONLY)
#error "NOZZLE_PARK_X_ONLY is now NOZZLE_PARK_MOVE 1."
#elif defined(NOZZLE_PARK_Y_ONLY)
#error "NOZZLE_PARK_X_ONLY is now NOZZLE_PARK_MOVE 2."
#endif

constexpr float arm[] = AXIS_RELATIVE_MODES;
Expand Down
17 changes: 12 additions & 5 deletions Marlin/src/libs/nozzle.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -254,11 +254,18 @@ Nozzle nozzle;
break;
}

do_blocking_move_to_xy(
TERN(NOZZLE_PARK_Y_ONLY, current_position, park).x,
TERN(NOZZLE_PARK_X_ONLY, current_position, park).y,
fr_xy
);
#ifndef NOZZLE_PARK_MOVE
#define NOZZLE_PARK_MOVE 0
#endif
switch (NOZZLE_PARK_MOVE) {
case 0: do_blocking_move_to_xy(park, fr_xy); break;
case 1: do_blocking_move_to_x(park.x, fr_xy); break;
case 2: do_blocking_move_to_y(park.y, fr_xy); break;
case 3: do_blocking_move_to_x(park.x, fr_xy);
do_blocking_move_to_y(park.y, fr_xy); break;
case 4: do_blocking_move_to_y(park.y, fr_xy);
do_blocking_move_to_x(park.x, fr_xy); break;
}

report_current_position();
}
Expand Down

0 comments on commit 3bbcb47

Please sign in to comment.