Follow-up to 394494b3ac
: Fixed deceleration/acceleration issue also for gap-fill. Also, deceleration before bridge infill is now working.
This commit is contained in:
parent
3cad3f6b89
commit
7dac30714b
1 changed files with 10 additions and 11 deletions
|
@ -59,9 +59,8 @@ PressureEqualizer::PressureEqualizer(const Slic3r::GCodeConfig &config) : m_use_
|
|||
extrusion_rate_slope.positive = m_max_volumetric_extrusion_rate_slope_positive;
|
||||
}
|
||||
|
||||
// Don't regulate the pressure in infill, gap fill and ironing.
|
||||
// TODO: Do we want to regulate pressure in erWipeTower, erCustom and erMixed?
|
||||
for (const ExtrusionRole er : {erBridgeInfill, erGapFill, erIroning}) {
|
||||
// Don't regulate the pressure before and after gap-fill and ironing.
|
||||
for (const ExtrusionRole er : {erGapFill, erIroning}) {
|
||||
m_max_volumetric_extrusion_rate_slopes[er].negative = 0;
|
||||
m_max_volumetric_extrusion_rate_slopes[er].positive = 0;
|
||||
}
|
||||
|
@ -520,8 +519,8 @@ void PressureEqualizer::adjust_volumetric_rate()
|
|||
for (; !m_gcode_lines[idx_prev].extruding() && idx_prev != fist_line_idx; --idx_prev);
|
||||
if (!m_gcode_lines[idx_prev].extruding())
|
||||
break;
|
||||
// Don't decelerate before ironing.
|
||||
if (m_gcode_lines[line_idx].extrusion_role == erIroning) {
|
||||
// Don't decelerate before ironing and gap-fill.
|
||||
if (m_gcode_lines[line_idx].extrusion_role == erIroning || m_gcode_lines[line_idx].extrusion_role == erGapFill) {
|
||||
line_idx = idx_prev;
|
||||
continue;
|
||||
}
|
||||
|
@ -564,8 +563,8 @@ void PressureEqualizer::adjust_volumetric_rate()
|
|||
}
|
||||
}
|
||||
// feedrate_per_extrusion_role[iRole] = (iRole == line.extrusion_role) ? line.volumetric_extrusion_rate_start : rate_start;
|
||||
// Don't store feed rate for ironing.
|
||||
if (line.extrusion_role != erIroning)
|
||||
// Don't store feed rate for ironing and gap-fill.
|
||||
if (line.extrusion_role != erIroning && line.extrusion_role != erGapFill)
|
||||
feedrate_per_extrusion_role[iRole] = line.volumetric_extrusion_rate_start;
|
||||
}
|
||||
}
|
||||
|
@ -579,8 +578,8 @@ void PressureEqualizer::adjust_volumetric_rate()
|
|||
for (; !m_gcode_lines[idx_next].extruding() && idx_next != last_line_idx; ++idx_next);
|
||||
if (!m_gcode_lines[idx_next].extruding())
|
||||
break;
|
||||
// Don't accelerate after ironing.
|
||||
if (m_gcode_lines[line_idx].extrusion_role == erIroning) {
|
||||
// Don't accelerate after ironing and gap-fill.
|
||||
if (m_gcode_lines[line_idx].extrusion_role == erIroning || m_gcode_lines[line_idx].extrusion_role == erGapFill) {
|
||||
line_idx = idx_next;
|
||||
continue;
|
||||
}
|
||||
|
@ -620,8 +619,8 @@ void PressureEqualizer::adjust_volumetric_rate()
|
|||
}
|
||||
}
|
||||
// feedrate_per_extrusion_role[iRole] = (iRole == line.extrusion_role) ? line.volumetric_extrusion_rate_end : rate_end;
|
||||
// Don't store feed rate for ironing.
|
||||
if (line.extrusion_role != erIroning)
|
||||
// Don't store feed rate for ironing and gap-fill.
|
||||
if (line.extrusion_role != erIroning && line.extrusion_role != erGapFill)
|
||||
feedrate_per_extrusion_role[iRole] = line.volumetric_extrusion_rate_end;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue