# ============================================================================ # KNCM - Nozzle Cleaning Macros # Simplified nozzle cleaning for reliable prints # ============================================================================ # ---------------------------------------------------------------------------- # PRINTER VARIABLES - Neptune 4 Plus # ---------------------------------------------------------------------------- # Adjust these values for your specific printer model! # ---------------------------------------------------------------------------- [gcode_variable printer_settings] # Bed dimensions (not nozzle travel, but usable bed area) # N4=229, N4Plus=330, N4Max=430 variable_printer_bed_y_max: 330 # Nozzle clean position (front-left corner, adjust for your brush/cloth) variable_clean_x: 0 variable_clean_y: 0 variable_clean_z: 0.5 # Park position (front center for easy access) variable_park_x: 165 variable_park_y: 10 variable_park_z: 50 # Purge line settings variable_purge_start_x: 10 variable_purge_end_x: 300 variable_purge_y: 10 variable_purge_z: 0.2 variable_purge_amount: 30 # ---------------------------------------------------------------------------- # CLEAN_NOZZLE - Wipe nozzle on brush/cloth # ---------------------------------------------------------------------------- [gcode_macro CLEAN_NOZZLE] description: Clean nozzle on brush or cloth gcode: {% set FILAMENT_TYPE = params.FILAMENT_TYPE|default("PLA")|upper %} {% set CLEAN_X = params.CLEAN_X|default(printer_settings.clean_x)|int %} {% set CLEAN_Y = params.CLEAN_Y|default(printer_settings.clean_y)|int %} {% set CLEAN_Z = params.CLEAN_Z|default(printer_settings.clean_z)|float %} {% set PASSES = params.PASSES|default(3)|int %} RESPOND MSG="Cleaning nozzle..." # Move to clean position G1 X{CLEAN_X} Y{CLEAN_Y} Z{CLEAN_Z} F3000 # Wipe passes {% for i in range(PASSES) %} G1 X{CLEAN_X + 10} F1800 G1 X{CLEAN_X} F1800 {% endfor %} # Lift Z G1 Z10 F600 RESPOND MSG="Nozzle clean complete!" # ---------------------------------------------------------------------------- # SMART_PARK - Park near front for easy access # ---------------------------------------------------------------------------- [gcode_macro SMART_PARK] description: Park nozzle at front of bed for easy access gcode: {% set PARK_X = params.PARK_X|default(printer_settings.park_x)|int %} {% set PARK_Y = params.PARK_Y|default(printer_settings.park_y)|int %} {% set PARK_Z = params.PARK_Z|default(printer_settings.park_z)|int %} G1 X{PARK_X} Y{PARK_Y} Z{PARK_Z} F6000 RESPOND MSG="Printer parked at front" # ---------------------------------------------------------------------------- # LINE_PURGE - Print purge line at start of bed # ---------------------------------------------------------------------------- [gcode_macro LINE_PURGE] description: Print purge line at start of bed gcode: {% set PURGE_START_X = params.START_X|default(printer_settings.purge_start_x)|int %} {% set PURGE_END_X = params.END_X|default(printer_settings.purge_end_x)|int %} {% set PURGE_Y = params.Y|default(printer_settings.purge_y)|int %} {% set PURGE_Z = params.Z|default(printer_settings.purge_z)|float %} {% set PURGE_AMOUNT = params.AMOUNT|default(printer_settings.purge_amount)|int %} # Move to purge start G1 X{PURGE_START_X} Y{PURGE_Y} Z{PURGE_Z} F3000 # Extrude purge line G1 X{PURGE_END_X} E{PURGE_AMOUNT} F600 # Lift Z G1 Z2 F600 RESPOND MSG="Purge line printed" # ---------------------------------------------------------------------------- # Frame Light Control (Neptune 4 Plus) # ---------------------------------------------------------------------------- [gcode_macro Frame_Light_ON] description: Turn on frame LED lights gcode: SET_PIN PIN=frame_light VALUE=255 [gcode_macro Frame_Light_OFF] description: Turn off frame LED lights gcode: SET_PIN PIN=frame_light VALUE=0 # ---------------------------------------------------------------------------- # Part Light Control (Neptune 4 Plus) # ---------------------------------------------------------------------------- [gcode_macro Part_Light_ON] description: Turn on part cooling fan light gcode: SET_PIN PIN=part_light VALUE=255 [gcode_macro Part_Light_OFF] description: Turn off part cooling fan light gcode: SET_PIN PIN=part_light VALUE=0