|
|
|
@ -119,19 +119,37 @@ static void lcd_factory_settings() {
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if ENABLED(DUAL_X_CARRIAGE)
|
|
|
|
|
|
|
|
|
|
#if HAS_HOTEND_OFFSET
|
|
|
|
|
#include "../../module/motion.h"
|
|
|
|
|
#include "../../gcode/queue.h"
|
|
|
|
|
|
|
|
|
|
void _recalc_IDEX_settings() {
|
|
|
|
|
if (active_extruder) { // For the 2nd extruder re-home so the next tool-change gets the new offsets.
|
|
|
|
|
void _recalc_offsets() {
|
|
|
|
|
if (active_extruder && all_axes_known()) { // For the 2nd extruder re-home so the next tool-change gets the new offsets.
|
|
|
|
|
enqueue_and_echo_commands_P(PSTR("G28")); // In future, we can babystep the 2nd extruder (if active), making homing unnecessary.
|
|
|
|
|
active_extruder = 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void menu_IDEX() {
|
|
|
|
|
void menu_tool_offsets() {
|
|
|
|
|
START_MENU();
|
|
|
|
|
MENU_BACK(MSG_MAIN);
|
|
|
|
|
#if ENABLED(DUAL_X_CARRIAGE)
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float52, MSG_X_OFFSET, &hotend_offset[X_AXIS][1], MIN(X2_HOME_POS, X2_MAX_POS) - 25.0, MAX(X2_HOME_POS, X2_MAX_POS) + 25.0, _recalc_offsets);
|
|
|
|
|
#else
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float52, MSG_X_OFFSET, &hotend_offset[X_AXIS][1], -10.0, 10.0, _recalc_offsets);
|
|
|
|
|
#endif
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float52, MSG_Y_OFFSET, &hotend_offset[Y_AXIS][1], -10.0, 10.0, _recalc_offsets);
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float52, MSG_Z_OFFSET, &hotend_offset[Z_AXIS][1], Z_PROBE_LOW_POINT, 10.0, _recalc_offsets);
|
|
|
|
|
#if ENABLED(EEPROM_SETTINGS)
|
|
|
|
|
MENU_ITEM(function, MSG_STORE_EEPROM, lcd_store_settings);
|
|
|
|
|
#endif
|
|
|
|
|
END_MENU();
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if ENABLED(DUAL_X_CARRIAGE)
|
|
|
|
|
|
|
|
|
|
void menu_idex() {
|
|
|
|
|
START_MENU();
|
|
|
|
|
MENU_BACK(MSG_MAIN);
|
|
|
|
|
|
|
|
|
@ -146,10 +164,6 @@ static void lcd_factory_settings() {
|
|
|
|
|
: PSTR("M605 S1\nT0\nM605 S2 X200\nG28 X\nG1 X100\nM605 S3 X200")
|
|
|
|
|
);
|
|
|
|
|
MENU_ITEM(gcode, MSG_IDEX_MODE_FULL_CTRL, PSTR("M605 S0\nG28 X"));
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float52, MSG_IDEX_X_OFFSET , &hotend_offset[X_AXIS][1], MIN(X2_HOME_POS, X2_MAX_POS) - 25.0, MAX(X2_HOME_POS, X2_MAX_POS) + 25.0, _recalc_IDEX_settings);
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float52, MSG_IDEX_Y_OFFSET , &hotend_offset[Y_AXIS][1], -10.0, 10.0, _recalc_IDEX_settings);
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float52, MSG_IDEX_Z_OFFSET , &hotend_offset[Z_AXIS][1], -10.0, 10.0, _recalc_IDEX_settings);
|
|
|
|
|
MENU_ITEM(gcode, MSG_IDEX_SAVE_OFFSETS, PSTR("M500"));
|
|
|
|
|
END_MENU();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -287,8 +301,12 @@ void menu_configuration() {
|
|
|
|
|
MENU_ITEM(submenu, MSG_DELTA_CALIBRATE, menu_delta_calibrate);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if HAS_HOTEND_OFFSET
|
|
|
|
|
MENU_ITEM(submenu, MSG_OFFSETS_MENU, menu_tool_offsets);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if ENABLED(DUAL_X_CARRIAGE)
|
|
|
|
|
MENU_ITEM(submenu, MSG_IDEX_MENU, menu_IDEX);
|
|
|
|
|
MENU_ITEM(submenu, MSG_IDEX_MENU, menu_idex);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if ENABLED(BLTOUCH)
|
|
|
|
|