|
|
@ -1303,18 +1303,33 @@ inline void set_homing_bump_feedrate(AxisEnum axis) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
feedrate = homing_feedrate[axis] / hbd;
|
|
|
|
feedrate = homing_feedrate[axis] / hbd;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// line_to_current_position
|
|
|
|
|
|
|
|
// Move the planner to the current position from wherever it last moved
|
|
|
|
|
|
|
|
// (or from wherever it has been told it is located).
|
|
|
|
|
|
|
|
//
|
|
|
|
inline void line_to_current_position() {
|
|
|
|
inline void line_to_current_position() {
|
|
|
|
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], feedrate / 60, active_extruder);
|
|
|
|
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], feedrate / 60, active_extruder);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
inline void line_to_z(float zPosition) {
|
|
|
|
inline void line_to_z(float zPosition) {
|
|
|
|
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], zPosition, current_position[E_AXIS], feedrate / 60, active_extruder);
|
|
|
|
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], zPosition, current_position[E_AXIS], feedrate / 60, active_extruder);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// line_to_destination
|
|
|
|
|
|
|
|
// Move the planner, not necessarily synced with current_position
|
|
|
|
|
|
|
|
//
|
|
|
|
inline void line_to_destination(float mm_m) {
|
|
|
|
inline void line_to_destination(float mm_m) {
|
|
|
|
plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], mm_m / 60, active_extruder);
|
|
|
|
plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], mm_m / 60, active_extruder);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
inline void line_to_destination() {
|
|
|
|
inline void line_to_destination() {
|
|
|
|
line_to_destination(feedrate);
|
|
|
|
line_to_destination(feedrate);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* sync_plan_position
|
|
|
|
|
|
|
|
* Set planner / stepper positions to the cartesian current_position.
|
|
|
|
|
|
|
|
* The stepper code translates these coordinates into step units.
|
|
|
|
|
|
|
|
* Allows translation between steps and units (mm) for cartesian & core robots
|
|
|
|
|
|
|
|
*/
|
|
|
|
inline void sync_plan_position() {
|
|
|
|
inline void sync_plan_position() {
|
|
|
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
|
|
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
|
|
|
if (DEBUGGING(LEVELING)) DEBUG_POS("sync_plan_position", current_position);
|
|
|
|
if (DEBUGGING(LEVELING)) DEBUG_POS("sync_plan_position", current_position);
|
|
|
@ -3116,8 +3131,8 @@ inline void gcode_G28() {
|
|
|
|
#if ENABLED(DELTA)
|
|
|
|
#if ENABLED(DELTA)
|
|
|
|
delta_grid_spacing[0] = xGridSpacing;
|
|
|
|
delta_grid_spacing[0] = xGridSpacing;
|
|
|
|
delta_grid_spacing[1] = yGridSpacing;
|
|
|
|
delta_grid_spacing[1] = yGridSpacing;
|
|
|
|
float z_offset = zprobe_zoffset;
|
|
|
|
float zoffset = zprobe_zoffset;
|
|
|
|
if (code_seen(axis_codes[Z_AXIS])) z_offset += code_value();
|
|
|
|
if (code_seen(axis_codes[Z_AXIS])) zoffset += code_value();
|
|
|
|
#else // !DELTA
|
|
|
|
#else // !DELTA
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* solve the plane equation ax + by + d = z
|
|
|
|
* solve the plane equation ax + by + d = z
|
|
|
@ -3207,7 +3222,7 @@ inline void gcode_G28() {
|
|
|
|
eqnAMatrix[probePointCounter + 2 * abl2] = 1;
|
|
|
|
eqnAMatrix[probePointCounter + 2 * abl2] = 1;
|
|
|
|
indexIntoAB[xCount][yCount] = probePointCounter;
|
|
|
|
indexIntoAB[xCount][yCount] = probePointCounter;
|
|
|
|
#else
|
|
|
|
#else
|
|
|
|
bed_level[xCount][yCount] = measured_z + z_offset;
|
|
|
|
bed_level[xCount][yCount] = measured_z + zoffset;
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
probePointCounter++;
|
|
|
|
probePointCounter++;
|
|
|
|