Volume and Pressure Advance

This commit is contained in:
sunsets
2023-06-12 10:06:29 +08:00
parent ae69c9f1b8
commit ba9f8377ba
6 changed files with 89 additions and 15 deletions

View File

@@ -754,7 +754,14 @@ std::string CoolingBuffer::apply_layer_cooldown(
int min_fan_speed = EXTRUDER_CONFIG(min_fan_speed);
//B15
int enable_auxiliary_fan = EXTRUDER_CONFIG(enable_auxiliary_fan);
//B25
int enable_volume_fan = EXTRUDER_CONFIG(enable_volume_fan);
int fan_speed_new = EXTRUDER_CONFIG(fan_always_on) ? min_fan_speed : 0;
//B26
bool enable_advance_pressure = EXTRUDER_CONFIG(enable_advance_pressure);
float advance_pressure = float(EXTRUDER_CONFIG(advance_pressure));
float smooth_time = float(EXTRUDER_CONFIG(smooth_time));
std::pair<int, int> custom_fan_speed_limits{fan_speed_new, 100 };
int disable_fan_first_layers = EXTRUDER_CONFIG(disable_fan_first_layers);
// Is the fan speed ramp enabled?
@@ -798,11 +805,24 @@ std::string CoolingBuffer::apply_layer_cooldown(
custom_fan_speed_limits.second = 0;
}
//B15
if (int(layer_id) == disable_fan_first_layers && enable_auxiliary_fan != 0 && fan_speed_new != m_fan_speed) {
if (int(layer_id) >= disable_fan_first_layers && fan_speed_new != m_fan_speed) {
std::ostringstream fan_gcode;
fan_gcode << "M106 P2 S" << 255.0 * enable_auxiliary_fan / 100.0 << "\n";
new_gcode += fan_gcode.str();
}
//B25
if (int(layer_id) == disable_fan_first_layers && enable_volume_fan != 0 && fan_speed_new != m_fan_speed) {
std::ostringstream fan_gcode;
fan_gcode << "M106 P3 S" << 255.0 * enable_volume_fan / 100.0 << "\n";
new_gcode += fan_gcode.str();
}
//B26
if (enable_advance_pressure && fan_speed_new != m_fan_speed) {
std::ostringstream pressure_advance_gcode;
pressure_advance_gcode << "M900 K" << advance_pressure << " T" << smooth_time << "\n";
new_gcode += pressure_advance_gcode.str();
}
if (fan_speed_new != m_fan_speed) {
m_fan_speed = fan_speed_new;
new_gcode += GCodeWriter::set_fan(m_config.gcode_flavor, m_config.gcode_comments, m_fan_speed);