Originally Posted by
Roxy
Well... I'm surprised! This isn't the way it is supposed to be. With your options, it is true. It homes the X & Y before it messes with the Z. We need to add a do_blocking_move_relative() to lift the Z at the right time. Please search for the following code block (ignoring the first line which needs to be added). Insert the 1st line you see in front of the code block. That should fix the issue for you.
------------------------
do_blocking_move_relative( 0.0, 0.0, 5.0); <----<<< Add this line just in front of this code block!
if((home_all_axis) || (code_seen(axis_codes[X_AXIS])))
{
#ifdef DUAL_X_CARRIAGE
int tmp_extruder = active_extruder;
extruder_duplication_enabled = false;
active_extruder = !active_extruder;
HOMEAXIS(X);
inactive_extruder_x_pos = current_position[X_AXIS];
active_extruder = tmp_extruder;
HOMEAXIS(X);
// reset state used by the different modes
memcpy(raised_parked_position, current_position, sizeof(raised_parked_position));
delayed_move_time = 0;
active_extruder_parked = true;
#else
HOMEAXIS(X);
#endif
}
if((home_all_axis) || (code_seen(axis_codes[Y_AXIS]))) {
HOMEAXIS(Y);
}