Add SET_FILAMENT_SETTINGS macro

Set print parameters based on filament 'name' or 'id' passed from slicer
This commit is contained in:
oducceu
2021-12-17 22:38:08 +03:00
parent a90d539c6c
commit fa5b108264

View File

@@ -0,0 +1,37 @@
[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 <GUID> 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}