diff --git a/files/macros/fans-control.cfg b/files/macros/fans-control.cfg index a9f8cae..e8a2340 100644 --- a/files/macros/fans-control.cfg +++ b/files/macros/fans-control.cfg @@ -99,41 +99,43 @@ gcode: {% if tmp > 0 %} {% if fan == 0 %} {% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan0_min) / 255 * tmp %} + {% set f0min = printer["gcode_macro PRINTER_PARAM"].fan0_min %} {% if printer['gcode_macro Qmode'].flag | int == 1 %} - SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan0_min + value} + SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={([f0min,value]|max)} {% if value > (255 - printer['gcode_macro PRINTER_PARAM'].fan0_min) / 2 %} {% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan0_min) / 2 %} {% else %} - {% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + value %} + {% set value = ([f0min, value]|max) %} {% endif %} {% else %} - {% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + value %} {% endif %} {% endif %} {% if fan == 1 %} {% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan1_min) / 255 * tmp %} + {% set f1min = printer["gcode_macro PRINTER_PARAM"].fan1_min %} {% if printer['gcode_macro Qmode'].flag | int == 1 %} - SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan1_min + value} + SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={([f1min,value]|max)} {% if value > (255 - printer['gcode_macro PRINTER_PARAM'].fan1_min) / 2 %} {% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan1_min) / 2 %} {% else %} - {% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + value %} + {% set value = ([f1min,value]|max) %} {% endif %} {% else %} - {% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + value %} + {% set value = ([f1min,value]|max) %} {% endif %} {% endif %} {% if fan == 2 %} {% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) / 255 * tmp %} + {% set f2min = printer["gcode_macro PRINTER_PARAM"].fan2_min %} {% if printer['gcode_macro Qmode'].flag | int == 1 %} - SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan2_min + value} + SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={([f2min,value]|max)} {% if value > (255 - printer['gcode_macro PRINTER_PARAM'].fan2_min) / 2 %} {% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan2_min) / 2 %} {% else %} - {% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + value %} + {% set value = ([f2min,value]|max) %} {% endif %} {% else %} - {% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + value %} + {% set value = ([f2min,value]|max) %} {% endif %} {% endif %} {% endif %}