-
-
Save alienboyxp/d218917893ba4ba539ce6a0b96499b4b to your computer and use it in GitHub Desktop.
# Current Version v_202305221109 | |
# Carga las variables globales de forma automática | |
# Mas info - https://3dwork.gitbook.io/3dwork.io/klipper/mejoras/macros-mejoras/cambio-filamentos-m600 | |
[delayed_gcode activate_VAR_GLOBALS] | |
initial_duration: 1 | |
gcode: | |
_VAR_GLOBALS ; Se cargan las variables globales al iniciar la impresion. | |
[gcode_macro _VAR_GLOBALS] | |
############################################################################## | |
# LAS VARIABLES BOOLEANAS(True|False) SIEMPRE LA PRIMERA LETRA EN MAYUSCULAS # | |
############################################################################## | |
# Temperaturas de impresion | |
variable_temp_extruder : 225.0 # temperatura de impresion | |
variable_temp_extruder_pause : 0 # temperatura de impresion antes de la pausa | |
variable_temp_bed : 55.0 # temperatura de cama | |
variable_temp_chamber : 60.0 # temperatura de cabina | |
variable_temp_keep : False # mantiene la temperatura cuando esta la impresion en pausa (True|False) | |
variable_preheat_extruder_temp : 150 # Default Extruder Temperature (Voron TAP 150°) | |
# Motores | |
variable_home_cur : 0.700 # Vref mAh | |
# Bandeja Electronica | |
variable_status_et : False # Bandeja de electronica Abierta/Cerrada (True|False) | |
# Posición de parking | |
variable_calc_parking : True # habilita/deshabilita el pariking calculado (False = se desplaza a las coordenadas proporcionadas abajo) | |
variable_x_park : 100.0 # Posicion de X en parking | |
variable_y_park : 100.0 # Posicion de X en parking | |
variable_z_park : 100.0 # Posicion mínimal de Z en parking | |
# Pids por defecto | |
variable_temp_pid_e : 230.0 # temperatura del extrusor para realizar el PID | |
variable_temp_pid_b : 60.0 # temperatura de la cama para realizar el PID | |
variable_default_bedtemp : 30.0 # temperatura mínima por defecto al calibrar la cama | |
variable_z_up : 10.0 # sube x milimetros al hacer desplazamientos(home) | |
# posicion central | |
variable_calc_center_pos : True # calcula el centro de la cama (False = se desplaza a las coordenadas proporcionadas abajo) | |
variable_x_center : 0.0 # posicion central de X | |
variable_y_center : 0.0 # posicion central de Y | |
variable_beeps : 2 # Numero de beeps de aviso. | |
variable_retract_length : 0.5 # milimetros de retraccion de filamento | |
variable_retract_speed : 30 # velocidad de retraccion | |
# filamento | |
variable_fil_length_purge : 5 # longitud de purga de filamento en milamentos | |
variable_fil_purge_speed : 450 # velocidad de retracción de purga de filamento | |
variable_fil_num_repeats : 1 # repite un numero de veces la carga/descargar evitar restriccion | |
variable_fil_length : 50 # logitud de filamento a cargar/descargar | |
variable_fil_speed : 300 # velocidad de carga/descarga filamento | |
variable_fil_fast_speed : 1200 # velocidad de carga/descarga filamento | |
variable_timeout_pause : 7200 # tiempo de espera para entrar en reposo. (1h) | |
variable_timeout : 3600 # tiempo de espera para entrar en reposo. (30 min) | |
gcode: | |
{% if calc_center_pos %} | |
SET_GCODE_VARIABLE MACRO=_VAR_GLOBALS VARIABLE=x_center VALUE={(printer.toolhead.axis_maximum.x / 2)} | |
SET_GCODE_VARIABLE MACRO=_VAR_GLOBALS VARIABLE=y_center VALUE={(printer.toolhead.axis_maximum.y / 2)} | |
{% endif %} | |
{% if calc_parking %} | |
SET_GCODE_VARIABLE MACRO=_VAR_GLOBALS VARIABLE=x_park VALUE={(printer.toolhead.axis_maximum.x - 5)} | |
SET_GCODE_VARIABLE MACRO=_VAR_GLOBALS VARIABLE=y_park VALUE={(printer.toolhead.axis_maximum.y - 20)} | |
SET_GCODE_VARIABLE MACRO=_VAR_GLOBALS VARIABLE=z_park VALUE={(printer.toolhead.axis_maximum.z / 3)} | |
{% endif %} | |
# se actualizan los valores de retraccion a los del firmware | |
{% if printer['firmware_retraction'] is defined %} | |
SET_GCODE_VARIABLE MACRO=_VAR_GLOBALS VARIABLE=retract_length VALUE={printer.firmware_retraction.retract_length} | |
SET_GCODE_VARIABLE MACRO=_VAR_GLOBALS VARIABLE=retract_speed VALUE={printer.firmware_retraction.retract_speed} | |
{% endif %} | |
ECHO_VAR_GLOBALS | |
[gcode_macro ECHO_VAR_GLOBALS] | |
description: Echo _VAR_GLOBALS variables to the console. | |
gcode: | |
{% for var, value in printer["gcode_macro _VAR_GLOBALS"].items() %} | |
{action_respond_info(var ~ ": " ~ value)} | |
{% endfor %} |
I got this error: Error evaluating 'gcode_macro _UNLOAD_FILAMENT:gcode': jinja2.exceptions.UndefinedError: 'extras.gcode_macro.GetStatusWrapper object' has no attribute 'gcode_macro _VAR_GLOBALS'
what _VAR_GLOBALS are, I'd really appreciate any information !
Are the variables used for macros to adjust to your printer or to enable/disable features.
If you can provide more information, follow instructions from here https://klipper-3dwork-io.translate.goog/klipper/troubleshooting?_x_tr_sl=es&_x_tr_tl=en&_x_tr_hl=es&_x_tr_pto=wapp, Will be great.
Remember these are the simple macros we suggested to users starting with Klipper if you are installing 3Dwork bundle please follow installation instructions.
The error I got was using this macro:
# Current Version v_202306142036
# Mas info - https://3dwork.gitbook.io/3dwork.io/klipper/mejoras/macros-mejoras/cambio-filamentos-m600
######################################################################
# CAMBIO DE FILAMENTO
######################################################################
# M600
# M601
# CHANGE_FILAMENT
# LOAD_FILAMENT
# UNLOAD_FILAMENT
# NOTIFY
# BEEP
######################################################################
[gcode_macro M600]
description: Codigo gcode para el cambio de filamento
gcode:
CHANGE_FILAMENT
[gcode_macro M601]
description: Codigo gcode que pausa la impresion
gcode:
PAUSE
[gcode_macro CHANGE_FILAMENT]
description: Cambio de filamento
gcode:
PAUSE
UNLOAD_FILAMENT
BEEP R=3
[gcode_macro LOAD_FILAMENT]
description: Realiza la carga de filamento calentando el hotend si es necesario
gcode:
{% if printer.extruder.can_extrude %} ; se comprueba que se pueda extruir para cargar el filamento
_LOAD_FILAMENT
{% else %}
_TEMP_EXTRUDER
_LOAD_FILAMENT
{% endif %}
[gcode_macro UNLOAD_FILAMENT]
description: Realiza la descarga de filameno calentando el hotend si es necesario
gcode:
{% if printer.extruder.can_extrude %} ; se comprueba que se pueda extruir para descargar el filamento
_UNLOAD_FILAMENT
{% else %}
_TEMP_EXTRUDER
_UNLOAD_FILAMENT
{% endif %}
[gcode_macro NOTIFY]
description: Envia un texto al LCD y Consola\n Uso: NOTIFY TEXT="TEXTO" CLEAR=[0|1] limpia pantalla en 10 segundos.
gcode:
{% set TEXT = params.TEXT|default("")|string %}
{% set CLEAR = params.CLEAR|default(0)|int %}
{% if TEXT != "" %}
M117 {TEXT}
{action_respond_info("%s" % (TEXT))}
{% if CLEAR|int == 1 %}
UPDATE_DELAYED_GCODE ID=_CLEAR_DISPLAY DURATION=10
{% endif %}
{% endif %}
[gcode_macro BEEP]
description: Emite un pitido.\n Uso BEEP [R=NUMERO DE PITIDOS]
gcode:
{% if 'output_pin beeper' in printer.configfile.settings and printer["gcode_macro M300"] is defined %}
{% set R = params.R|default(0)|int %}
{% for i in range(R) %}
M300 P200
{% endfor %}
{% endif %}
[gcode_macro _LOAD_FILAMENT]
gcode: |
{% if printer.extruder.can_extrude %} ; se comprueba que se pueda extruir para cargar el filamento
{% set vg = printer["gcode_macro _VAR_GLOBALS"] %}
SAVE_GCODE_STATE NAME=LOAD_state
NOTIFY TEXT="Cargando filamento..."
M83 ; activar extrusion relativa
{% for r in range(vg.fil_num_repeats) %} ; repite la carga de filamento x veces
G1 E{vg.fil_length} F{vg.fil_speed} ; se carga filamento x veces para evitar el limite de longitud
{% endfor %}
G1 E-{vg.retract_length} F{vg.retract_speed} ; retrae el fimalento (indicado o configurado por firmware)
NOTIFY TEXT="Filamento cargado." CLEAR=1
RESTORE_GCODE_STATE NAME=LOAD_state
BEEP
{% else %}
NOTIFY TEXT="Temperatura baja, imposible cargar el filamento."
{% endif %}
[gcode_macro _UNLOAD_FILAMENT]
gcode:
{% if printer.extruder.can_extrude %} ; se comprueba que se pueda extruir para descargar el filamento
{% set vg = printer["gcode_macro _VAR_GLOBALS"] %}
SAVE_GCODE_STATE NAME=UNLOAD_state
NOTIFY TEXT="Descargando filamento..."
M83 ; activar extrusion relativa
G1 E{vg.fil_length_purge} F{vg.fil_purge_speed} ; purga rapida
G1 E-{vg.retract_length} F{vg.retract_speed} ; retrae el fimalento (indicado o configurado por firmware)
G4 P1000 ; esperamos a que enfrie un poco el filamento
G1 E-{vg.fil_length/5} F{vg.fil_speed} ; se descarga el filamento lentamente para evitar atascos
{% for r in range(vg.fil_num_repeats) %} ; repite la descarga de filamento x veces
G1 E-{vg.fil_length} F{vg.fil_fast_speed} ; se descarga filamento x veces para evitar el limite de longitud
{% endfor %}
NOTIFY TEXT="Filamento descargado." CLEAR=1
RESTORE_GCODE_STATE NAME=UNLOAD_state
BEEP
{% else %}
NOTIFY TEXT="Temperatura baja, imposible descargar el filamento."
{% endif %}
[gcode_macro _TEMP_EXTRUDER]
gcode:
{% if not printer.extruder.can_extrude %} ; se comprueba que NO se pueda extruir
{% set vg = printer["gcode_macro _VAR_GLOBALS"] %}
{% set min_temp = printer.extruder.min_extrude_temp|default(170) %}
{% set printing_temp = vg.temp_extruder_pause if printer.pause_resume.is_paused else vg.temp_extruder %}
BEEP
NOTIFY TEXT="Temperatura baja, calentando y esperando temperatura optima."
M104 S{min_temp}
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={min_temp} MAXIMUM={printing_temp}; espera hasta alcanzar la temperatura de extrusion
{% endif %}
[delayed_gcode _CLEAR_DISPLAY]
gcode:
M117
https://gist.github.com/alienboyxp/2f9b36e9628b67ca8b527c39b8ad1992
The error I got was using this macro:
# Current Version v_202306142036 # Mas info - https://3dwork.gitbook.io/3dwork.io/klipper/mejoras/macros-mejoras/cambio-filamentos-m600 ###################################################################### # CAMBIO DE FILAMENTO ###################################################################### # M600 # M601 # CHANGE_FILAMENT # LOAD_FILAMENT # UNLOAD_FILAMENT # NOTIFY # BEEP ###################################################################### [gcode_macro M600] description: Codigo gcode para el cambio de filamento gcode: CHANGE_FILAMENT [gcode_macro M601] description: Codigo gcode que pausa la impresion gcode: PAUSE [gcode_macro CHANGE_FILAMENT] description: Cambio de filamento gcode: PAUSE UNLOAD_FILAMENT BEEP R=3 [gcode_macro LOAD_FILAMENT] description: Realiza la carga de filamento calentando el hotend si es necesario gcode: {% if printer.extruder.can_extrude %} ; se comprueba que se pueda extruir para cargar el filamento _LOAD_FILAMENT {% else %} _TEMP_EXTRUDER _LOAD_FILAMENT {% endif %} [gcode_macro UNLOAD_FILAMENT] description: Realiza la descarga de filameno calentando el hotend si es necesario gcode: {% if printer.extruder.can_extrude %} ; se comprueba que se pueda extruir para descargar el filamento _UNLOAD_FILAMENT {% else %} _TEMP_EXTRUDER _UNLOAD_FILAMENT {% endif %} [gcode_macro NOTIFY] description: Envia un texto al LCD y Consola\n Uso: NOTIFY TEXT="TEXTO" CLEAR=[0|1] limpia pantalla en 10 segundos. gcode: {% set TEXT = params.TEXT|default("")|string %} {% set CLEAR = params.CLEAR|default(0)|int %} {% if TEXT != "" %} M117 {TEXT} {action_respond_info("%s" % (TEXT))} {% if CLEAR|int == 1 %} UPDATE_DELAYED_GCODE ID=_CLEAR_DISPLAY DURATION=10 {% endif %} {% endif %} [gcode_macro BEEP] description: Emite un pitido.\n Uso BEEP [R=NUMERO DE PITIDOS] gcode: {% if 'output_pin beeper' in printer.configfile.settings and printer["gcode_macro M300"] is defined %} {% set R = params.R|default(0)|int %} {% for i in range(R) %} M300 P200 {% endfor %} {% endif %} [gcode_macro _LOAD_FILAMENT] gcode: | {% if printer.extruder.can_extrude %} ; se comprueba que se pueda extruir para cargar el filamento {% set vg = printer["gcode_macro _VAR_GLOBALS"] %} SAVE_GCODE_STATE NAME=LOAD_state NOTIFY TEXT="Cargando filamento..." M83 ; activar extrusion relativa {% for r in range(vg.fil_num_repeats) %} ; repite la carga de filamento x veces G1 E{vg.fil_length} F{vg.fil_speed} ; se carga filamento x veces para evitar el limite de longitud {% endfor %} G1 E-{vg.retract_length} F{vg.retract_speed} ; retrae el fimalento (indicado o configurado por firmware) NOTIFY TEXT="Filamento cargado." CLEAR=1 RESTORE_GCODE_STATE NAME=LOAD_state BEEP {% else %} NOTIFY TEXT="Temperatura baja, imposible cargar el filamento." {% endif %} [gcode_macro _UNLOAD_FILAMENT] gcode: {% if printer.extruder.can_extrude %} ; se comprueba que se pueda extruir para descargar el filamento {% set vg = printer["gcode_macro _VAR_GLOBALS"] %} SAVE_GCODE_STATE NAME=UNLOAD_state NOTIFY TEXT="Descargando filamento..." M83 ; activar extrusion relativa G1 E{vg.fil_length_purge} F{vg.fil_purge_speed} ; purga rapida G1 E-{vg.retract_length} F{vg.retract_speed} ; retrae el fimalento (indicado o configurado por firmware) G4 P1000 ; esperamos a que enfrie un poco el filamento G1 E-{vg.fil_length/5} F{vg.fil_speed} ; se descarga el filamento lentamente para evitar atascos {% for r in range(vg.fil_num_repeats) %} ; repite la descarga de filamento x veces G1 E-{vg.fil_length} F{vg.fil_fast_speed} ; se descarga filamento x veces para evitar el limite de longitud {% endfor %} NOTIFY TEXT="Filamento descargado." CLEAR=1 RESTORE_GCODE_STATE NAME=UNLOAD_state BEEP {% else %} NOTIFY TEXT="Temperatura baja, imposible descargar el filamento." {% endif %} [gcode_macro _TEMP_EXTRUDER] gcode: {% if not printer.extruder.can_extrude %} ; se comprueba que NO se pueda extruir {% set vg = printer["gcode_macro _VAR_GLOBALS"] %} {% set min_temp = printer.extruder.min_extrude_temp|default(170) %} {% set printing_temp = vg.temp_extruder_pause if printer.pause_resume.is_paused else vg.temp_extruder %} BEEP NOTIFY TEXT="Temperatura baja, calentando y esperando temperatura optima." M104 S{min_temp} TEMPERATURE_WAIT SENSOR=extruder MINIMUM={min_temp} MAXIMUM={printing_temp}; espera hasta alcanzar la temperatura de extrusion {% endif %} [delayed_gcode _CLEAR_DISPLAY] gcode: M117
https://gist.github.com/alienboyxp/2f9b36e9628b67ca8b527c39b8ad1992
As you have explained on the guide you need to add the macro with the variables and the macros related with the change filament.
As you do not provide more information as was requested and seeing the error seems you only added the change filament macros no the variables part then the system can't understand the information needed by the change filament macros.
Thank you very much!!!!!!
I got this error:
Error evaluating 'gcode_macro _UNLOAD_FILAMENT:gcode': jinja2.exceptions.UndefinedError: 'extras.gcode_macro.GetStatusWrapper object' has no attribute 'gcode_macro _VAR_GLOBALS'
what _VAR_GLOBALS are,
I'd really appreciate any information !