Comment configurer Cura pour exécuter la sonde Z avant de chauffer

12

J'utilise Cura comme logiciel de découpe / d'impression et je viens de commencer à utiliser la surface d'impression BuildTak.

Le BuildTak est endommagé en y poussant une buse chaude et la fonction de nivellement automatique de mon imprimante (Robo3D R1 +) fonctionne en poussant la buse dans la surface de construction.

Existe-t-il un moyen de configurer Cura pour qu'il exécute d'abord la sonde Z, puis chauffe la buse?

Ma première feuille de BuildTak contient déjà 10 petits trous (à la position de référence et aux 9 points de contact de mise à niveau)

Nir
la source

Réponses:

9

Dans Cura (et Slic3r), vous pouvez personnaliser à 100% ce que fait l'imprimante avant d'imprimer votre modèle réel via un code G de début / fin personnalisé .

Si vous accédez à Start/End-GCode tab in Cura, puis sélectionnez start.gcode, vous pouvez voir quelles opérations sont exécutées avant le début de chaque impression. Les lignes précédées d'un préfixe ;sont des commentaires et n'affectent en rien l'impression.

Fondamentalement, nous voulons dire manuellement à l'imprimante de procéder au nivellement automatique avant de chauffer la buse en modifiant le code g dans start.gcode.

G-Code généré avec le start.gcode par défaut:

Si vous essayez de découper un modèle avec le code par défaut trouvé dans start.gcode, vous obtiendrez quelque chose comme ceci (selon votre imprimante):

; CURA AUTOMATICALLY INSERTS THESE TEMPERATURE CODES

M190 S70.000000 ; Set bed temperature to 70 degrees
M109 S210.000000 ; Set nozzle temperature to 210 degrees


; THESE ARE THE CODES FROM START.GCODE (for a ROBO 3D R1) 

G28          ;move printer to endstops (the home position)
G92 E0       ;zero the extruded filament length
M565 Z-1     ;set z-probe offset
G1 Z5 F5000  ;move the printer 5mm above the bed
G29          ;run auto-leveling


; THE ACTUAL MODEL BEGINS HERE

;Layer count: 168
;LAYER:0
.
.

Analyse de la sortie du code g

En haut de cet extrait de code, nous pouvons voir que Cura insère automatiquement le code g pour chauffer le lit et la buse à leurs températures respectives avec les codes g M190 et M109 . Cela signifie que l'imprimante chauffera toujours la buse avant de lire les start.gcodes que nous avons définis. Cependant, si nous remplaçons manuellement le code M109start.gcode , le M109 en haut disparaîtra automatiquement de la sortie du code g généré! (Merci, @TomvanderZanden!)

On pourrait donc utiliser la commande de mise à niveau automatique G29 avant de régler manuellement la température de la buse avec M109 ; en particulier, nous voulons ajouter M109 S{print_temperature}, qui lit le Basic -> Print Temperatureparamètre dans Cura, et le remplacer {print_temperature}automatiquement.

Manipulation de start.gcode:

Afin de reporter le chauffage du hotend après le sondage, cela start.gcodepourrait être quelque chose comme:

G28          ;move printer to endstops (the home position)
G92 E0       ;zero the extruded filament length
M565 Z-1     ;set z-probe offset     <-----   ( YOU HAVE TO ADJUST THIS, READ BELOW)
G1 Z5 F5000  ;move the printer 5mm above the bed
G29          ;run auto-leveling
M109 S{print_temperature}    ;set nozzle temperature, and wait for it heat up

Et c'est tout! Vous pouvez ensuite utiliser ces codes dans votre start.gcode. Cependant, vous devrez probablement recalibrer votre offset z-proof.

Ajustez le décalage de la sonde z:

Normalement, le nivellement automatique se fait avec la buse chauffée pour une raison: lorsque la buse est chaude, elle se dilate légèrement, se rapprochant du lit. Vous devrez donc peut-être ajuster le décalage de votre sonde Z avec la commande M565 (comme illustré dans l'extrait) pour tenir compte de l'augmentation de la longueur de la buse à chaud.

Rappelles toi:

N'oubliez pas que lors de la modification du code G de cette manière, vous prendrez le contrôle total du fonctionnement de l'imprimante. Vous pourriez donc très bien faire quelque chose d'inattendu, alors gardez l'interrupteur d'alimentation à proximité!

Tormod Haugene
la source
3
Cette réponse manque un point très important: dans Cura (et quelque chose de similaire fonctionne pour Slic3r et Simplify3D), vous pouvez insérer "M109 S {print_temperature}" dans votre G-code. Il remplacera {print_temperature} par la température d'impression définie et n'ajoutera pas son propre M109. De cette façon, vous n'avez pas besoin de faire le hack laid de régler la température à 0.
Tom van der Zanden
@TomvanderZanden, vous avez tout à fait raison! Je ne pensais pas que Cura serait assez intelligent pour supprimer le premier M109 si vous le définissez manuellement dans start.gcode, mais il semble que ce soit le cas! Je mettrai à jour la réponse.
Tormod Haugene
2
{print_temperature}n'a pas fonctionné pour moi. {material_print_temperature}fait. Regardez ici pour en savoir plus.
Markus Hütter