Account for flow adjustments in LA
The e/D ratio should be calculated using the extrusion length. As such, purify the e_D_ratio from the current extruder multiplier in order to account correctly for flow adjustments.
This commit is contained in:
parent
c54474f2db
commit
9b8f642b28
|
|
@ -299,7 +299,7 @@ extern float feedrate;
|
||||||
extern int feedmultiply;
|
extern int feedmultiply;
|
||||||
extern int extrudemultiply; // Sets extrude multiply factor (in percent) for all extruders
|
extern int extrudemultiply; // Sets extrude multiply factor (in percent) for all extruders
|
||||||
extern int extruder_multiply[EXTRUDERS]; // sets extrude multiply factor (in percent) for each extruder individually
|
extern int extruder_multiply[EXTRUDERS]; // sets extrude multiply factor (in percent) for each extruder individually
|
||||||
extern float volumetric_multiplier[EXTRUDERS]; // reciprocal of cross-sectional area of filament (in square millimeters), stored this way to reduce computational burden in planner
|
extern float extruder_multiplier[EXTRUDERS]; // reciprocal of cross-sectional area of filament (in square millimeters), stored this way to reduce computational burden in planner
|
||||||
extern float current_position[NUM_AXIS] ;
|
extern float current_position[NUM_AXIS] ;
|
||||||
extern float destination[NUM_AXIS] ;
|
extern float destination[NUM_AXIS] ;
|
||||||
extern float min_pos[3];
|
extern float min_pos[3];
|
||||||
|
|
|
||||||
|
|
@ -1098,7 +1098,7 @@ Having the real displacement of the head, we can calculate the total movement le
|
||||||
if (block->use_advance_lead) {
|
if (block->use_advance_lead) {
|
||||||
// all extrusion moves with LA require a compression which is proportional to the
|
// all extrusion moves with LA require a compression which is proportional to the
|
||||||
// extrusion_length to distance ratio (e/D)
|
// extrusion_length to distance ratio (e/D)
|
||||||
e_D_ratio = (e - position_float[E_AXIS]) /
|
e_D_ratio = ((e - position_float[E_AXIS]) / extruder_multiplier[extruder]) /
|
||||||
sqrt(sq(x - position_float[X_AXIS])
|
sqrt(sq(x - position_float[X_AXIS])
|
||||||
+ sq(y - position_float[Y_AXIS])
|
+ sq(y - position_float[Y_AXIS])
|
||||||
+ sq(z - position_float[Z_AXIS]));
|
+ sq(z - position_float[Z_AXIS]));
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue