mirror of
https://github.com/QIDITECH/QIDISlicer.git
synced 2026-01-31 07:58:43 +03:00
Volume and Pressure Advance
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user