Skip to content

Commit

Permalink
Fix of #8471 - Pressure equalizer caused unintentional deceleration b…
Browse files Browse the repository at this point in the history
…efore ironing and acceleration after ironing.
  • Loading branch information
hejllukas authored and Godrak committed Jul 29, 2022
1 parent e7c0c5b commit 881daec
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions src/libslic3r/GCode/PressureEqualizer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,9 @@ 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 and gap fill.
// 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}) {
for (const ExtrusionRole er : {erBridgeInfill, erGapFill, erIroning}) {
m_max_volumetric_extrusion_rate_slopes[er].negative = 0;
m_max_volumetric_extrusion_rate_slopes[er].positive = 0;
}
Expand Down Expand Up @@ -517,7 +517,7 @@ void PressureEqualizer::adjust_volumetric_rate()
// Limit by the succeeding volumetric flow rate.
rate_end = rate_succ;

if (line.extrusion_role == erExternalPerimeter || line.extrusion_role == erGapFill || line.extrusion_role == erBridgeInfill) {
if (line.extrusion_role == erExternalPerimeter || line.extrusion_role == erGapFill || line.extrusion_role == erBridgeInfill || line.extrusion_role == erIroning) {
rate_end = line.volumetric_extrusion_rate_end;
} else if (line.volumetric_extrusion_rate_end > rate_end) {
line.volumetric_extrusion_rate_end = rate_end;
Expand Down Expand Up @@ -562,7 +562,7 @@ void PressureEqualizer::adjust_volumetric_rate()
continue; // The positive rate is unlimited or the rate for ExtrusionRole iRole is unlimited.

float rate_start = feedrate_per_extrusion_role[iRole];
if (line.extrusion_role == erExternalPerimeter || line.extrusion_role == erGapFill || line.extrusion_role == erBridgeInfill) {
if (line.extrusion_role == erExternalPerimeter || line.extrusion_role == erGapFill || line.extrusion_role == erBridgeInfill || line.extrusion_role == erIroning) {
rate_start = line.volumetric_extrusion_rate_start;
} else if (iRole == line.extrusion_role && rate_prec < rate_start)
rate_start = rate_prec;
Expand Down

0 comments on commit 881daec

Please sign in to comment.