|
@@ -622,11 +622,8 @@ void Planner::check_axes_activity() {
|
622
|
622
|
block->steps[Z_AXIS] = labs(dz);
|
623
|
623
|
#endif
|
624
|
624
|
|
625
|
|
- block->steps[E_AXIS] = labs(de);
|
626
|
|
- block->steps[E_AXIS] *= volumetric_multiplier[extruder];
|
627
|
|
- block->steps[E_AXIS] *= extruder_multiplier[extruder];
|
628
|
|
- block->steps[E_AXIS] /= 100;
|
629
|
|
- block->step_event_count = max(block->steps[X_AXIS], max(block->steps[Y_AXIS], max(block->steps[Z_AXIS], block->steps[E_AXIS])));
|
|
625
|
+ block->steps[E_AXIS] = labs(de) * volumetric_multiplier[extruder] * flow_percentage[extruder] * 0.01 + 0.5;
|
|
626
|
+ block->step_event_count = MAX4(block->steps[X_AXIS], block->steps[Y_AXIS], block->steps[Z_AXIS], block->steps[E_AXIS]);
|
630
|
627
|
|
631
|
628
|
// Bail if this is a zero-length block
|
632
|
629
|
if (block->step_event_count <= dropsegments) return;
|
|
@@ -809,7 +806,7 @@ void Planner::check_axes_activity() {
|
809
|
806
|
delta_mm[Y_AXIS] = dy * steps_to_mm[Y_AXIS];
|
810
|
807
|
delta_mm[Z_AXIS] = dz * steps_to_mm[Z_AXIS];
|
811
|
808
|
#endif
|
812
|
|
- delta_mm[E_AXIS] = 0.01 * (de * steps_to_mm[E_AXIS]) * volumetric_multiplier[extruder] * extruder_multiplier[extruder];
|
|
809
|
+ delta_mm[E_AXIS] = 0.01 * (de * steps_to_mm[E_AXIS]) * volumetric_multiplier[extruder] * flow_percentage[extruder];
|
813
|
810
|
|
814
|
811
|
if (block->steps[X_AXIS] <= dropsegments && block->steps[Y_AXIS] <= dropsegments && block->steps[Z_AXIS] <= dropsegments) {
|
815
|
812
|
block->millimeters = fabs(delta_mm[E_AXIS]);
|
|
@@ -930,8 +927,8 @@ void Planner::check_axes_activity() {
|
930
|
927
|
}
|
931
|
928
|
ys0 = axis_segment_time[Y_AXIS][0] = ys0 + segment_time;
|
932
|
929
|
|
933
|
|
- long max_x_segment_time = max(xs0, max(xs1, xs2)),
|
934
|
|
- max_y_segment_time = max(ys0, max(ys1, ys2)),
|
|
930
|
+ long max_x_segment_time = MAX3(xs0, xs1, xs2),
|
|
931
|
+ max_y_segment_time = MAX3(ys0, ys1, ys2),
|
935
|
932
|
min_xy_segment_time = min(max_x_segment_time, max_y_segment_time);
|
936
|
933
|
if (min_xy_segment_time < MAX_FREQ_TIME) {
|
937
|
934
|
float low_sf = speed_factor * min_xy_segment_time / (MAX_FREQ_TIME);
|