Replace extrudemultiply by extruder_multiply[active_extruder]
Fix for #1460. Seems to work with only one extruder. Can't test this myself with more.
This commit is contained in:
parent
e63076504d
commit
50a732360a
5 changed files with 6 additions and 8 deletions
|
@ -229,7 +229,6 @@ void refresh_cmd_timeout(void);
|
||||||
extern float homing_feedrate[];
|
extern float homing_feedrate[];
|
||||||
extern bool axis_relative_modes[];
|
extern bool axis_relative_modes[];
|
||||||
extern int feedmultiply;
|
extern int feedmultiply;
|
||||||
extern int extrudemultiply; // Sets extrude multiply factor (in percent) for all extruders
|
|
||||||
extern bool volumetric_enabled;
|
extern bool volumetric_enabled;
|
||||||
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 filament_size[EXTRUDERS]; // cross-sectional area of filament (in millimeters), typically around 1.75 or 2.85, 0 disables the volumetric calculations for the extruder.
|
extern float filament_size[EXTRUDERS]; // cross-sectional area of filament (in millimeters), typically around 1.75 or 2.85, 0 disables the volumetric calculations for the extruder.
|
||||||
|
|
|
@ -210,7 +210,6 @@ int homing_bump_divisor[] = HOMING_BUMP_DIVISOR;
|
||||||
bool axis_relative_modes[] = AXIS_RELATIVE_MODES;
|
bool axis_relative_modes[] = AXIS_RELATIVE_MODES;
|
||||||
int feedmultiply = 100; //100->1 200->2
|
int feedmultiply = 100; //100->1 200->2
|
||||||
int saved_feedmultiply;
|
int saved_feedmultiply;
|
||||||
int extrudemultiply = 100; //100->1 200->2
|
|
||||||
int extruder_multiply[EXTRUDERS] = ARRAY_BY_EXTRUDERS(100, 100, 100, 100);
|
int extruder_multiply[EXTRUDERS] = ARRAY_BY_EXTRUDERS(100, 100, 100, 100);
|
||||||
bool volumetric_enabled = false;
|
bool volumetric_enabled = false;
|
||||||
float filament_size[EXTRUDERS] = ARRAY_BY_EXTRUDERS(DEFAULT_NOMINAL_FILAMENT_DIA, DEFAULT_NOMINAL_FILAMENT_DIA, DEFAULT_NOMINAL_FILAMENT_DIA, DEFAULT_NOMINAL_FILAMENT_DIA);
|
float filament_size[EXTRUDERS] = ARRAY_BY_EXTRUDERS(DEFAULT_NOMINAL_FILAMENT_DIA, DEFAULT_NOMINAL_FILAMENT_DIA, DEFAULT_NOMINAL_FILAMENT_DIA, DEFAULT_NOMINAL_FILAMENT_DIA);
|
||||||
|
@ -3776,7 +3775,7 @@ inline void gcode_M221() {
|
||||||
extruder_multiply[tmp_extruder] = sval;
|
extruder_multiply[tmp_extruder] = sval;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
extrudemultiply = sval;
|
extruder_multiply[active_extruder] = sval;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4213,7 +4212,7 @@ inline void gcode_M400() { st_synchronize(); }
|
||||||
//SERIAL_PROTOCOLPGM("Filament dia (measured mm):");
|
//SERIAL_PROTOCOLPGM("Filament dia (measured mm):");
|
||||||
//SERIAL_PROTOCOL(filament_width_meas);
|
//SERIAL_PROTOCOL(filament_width_meas);
|
||||||
//SERIAL_PROTOCOLPGM("Extrusion ratio(%):");
|
//SERIAL_PROTOCOLPGM("Extrusion ratio(%):");
|
||||||
//SERIAL_PROTOCOL(extrudemultiply);
|
//SERIAL_PROTOCOL(extruder_multiply[active_extruder]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -369,7 +369,7 @@ static void lcd_implementation_status_screen() {
|
||||||
lcd_printPGM(PSTR("dia:"));
|
lcd_printPGM(PSTR("dia:"));
|
||||||
lcd_print(ftostr12ns(filament_width_meas));
|
lcd_print(ftostr12ns(filament_width_meas));
|
||||||
lcd_printPGM(PSTR(" factor:"));
|
lcd_printPGM(PSTR(" factor:"));
|
||||||
lcd_print(itostr3(extrudemultiply));
|
lcd_print(itostr3(extruder_multiply[active_extruder]));
|
||||||
lcd_print('%');
|
lcd_print('%');
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -545,7 +545,7 @@ float junction_deviation = 0.1;
|
||||||
block->steps[Z_AXIS] = labs(dz);
|
block->steps[Z_AXIS] = labs(dz);
|
||||||
block->steps[E_AXIS] = labs(de);
|
block->steps[E_AXIS] = labs(de);
|
||||||
block->steps[E_AXIS] *= volumetric_multiplier[active_extruder];
|
block->steps[E_AXIS] *= volumetric_multiplier[active_extruder];
|
||||||
block->steps[E_AXIS] *= extrudemultiply;
|
block->steps[E_AXIS] *= extruder_multiply[active_extruder];
|
||||||
block->steps[E_AXIS] /= 100;
|
block->steps[E_AXIS] /= 100;
|
||||||
block->step_event_count = max(block->steps[X_AXIS], max(block->steps[Y_AXIS], max(block->steps[Z_AXIS], block->steps[E_AXIS])));
|
block->step_event_count = max(block->steps[X_AXIS], max(block->steps[Y_AXIS], max(block->steps[Z_AXIS], block->steps[E_AXIS])));
|
||||||
|
|
||||||
|
@ -679,7 +679,7 @@ float junction_deviation = 0.1;
|
||||||
delta_mm[Y_AXIS] = dy / axis_steps_per_unit[Y_AXIS];
|
delta_mm[Y_AXIS] = dy / axis_steps_per_unit[Y_AXIS];
|
||||||
#endif
|
#endif
|
||||||
delta_mm[Z_AXIS] = dz / axis_steps_per_unit[Z_AXIS];
|
delta_mm[Z_AXIS] = dz / axis_steps_per_unit[Z_AXIS];
|
||||||
delta_mm[E_AXIS] = (de / axis_steps_per_unit[E_AXIS]) * volumetric_multiplier[active_extruder] * extrudemultiply / 100.0;
|
delta_mm[E_AXIS] = (de / axis_steps_per_unit[E_AXIS]) * volumetric_multiplier[active_extruder] * extruder_multiply[active_extruder] / 100.0;
|
||||||
|
|
||||||
if (block->steps[X_AXIS] <= dropsegments && block->steps[Y_AXIS] <= dropsegments && block->steps[Z_AXIS] <= dropsegments) {
|
if (block->steps[X_AXIS] <= dropsegments && block->steps[Y_AXIS] <= dropsegments && block->steps[Z_AXIS] <= dropsegments) {
|
||||||
block->millimeters = fabs(delta_mm[E_AXIS]);
|
block->millimeters = fabs(delta_mm[E_AXIS]);
|
||||||
|
|
|
@ -485,7 +485,7 @@ static void lcd_tune_menu() {
|
||||||
MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_BED, &target_temperature_bed, 0, BED_MAXTEMP - 15);
|
MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_BED, &target_temperature_bed, 0, BED_MAXTEMP - 15);
|
||||||
#endif
|
#endif
|
||||||
MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_FAN_SPEED, &fanSpeed, 0, 255);
|
MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_FAN_SPEED, &fanSpeed, 0, 255);
|
||||||
MENU_ITEM_EDIT(int3, MSG_FLOW, &extrudemultiply, 10, 999);
|
MENU_ITEM_EDIT(int3, MSG_FLOW, &extruder_multiply[active_extruder], 10, 999);
|
||||||
MENU_ITEM_EDIT(int3, MSG_FLOW MSG_F0, &extruder_multiply[0], 10, 999);
|
MENU_ITEM_EDIT(int3, MSG_FLOW MSG_F0, &extruder_multiply[0], 10, 999);
|
||||||
#if TEMP_SENSOR_1 != 0
|
#if TEMP_SENSOR_1 != 0
|
||||||
MENU_ITEM_EDIT(int3, MSG_FLOW MSG_F1, &extruder_multiply[1], 10, 999);
|
MENU_ITEM_EDIT(int3, MSG_FLOW MSG_F1, &extruder_multiply[1], 10, 999);
|
||||||
|
|
Reference in a new issue