fenixdragon Posté(e) Octobre 1, 2018 Partager Posté(e) Octobre 1, 2018 (modifié) bonjour savez vous comment on peut crée un script dans cura pour que a chaque couche imprimé il y est une pause de 1s a la position 0 sur l axe X et reprise de l’impression a la fin de la second ? Modifié (le) Octobre 1, 2018 par pascal_lb Lien vers le commentaire Partager sur d’autres sites More sharing options...
pascal_lb Posté(e) Octobre 1, 2018 Partager Posté(e) Octobre 1, 2018 Modération : @fenixdragon j'ai déplacé ton post pour une meilleure visibilité Lien vers le commentaire Partager sur d’autres sites More sharing options...
fenixdragon Posté(e) Octobre 1, 2018 Auteur Partager Posté(e) Octobre 1, 2018 merci ^^ Lien vers le commentaire Partager sur d’autres sites More sharing options...
fenixdragon Posté(e) Octobre 2, 2018 Auteur Partager Posté(e) Octobre 2, 2018 pour etre plus simple es que une personne serai modifier le fichier .py et rajouté une reprise a x seconde merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Tircown Posté(e) Octobre 2, 2018 Partager Posté(e) Octobre 2, 2018 (modifié) Ce qu'il te faut c'est rajouter à chaque fin de couche ceci: G28 X G4 S1 ;S[temps en secondes] Ce n'est pas aussi joli qu'avec un plugin mais c'est réalisable avec notepad++ et la fonction rechercher/replacer. Activer le mode étendu (\n,\r,...), chercher "\n;LAYER:" et remplacer par "\nG28 X\nG4 S1\n;LAYER:" Il faudra l'enlever manuellement avant la première couche et le rajouter après la dernière si souhaité (dans ce cas on pourra le mettre dans le End G-Code). Comme toujours, la première fois, reste à coté de l'imprimante le doigt sur le bouton off au cas ou... Modifié (le) Octobre 2, 2018 par Tircown Lien vers le commentaire Partager sur d’autres sites More sharing options...
fenixdragon Posté(e) Octobre 2, 2018 Auteur Partager Posté(e) Octobre 2, 2018 dans le script de bas il n y a pas \n;LAYER: from ..Script import Script class PauseAtHeightforRepetier(Script): def __init__(self): super().__init__() def getSettingDataString(self): return """{ "name":"Pause at height for repetier", "key": "PauseAtHeightforRepetier", "metadata": {}, "version": 2, "settings": { "pause_height": { "label": "Pause height", "description": "At what height should the pause occur", "unit": "mm", "type": "float", "default_value": 5.0 }, "head_park_x": { "label": "Park print head X", "description": "What x location does the head move to when pausing.", "unit": "mm", "type": "float", "default_value": 5.0 }, "head_park_y": { "label": "Park print head Y", "description": "What y location does the head move to when pausing.", "unit": "mm", "type": "float", "default_value": 5.0 }, "head_move_Z": { "label": "Head move Z", "description": "The Hieght of Z-axis retraction before parking.", "unit": "mm", "type": "float", "default_value": 15.0 }, "retraction_amount": { "label": "Retraction", "description": "How much fillament must be retracted at pause.", "unit": "mm", "type": "float", "default_value": 5.0 }, "extrude_amount": { "label": "Extrude amount", "description": "How much filament should be extruded after pause. This is needed when doing a material change on Ultimaker2's to compensate for the retraction after the change. In that case 128+ is recommended.", "unit": "mm", "type": "float", "default_value": 90.0 }, "redo_layers": { "label": "Redo layers", "description": "Redo a number of previous layers after a pause to increases adhesion.", "unit": "layers", "type": "int", "default_value": 0 } } }""" def execute(self, data): x = 0. y = 0. current_z = 0. pause_z = self.getSettingValueByKey("pause_height") retraction_amount = self.getSettingValueByKey("retraction_amount") extrude_amount = self.getSettingValueByKey("extrude_amount") park_x = self.getSettingValueByKey("head_park_x") park_y = self.getSettingValueByKey("head_park_y") move_Z = self.getSettingValueByKey("head_move_Z") layers_started = False redo_layers = self.getSettingValueByKey("redo_layers") for layer in data: lines = layer.split("\n") for line in lines: if ";LAYER:0" in line: layers_started = True continue if not layers_started: continue if self.getValue(line, 'G') == 1 or self.getValue(line, 'G') == 0: current_z = self.getValue(line, 'Z') x = self.getValue(line, 'X', x) y = self.getValue(line, 'Y', y) if current_z != None: if current_z >= pause_z: index = data.index(layer) prevLayer = data[index-1] prevLines = prevLayer.split("\n") current_e = 0. for prevLine in reversed(prevLines): current_e = self.getValue(prevLine, 'E', -1) if current_e >= 0: break prepend_gcode = ";TYPE:CUSTOM\n" prepend_gcode += ";added code by post processing\n" prepend_gcode += ";script: PauseAtHeightforRepetier.py\n" prepend_gcode += ";current z: %f \n" % (current_z) prepend_gcode += ";current X: %f \n" % (x) prepend_gcode += ";current Y: %f \n" % (y) #Retraction prepend_gcode += "M83\n" if retraction_amount != 0: prepend_gcode += "G1 E-%f F6000\n" % (retraction_amount) #Move the head away prepend_gcode += "G1 Z%f F300\n" % (1 + current_z) prepend_gcode += "G1 X%f Y%f F9000\n" % (park_x, park_y) if current_z < move_Z: prepend_gcode += "G1 Z%f F300\n" % (current_z + move_Z) #Disable the E steppers prepend_gcode += "M84 E0\n" #Wait till the user continues printing prepend_gcode += "@pause now change filament and press continue printing ;Do the actual pause\n" #Push the filament back, if retraction_amount != 0: prepend_gcode += "G1 E%f F6000\n" % (retraction_amount) # Optionally extrude material if extrude_amount != 0: prepend_gcode += "G1 E%f F200\n" % (extrude_amount) prepend_gcode += "@info wait for cleaning nozzle from previous filament\n" prepend_gcode += "@pause remove the waste filament from parking area and press continue printing\n" # and retract again, the properly primes the nozzle when changing filament. if retraction_amount != 0: prepend_gcode += "G1 E-%f F6000\n" % (retraction_amount) #Move the head back prepend_gcode += "G1 Z%f F300\n" % (1 + current_z) prepend_gcode +="G1 X%f Y%f F9000\n" % (x, y) if retraction_amount != 0: prepend_gcode +="G1 E%f F6000\n" % (retraction_amount) prepend_gcode +="G1 F9000\n" prepend_gcode +="M82\n" # reset extrude value to pre pause value prepend_gcode +="G92 E%f\n" % (current_e) layer = prepend_gcode + layer # include a number of previous layers for i in range(1, redo_layers + 1): prevLayer = data[index-i] layer = prevLayer + layer data[index] = layer #Override the data of this layer with the modified data return data break return data Lien vers le commentaire Partager sur d’autres sites More sharing options...
Tircown Posté(e) Octobre 2, 2018 Partager Posté(e) Octobre 2, 2018 C'est là que ça ce passe: La méthode que je te propose n'utilise aucun script. D'ailleurs, je n'ai pas demandé, mais quel est le but de cette pause? faire un timelapse? Lien vers le commentaire Partager sur d’autres sites More sharing options...
fenixdragon Posté(e) Octobre 2, 2018 Auteur Partager Posté(e) Octobre 2, 2018 oui cest ça je veux faire la pause a chaque couche a 0 x pour prend la photo est time laps Lien vers le commentaire Partager sur d’autres sites More sharing options...
fenixdragon Posté(e) Octobre 2, 2018 Auteur Partager Posté(e) Octobre 2, 2018 (modifié) se que tu me montre cest gcode démarrage et fin on peut ajouté un code a ce niveau ? j ai mit le code apres home je sais pas si cela et bon je suis perdu Modifié (le) Octobre 2, 2018 par fenixdragon Lien vers le commentaire Partager sur d’autres sites More sharing options...
Tircown Posté(e) Octobre 2, 2018 Partager Posté(e) Octobre 2, 2018 Non c'est pas là qu'il faut le mettre. D'ailleurs c'est G28 X sinon tu vas faire un homing complet et ça a toutes les chances d'être catastrophique avec le Z. Notepad++ avec la manip expliqué c'est pour le faire à chaque couches avant la suivante. Seulement ça va en rajouter un avant la première couche et ne va pas en mettre à la dernière. C'est donc à corriger manuellement. Si tu fais ton timelapse avec octoprint, regarde voir du coté de ce plugins pour octoprint: https://plugins.octoprint.org/plugins/octolapse/ Il gère tout ça très bien sans ce casser la tête à modifier le GCODE 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
fenixdragon Posté(e) Octobre 2, 2018 Auteur Partager Posté(e) Octobre 2, 2018 non je n utilise pas octoprint la cest un appareil photo avec télécommande et emboue qui vient tapé la télécommande a 0 en x Lien vers le commentaire Partager sur d’autres sites More sharing options...
fenixdragon Posté(e) Octobre 2, 2018 Auteur Partager Posté(e) Octobre 2, 2018 je commence a comprendre faut généré le gcode et apres le modifier dans notepad lol desoler et donc avent chaque "LAYER" il faut placer nG28 X\nG4 S1\n je suis obliger de metre les \ a quoi correspond ng28 ng24 s1 et n et dans mon code cest plus ça : " ;LAYER:8" je nais pas \n;LAYER: Lien vers le commentaire Partager sur d’autres sites More sharing options...
Tircown Posté(e) Octobre 2, 2018 Partager Posté(e) Octobre 2, 2018 (modifié) \n signifie nouvelle ligne. (il faut activer le mode étendu de n++ sinon ça ne marche pas, voir ma première réponse) ; marque le début d'un commentaire en GCODE. Ce qui suit ne sera pas interprété et sert uniquement à faciliter la lecture. "\nG28 X\nG4 S1\n;LAYER:" revient à dire [saut de ligne]G28 X[saut de ligne]G4 S1[saut de ligne];LAYER: Avec notepad++ tu ne vas pas le faire manuellement sur chaque ligne, ça se fera tout seul si tu suis mes instructions de ma première réponse. Et oui il faut générer le GCODE, puis le modifier. Si tu n'es pas sûr de toi post ton fichier GCODE ici pour relecture. Modifié (le) Octobre 2, 2018 par Tircown Lien vers le commentaire Partager sur d’autres sites More sharing options...
fenixdragon Posté(e) Octobre 2, 2018 Auteur Partager Posté(e) Octobre 2, 2018 (modifié) ok cest bon je croie que j ai compris CCR10_3DBenchy_-_Multi-part_-_Complete_17_shells_-_3DBenchy.gcode petit test avec le benchy donc G28x veux dire position 0 en X et G4 S1 veux dire pause 1s et go ça repart ? Modifié (le) Octobre 2, 2018 par fenixdragon Lien vers le commentaire Partager sur d’autres sites More sharing options...
mikebzh44 Posté(e) Octobre 3, 2018 Partager Posté(e) Octobre 3, 2018 Si tu tournes avec OctoPrint, tu peux installer ce plugin : https://plugins.octoprint.org/plugins/octolapse/ Et là, tu pourras, tout gérer, même la position de la tête et du bed pour faire des timelapse de toute beauté Lien vers le commentaire Partager sur d’autres sites More sharing options...
Tircown Posté(e) Octobre 3, 2018 Partager Posté(e) Octobre 3, 2018 @mikebzh44, merci de lire les précédentes réponses @fenixdragon, ça me semble bon par contre tu as du oublier le \n avant ;LAYER: dans le champs rechercher car ça a rajouter un saut de ligne. Ça ne devrait pas poser de problème. Tu auras une photo inutile au début avant le print mais je ne pense pas que ça soit gênant. Le code de fin a déjà un homing XY donc inutile de le rajouter comme je te l'avais suggéré car la photo sera faite. Bref go... avec le doigt sur le bouton off au cas ou.... Lien vers le commentaire Partager sur d’autres sites More sharing options...
fenixdragon Posté(e) Octobre 3, 2018 Auteur Partager Posté(e) Octobre 3, 2018 Il y a 10 heures, mikebzh44 a dit : Si tu tournes avec OctoPrint, tu peux installer ce plugin : https://plugins.octoprint.org/plugins/octolapse/ Et là, tu pourras, tout gérer, même la position de la tête et du bed pour faire des timelapse de toute beauté oui @Tircown ma déja parler de octoprint mais je ne l ais pas et pas de web cam ou même de raspebery je lance le test et je dit ci cest good Lien vers le commentaire Partager sur d’autres sites More sharing options...
fenixdragon Posté(e) Octobre 3, 2018 Auteur Partager Posté(e) Octobre 3, 2018 alors ça fonctionne par contre es que l on peut rajouter une rétraction a 5.0 une extrude amount 90.0 et une position plateau centré juste avent la position X ? car la ça me fait du filament a chaque couche pas top ^^ Lien vers le commentaire Partager sur d’autres sites More sharing options...
Tircown Posté(e) Octobre 3, 2018 Partager Posté(e) Octobre 3, 2018 Fait gaffe à l'orthographe, j'arrive même pas à comprendre ce que tu veux. Lien vers le commentaire Partager sur d’autres sites More sharing options...
fenixdragon Posté(e) Octobre 3, 2018 Auteur Partager Posté(e) Octobre 3, 2018 en fait à la fin de chaque couche la tête va bien au point 0 . mais vu qu il n'y a pas de rétraction il y a un petit file qui se créé . je voulais donc savoir si on pouvait rajouter -une rétraction de ( 5.0 ) -la position y a 50% je sais pas où est le milieu. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Tircown Posté(e) Octobre 3, 2018 Partager Posté(e) Octobre 3, 2018 (modifié) Avec cette méthode ce n'est pas possible : La position de l'extrudeur change à chaque couche, donc la valeur à renseignée également Le milieu dépend du modèle de ton imprimante, donc c'est gérable à condition de connaitre la dimension de l'axe X. En fait j'ai du mal à comprendre l'utilité sur ce point. Pour être exact, ce n'est pas possible avec n++ sauf avec une regex vraiment très complexe et pour laquelle je ne suis pas partant. Modifié (le) Octobre 3, 2018 par Tircown Lien vers le commentaire Partager sur d’autres sites More sharing options...
fenixdragon Posté(e) Octobre 4, 2018 Auteur Partager Posté(e) Octobre 4, 2018 Oui je comprend pour le plateau pas très grave. mais pour le reste c’est dommage on voie un file qui se créé a chaque couche comme sur la photo: Lien vers le commentaire Partager sur d’autres sites More sharing options...
Tircown Posté(e) Octobre 5, 2018 Partager Posté(e) Octobre 5, 2018 Ce n'est pas parce que c'est dommage que ça le rend possible... Lien vers le commentaire Partager sur d’autres sites More sharing options...
trotro Posté(e) Octobre 5, 2018 Partager Posté(e) Octobre 5, 2018 (modifié) Bonjour, @fenixdragon En imprimant en même temps un deuxième objet, une petite tour cylindrique, par exemple, située dans un coin du plateau, pour actionner la télécommande avec le déplacement de la tête sur l'axe X ou du plateau sur l'axe Y. Modifié (le) Octobre 5, 2018 par trotro Lien vers le commentaire Partager sur d’autres sites More sharing options...
fenixdragon Posté(e) Octobre 5, 2018 Auteur Partager Posté(e) Octobre 5, 2018 ha oui @trotro super idée pas besoin de modifié le code etc je test demain merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant