[gcode_macro SET_FILAMENT_SETTINGS] description: Set print parameters based on filament 'name' or 'id' passed from slicer # Add following to printer Start G-code : ## PrusaSliser/SuperSlicer: # SET_FILAMENT_SETTINGS FILAMENT='{filament_settings_id[0]}' # Note: {filament_settings_id[0]} must be enclosed in 'single quotes' to properly process spaces ## Cura: # SET_FILAMENT_SETTINGS FILAMENT={material_guid} # Note: if you encounter duplicates of {material_guid} just edit in '%USERPROFILE%\AppData\Roaming\cura\4.xx\materials\*.xml.fdm_material' manually gcode: {% set filament = params.FILAMENT|default("RESET") %} {% set nozzle = printer.configfile.settings.extruder.nozzle_diameter|default(0.4)|float %} {% if filament != 'RESET' %} # Set parameters {% if filament == 'EXAMPLE' %} {% if nozzle == 0.4 %} {% set settings = {'pressure_advance': '0.1', 'smooth_time': '0.040', 'retract_length': '1.0', 'retract_speed': '20'} %} {% endif %} {% if nozzle == 0.6 %} {% set settings = {'pressure_advance': '0.1', 'smooth_time': '0.040', 'retract_length': '1.0', 'retract_speed': '20'} %} {% endif %} {% if nozzle == 0.8 %} {% set settings = {'pressure_advance': '0.1', 'smooth_time': '0.040', 'retract_length': '1.0', 'retract_speed': '20'} %} {% endif %} {% elif filament == 'FD ABS' or filament == 'faca2421-e10c-4dbf-a1dc-9f3b620fd969' %} {% if nozzle == 0.4 %} {% set settings = {'pressure_advance': '0.1', 'smooth_time': '0.040', 'retract_length': '1.0', 'retract_speed': '20'} %} {% endif %} {% elif filament == 'FD PETG' or filament == 'fdff3c20-1d38-4de5-89ee-81789ad8d682' %} {% if nozzle == 0.4 %} {% set settings = {'pressure_advance': '0.13', 'smooth_time': '0.100', 'retract_length': '0.4', 'retract_speed': '20'} %} {% endif %} {% elif filament == 'FD PLA' or filament == 'b9865b5d-e8fe-41e6-a0ab-e34c58aa66a2' %} {% if nozzle == 0.4 %} {% set settings = {'pressure_advance': '0.17', 'smooth_time': '0.040', 'retract_length': '1.0', 'retract_speed': '20'} %} {% endif %} {% elif filament == 'HTP ABS' %} {% if nozzle == 0.4 %} {% set settings = {'pressure_advance': '0.13', 'smooth_time': '0.040', 'retract_length': '1.0', 'retract_speed': '20'} %} {% endif %} {% endif %} {% else %} # Reset {% set pressure_advance = printer.configfile.settings.extruder.pressure_advance|float %} {% set smooth_time = printer.configfile.settings.extruder.pressure_advance_smooth_time|float %} {% set retract_length = printer.configfile.settings.firmware_retraction.retract_length|float %} {% set retract_speed = printer.configfile.settings.firmware_retraction.retract_speed|float %} {% set settings = {'pressure_advance': pressure_advance, 'smooth_time': smooth_time, 'retract_length': retract_length, 'retract_speed': retract_speed} %} {% endif %} SET_PRESSURE_ADVANCE ADVANCE={settings.pressure_advance} SMOOTH_TIME={settings.smooth_time} SET_RETRACTION RETRACT_LENGTH={settings.retract_length} RETRACT_SPEED={settings.retract_speed}