Chercher dans la communauté
Résultats des étiquettes.
3 résultats trouvés
-
Bonjour à tous J'ai libéré mes X Max 3 et tourne sur Klipper 0.12 actuellement J'essaye d'améliorer mes macros PAUSE RESUME (déjà non standard) pour couper les ventilateurs lors de la mise en pause et les redémarrer à la vitesse définie lors de l'arrêt à la reprise. Donc passage par une variable définie lors de la macro PAUSE et récupération lors de la macro RESUME, comme c'est déjà le cas pour la température de la buse. Voici la macro PAUSE [gcode_macro PAUSE] description: Pause the actual running print rename_existing: PAUSE_BASE gcode: ##### get user parameters or use default ##### {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set idle_timeout = client.idle_timeout|default(0) %} {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0 %} {% set restore = False if printer.toolhead.extruder == '' else True if params.RESTORE|default(1)|int == 1 else False %} {% set partfan_speed = printer.partfan if printer.partfan != '' else 0 %} {% set filterfan_speed = printer.filterfan if printer.filterfan != '' else 0 %} {% set sidefan_speed = printer.sidefan if printer.sidefan != '' else 0 %} ##### end of definitions ##### SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE={temp} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_restore VALUE={restore} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_partfan_speed VALUE={partfan_speed} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_filterfan_speed VALUE={filterfan_speed} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_sidefan_speed VALUE={sidefan_speed} # set a new idle_timeout value {% if idle_timeout > 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout} SET_IDLE_TIMEOUT TIMEOUT={idle_timeout} {% endif %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=True M104 S0 M106 S0 M106 P2 S0 M106 P3 S0 SFS_DISABLE PAUSE_BASE {client.user_pause_macro|default("")} _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams} Et la partie de la macro RESUME [gcode_macro RESUME] description: Resume the actual running print rename_existing: RESUME_BASE variable_last_extruder_temp: 0 variable_last_extruder_restore: False variable_last_partfan_speed: 0 variable_last_filterfan_speed: 0 variable_last_sidefan_speed: 0 variable_restore_idle_timeout: 0 variable_idle_state: False gcode: ##### get user parameters or use default ##### {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %} {% set sp_move = client.speed_move|default(velocity) %} {% set runout_resume = True if client.runout_sensor|default("") == "" # no runout else True if not printer[client.runout_sensor].enabled # sensor is disabled else printer[client.runout_sensor].filament_detected %} # sensor status {% set can_extrude = True if printer.toolhead.extruder == '' # no extruder defined in config else printer[printer.toolhead.extruder].can_extrude %} # status of active extruder {% set do_resume = False %} {% set prompt_txt = [] %} ##### end of definitions ##### #### Printer comming from timeout idle state #### {% if printer.idle_timeout.state|upper == "IDLE" or idle_state %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False {% if last_extruder_restore %} # we need to use the unicode (\u00B0) for the ° as py2 env's would throw an error otherwise RESPOND TYPE=echo MSG='{"Restoring \"%s\" temperature to %3.1f\u00B0C, this may take some time" % (printer.toolhead.extruder, last_extruder_temp) }' M109 S{last_extruder_temp} M106 S{last_partfan_speed} M106 P2 S{last_sidefan_speed} M106 P3 S{last_filterfan_speed} {% set do_resume = True %} {% elif can_extrude %} {% set do_resume = True %} {% else %} En lançant la macro PAUSE, j'obtiens une erreur lors de l'évaluation de la variable partant_speed !! Unable to parse '' as a literal: invalid syntax (, line 0) Donc à priori c'est que la variable qui doit être un décimal n'est pas du bon format. Si je spécifie que c'est la valeur de objet set partfan_speed = printer.partfan.value, j'obtiens une erreur bloquante lors du démarrage de Klipper !! Error evaluating 'gcode_macro PAUSE:gcode': jinja2.exceptions.UndefinedError: 'extras.gcode_macro.GetStatusWrapper object' has no attribute 'partfan' Pourtant dans le guide de référence des états output_pin¶ Les informations suivantes sont disponibles dans les objets output_pin nom_de_la_sortie : value : la "valeur" de la broche, telle que définie par une commande SET_PIN. Et le printer.cfg définit les ventilateurs de la X Max 3 comme des output_pin et non pas des fan. J'ai essayé avec la syntaxe complète : printer[printer.partfan].value sans succès. Impossible de récupérer la valeur numérique de la sortie du ventilateur. Si quelqu'un a une idée ....
-
Bonjour à tous Voici ma dernière modification de ma Qidi X Max 3. Tout d'abord, merci @fran6p pour son post dans la revue de la X Max 3 sur la modification et l'isolation du plateau chauffant. J'ai de fait réalisé l'isolation de mon plateau. On gagne beaucoup en température dans le bas de la chambre. J'ai fait un remix des molettes suggérées pour gagner en hauteur (un peu...) j'ai de fait diminué le déplacement de l'axe Z à 310 mm avec des vis de 60 mm. Les vis en 55 mm sont dures à trouver même en quincaillerie industrielle (Cergy-Vis / BricoVis par exemple). Mais en les coupant à 55 mm on pourrait garder la hauteur de 315 mm. Mais surtout, j'ai modifié la roue pour avoir 60 clics par tour, soit le réglage donné par Klipper si on fait une calibration des vis du plateau. Je suis revenu en arrière concernant les repères sur la roue crantée, car c'est plus simple de compter les clics.... Les modèles sont disponibles sur Cults 3D : https://cults3d.com/fr/modèle-3d/outil/qidi-tech-x-max3-molettes-d-ajustement-du-lit-d-impression J'ai également fait le choix de garder les ressorts car ils ne sont pas sujets à dégradation avec la température. De fait, il faut modifier / remplacer les petites colonnettes, sinon on perd 4 mm avec l'écrou que l'on rajoute pour bloquer la vis au niveau du plateau chauffant. J'ai fait le choix d'imprimer des colonnettes en PA 6/66 qui résistent à 125 °C en service. Donc pas de soucis. Leur role est d'éviter que les ressorts se mettent de travers en les compressant et modifient leur raideur, donc on ne peut pas vraiment s'en passer. Si ça peut être utile à d'autres. Voici ce que ça donne au final Et maintenant mon plateau est de niveau (ou presque..) il varie entre +/- 6 1/100 emes
- 2 réponses
-
- 2
-
-
Une première modification de ma Qidi X Max 3 : un meilleur éclairage et un support pour le capot supérieur. Maintenant le capot est toujours sur la machine, en position ouverte ou fermée, ça évite de le poser n'importe ou et l'abimer. J'ai utilisé ce modèle https://www.printables.com/fr/model/781275-qidi-x-max-3-lid-slider-frame/files Impression en PETG 200 microns avec supports. Dans mon cas sur une BCN3D W50 Une bande de LED a été intégrée sur le support de capot, avec une modification de celui ci (et au passage quelques améliorations pour qu'il s'imprime bien). Comme l'auteur de modèle a utilisé une licence CC fermée sur Printables, je ne peux pas partager les modifications faites .... Je suis prêt à expliquer au besoin. Les LED FCOB 24V 6000 K, les connecteurs d'angle sont disponibles sur la boutique de Jeff Bezos. Un petit connecteur XH pour permettre de démonter le support sans devoir bidouiller sur la carte mère. Les LED sont branchées en parallèle sur le connecteur 7 de la carte, avec les LED d'origine pour pouvoir les piloter directement depuis Fluidd. On voit beaucoup plus clair maintenant.