Reduce E_D_ratio code

This commit is contained in:
Scott Lahteine
2017-03-01 17:40:07 -06:00
parent de6c40ed8f
commit b3e2bd6f29
3 changed files with 23 additions and 42 deletions

View File

@ -142,7 +142,7 @@ float Planner::previous_speed[NUM_AXIS],
#if ENABLED(LIN_ADVANCE)
float Planner::extruder_advance_k = LIN_ADVANCE_K,
Planner::E_D_ratio = LIN_ADVANCE_E_D_RATIO,
Planner::advance_ed_ratio = LIN_ADVANCE_E_D_RATIO,
Planner::position_float[NUM_AXIS] = { 0 };
#endif
@ -1324,15 +1324,13 @@ void Planner::_buffer_line(const float &a, const float &b, const float &c, const
&& extruder_advance_k
&& (uint32_t)esteps != block->step_event_count
&& de_float > 0.0;
if (block->use_advance_lead) {
// Check if we should use the fixed E_D_ratio
if (UNEAR_ZERO(E_D_ratio)) {
block->abs_adv_steps_multiplier8 = lround(extruder_advance_k * (de_float / mm_D_float) * block->nominal_speed / (float)block->nominal_rate * axis_steps_per_mm[E_AXIS_N] * 256.0);
}
else {
block->abs_adv_steps_multiplier8 = lround(extruder_advance_k * E_D_ratio * block->nominal_speed / (float)block->nominal_rate * axis_steps_per_mm[E_AXIS_N] * 256.0);
}
}
if (block->use_advance_lead)
block->abs_adv_steps_multiplier8 = lround(
extruder_advance_k
* (UNEAR_ZERO(advance_ed_ratio) ? de_float / mm_D_float : advance_ed_ratio) // Use the fixed ratio, if set
* (block->nominal_speed / (float)block->nominal_rate)
* axis_steps_per_mm[E_AXIS_N] * 256.0
);
#elif ENABLED(ADVANCE)