|
@@ -1313,16 +1313,15 @@ void Planner::_buffer_line(const float &a, const float &b, const float &c, const
|
1313
|
1313
|
#elif ENABLED(ADVANCE)
|
1314
|
1314
|
|
1315
|
1315
|
// Calculate advance rate
|
1316
|
|
- if (!esteps || (!block->steps[X_AXIS] && !block->steps[Y_AXIS] && !block->steps[Z_AXIS])) {
|
1317
|
|
- block->advance_rate = 0;
|
1318
|
|
- block->advance = 0;
|
1319
|
|
- }
|
1320
|
|
- else {
|
1321
|
|
- long acc_dist = estimate_acceleration_distance(0, block->nominal_rate, block->acceleration_steps_per_s2);
|
1322
|
|
- float advance = ((STEPS_PER_CUBIC_MM_E) * (EXTRUDER_ADVANCE_K)) * HYPOT(current_speed[E_AXIS], EXTRUSION_AREA) * 256;
|
|
1316
|
+ if (esteps && (block->steps[X_AXIS] || block->steps[Y_AXIS] || block->steps[Z_AXIS])) {
|
|
1317
|
+ const long acc_dist = estimate_acceleration_distance(0, block->nominal_rate, block->acceleration_steps_per_s2);
|
|
1318
|
+ const float advance = ((STEPS_PER_CUBIC_MM_E) * (EXTRUDER_ADVANCE_K)) * HYPOT(current_speed[E_AXIS], EXTRUSION_AREA) * 256;
|
1323
|
1319
|
block->advance = advance;
|
1324
|
1320
|
block->advance_rate = acc_dist ? advance / (float)acc_dist : 0;
|
1325
|
1321
|
}
|
|
1322
|
+ else
|
|
1323
|
+ block->advance_rate = block->advance = 0;
|
|
1324
|
+
|
1326
|
1325
|
/**
|
1327
|
1326
|
SERIAL_ECHO_START;
|
1328
|
1327
|
SERIAL_ECHOPGM("advance :");
|