Aller au contenu

Macro Start_print sur ender 3


FBR39120

Messages recommandés

Bonjour,

Je galère avec les macros dans klipper, je possède une ender 3 pro avec carte 4.2.7.

Actuellement j'utilise le gcode de début par défaut de prusa slicer et une macro END_PRINT que j'ai réussi à faire et qui marche plutôt bien.

Par contre j'aimerais uniformiser une fois pour toute avec une START_PRINT et un END_PRINT issu des macros Klipper.

Mon souci c'est que ma macro START_PRINT ne fonctionne pas j'ai ce message d'erreur dans la console

20:09:21 
File opened:xyzCalibration_cube_39m_0.20mm_205C_PLA_ENDER3.gcode Size:365841
20:09:21 
File selected
20:09:47 
// Unknown command:"START_PRINT"
20:10:59 
!! Must home axis first: 0.000 210.000 0.230 [1423.833]

ma macro Start_print 

[gcode_macro START_PRINT]
default_parameter_BED_TEMP: 60
default_parameter_EXTRUDER_TEMP: 195
gcode:
    G28 ;Home
    G29 ;Load Mesh Bed Level

    # Start bed heating
    M117 Heating bed
    M140 S{BED_TEMP}
    # Use absolute coordinates
    G90
    # Reset the G-Code Z offset (adjust Z offset if needed)
    SET_GCODE_OFFSET Z=0.0
    # Home the printer
    G28
    # Move the nozzle near the bed
    G1 Z5 F3000
    # Move the nozzle very close to the bed
    G1 Z0.15 F300
    # Wait for bed to reach temperature
    M190 S{BED_TEMP}
    # Start nozzle heating
    M117 Heating nozzle
    M104 S{EXTRUDER_TEMP}
    # Set and wait for nozzle to reach temperature
    M109 S{EXTRUDER_TEMP}
    # Prime line
    PRIME_EXTRUDER
    M117 Printing

Si quelqu'un a une idée.

j'ai tenté la commande G28 avant de lancer l'impression ça coince aussi. Je suis à l'ouest complet et pourtant j'ai pas bougé du jura

Modifié (le) par FBR39120
Lien vers le commentaire
Partager sur d’autres sites

Les variables «default_parameter_» sont «dépréciées», il est préférable d'utiliser la syntaxe «{% set … %}». Par  exemple mon START_PRINT (fonctionnel) :

Citation
[gcode_macro START_PRINT]
#variable_T_BED: 60
#variable_T_EXTRUDER: 200
#variable_STANDBY_T_EXTRUDER: 170
gcode:
{% set T_BED = params.T_BED|default(60)|float %}
{% set T_EXTRUDER = params.T_EXTRUDER|default(200)|float %}
{% set STANDBY_T_EXTRUDER = params.STANDBY_T_EXTRUDER|default(170)|float %}
M117 Homing
# Use absolute coordinates
G90
# Reset Pressure Advance to 0, will be adjusted later in gcode based on material settings from cura
#M900 K0
# Reset the G-Code Z offset (adjust Z offset if needed)
SET_GCODE_OFFSET Z=0.0
# Home the printer
G28
# Use the bed mesh
#G29
BED_MESH_PROFILE LOAD=cr10v2
# Move the nozzle near the bed
G1 X15 Y20 Z5 F6000
# Move the nozzle very close to the bed
G1 Z0.15 F300
M117 Waiting for temperature
# Start bed and extruder heating and continue
M104 S{STANDBY_T_EXTRUDER}
M140 S{T_BED}
{% if printer.heater_bed.temperature < params.T_BED|float*0.85 %}
M190 S{params.T_BED|float*0.85} # wait till 0.85 of bed temp is reached, then continue
{% endif %}
 
M140 S{T_BED}
M104 S170
M190 S{T_BED}
M109 S{T_EXTRUDER}
 
# Prime line
PURGE

M117 Printing...

🙂

Lien vers le commentaire
Partager sur d’autres sites

Merci,

alors question car je suis un vrai noob et ça ne veut pas rentrer; du moins pas aussi vite que je voudrais.

Si je réécris comme ça est ce que ça fonctionnera ?

[gcode_macro START_PRINT]

#variable_T_BED: 60
#variable_T_EXTRUDER: 200
#variable_STANDBY_T_EXTRUDER: 170
gcode:
{% set T_BED = params.T_BED|default(60)|float %}
{% set T_EXTRUDER = params.T_EXTRUDER|default(200)|float %}
{% set STANDBY_T_EXTRUDER = params.STANDBY_T_EXTRUDER|default(170)|float %}


    G28 ;Home
    G29 ;Load Mesh Bed Level

    # Start bed heating
    M117 Heating bed
    M140 S{BED_TEMP}
    # Use absolute coordinates
    G90
    # Reset the G-Code Z offset (adjust Z offset if needed)
    SET_GCODE_OFFSET Z=0.0
    # Home the printer
    G28
    # Move the nozzle near the bed
    G1 Z5 F3000
    # Move the nozzle very close to the bed
    G1 Z0.15 F300
    # Wait for bed to reach temperature
    M190 S{BED_TEMP}
    # Start nozzle heating
    M117 Heating nozzle
    M104 S{EXTRUDER_TEMP}
    # Set and wait for nozzle to reach temperature
    M109 S{EXTRUDER_TEMP}
    # Prime line
    PRIME_EXTRUDER
    M117 Printing
Lien vers le commentaire
Partager sur d’autres sites

Normalement oui. Tu as juste supprimé la ligne concernant mon Bltouch (récupération du maillage enregistré) et modifié l'appel pour faire la ligne de  purge que je nomme simplement PURGE et toi PRIME_EXTRUDER 😉

Dans ma macro, la buse préchauffe à 170°C et ne monte en température d'extrusion que quand le plateau chauffant est à température.

Quelle ligne de commande utilises-tu dans le Gcode de démarrage de ton trancheur ?

🙂

Lien vers le commentaire
Partager sur d’autres sites

Alors j'utilise le Gcode par défaut de prusa,

G90 ; use absolute coordinates
M83 ; extruder relative mode
M140 S{first_layer_bed_temperature[0]} ; set final bed temp
M104 S150 ; set temporary nozzle temp to prevent oozing during homing
G4 S10 ; allow partial nozzle warmup
G28 ; home all axis
G1 Z50 F240
G1 X2 Y10 F3000
M104 S{first_layer_temperature[0]} ; set final nozzle temp
M190 S{first_layer_bed_temperature[0]} ; wait for bed temp to stabilize
M109 S{first_layer_temperature[0]} ; wait for nozzle temp to stabilize
G1 Z0.28 F240
G92 E0
G1 Y140 E10 F1500 ; prime the nozzle
G1 X2.3 F5000
G92 E0
G1 Y10 E10 F1200 ; prime the nozzle
G92 E0
Modifié (le) par FBR39120
Lien vers le commentaire
Partager sur d’autres sites

Tu n'appelles pas la macro 😉

Mon Gcode de démarrage avec Cura se résume à :

Citation

; gcode macro Klipper

START_PRINT T_BED={material_bed_temperature_layer_0} T_EXTRUDER={material_print_temperature_layer_0} STANDBY_T_EXTRUDER={material_standby_temperature}

Celui de fin (nécessite la présence d'une macro nommée END_PRINT évidemment) :

Citation

; gcode macro Klipper

END_PRINT

🙂

Lien vers le commentaire
Partager sur d’autres sites

Ah oui pardon, actuellement c'est comme ça pour le début car fluidd plante sinon.

Quand j'utilise les macros klipper c'est comme ça 

START_PRINT pour le gcode de début et END_PRINT pour le gcode de fin.

D'ailleurs j'ai une macro pour le END_PRINT qui fonctionne bien c'est le début qui coince

Lien vers le commentaire
Partager sur d’autres sites

Le 07/09/2022 at 18:59, fran6p a dit :

; gcode macro Klipper

START_PRINT T_BED={material_bed_temperature_layer_0} T_EXTRUDER={material_print_temperature_layer_0} STANDBY_T_EXTRUDER={material_standby_temperature}

J'ai mis ce gcode dans prusa slicer et lors du tranchage, il m'indique une erreur 

G-code export to C:\Users\FRANCOIS\AppData\Local\Temp\.18408.gcode failed due to invalid custom G-code sections:
start_gcode
Parsing error at line 2: Not a variable name
START_PRINT T_BED={material_bed_temperature_layer_0} T_EXTRUDER={material_print_temperature_layer_0} STANDBY_T_EXTRUDER={material_standby_temperature}
                   ^
Please inspect the file C:\Users\FRANCOIS\AppData\Local\Temp\.18408.gcode.tmp for error messages enclosed between
        !!!!! Failed to process the custom G-code template ...
and
        !!!!! End of an error report for the custom G-code template ...
for all macro processing errors.

Si je ne veux plus avoir de message d'erreur il faut que j'écrive seulement

START_PRINT

Et donc lorsque j'écris la macro, et que je fais un save and restart voilà ce que j'ai comme message :

Option '{% set t_bed' is not valid in section 'gcode_macro start_print'

Once the underlying issue is corrected, use the "RESTART"
command to reload the config and restart the host software.
Printer is halted

VOICI LA MACRO 
[gcode_macro START_PRINT]

#variable_T_BED: 60
#variable_T_EXTRUDER: 200
#variable_STANDBY_T_EXTRUDER: 170
gcode:
{% set T_BED = params.T_BED|default(60)|float %}
{% set T_EXTRUDER = params.T_EXTRUDER|default(200)|float %}
{% set STANDBY_T_EXTRUDER = params.STANDBY_T_EXTRUDER|default(170)|float %}

    G28 ;Home
    G29 ;Load Mesh Bed Level

    # Start bed heating
    M117 Heating bed
    M140 S{BED_TEMP}
    # Use absolute coordinates
    G90
    # Reset the G-Code Z offset (adjust Z offset if needed)
    SET_GCODE_OFFSET Z=0.0
    # Home the printer
    G28
    # Move the nozzle near the bed
    G1 Z5 F3000
    # Move the nozzle very close to the bed
    G1 Z0.15 F300
    # Wait for bed to reach temperature
    M190 S{BED_TEMP}
    # Start nozzle heating
    M117 Heating nozzle
    M104 S{EXTRUDER_TEMP}
    # Set and wait for nozzle to reach temperature
    M109 S{EXTRUDER_TEMP}
    # Prime line
    PRIME_EXTRUDER
    M117 Printing
Modifié (le) par FBR39120
entre temps il s'en est passé des choses
Lien vers le commentaire
Partager sur d’autres sites

Salutation

il faut noter que la syntaxe et mots clé de remplacement ne sont pas les même pour Prusa Slicer ( https://help.prusa3d.com/article/macros_1775#variables-placeholders ) .

Il y a 7 heures, FBR39120 a dit :
Le 07/09/2022 at 18:59, fran6p a dit :

; gcode macro Klipper

START_PRINT T_BED={material_bed_temperature_layer_0} T_EXTRUDER={material_print_temperature_layer_0} STANDBY_T_EXTRUDER={material_standby_temperature}

J'ai mis ce gcode dans prusa slicer et lors du tranchage, il m'indique une erreur 

là cela ressemble a la syntaxe et mots clé de remplacement a utiliser sous Ultimaker Cura ( http://files.fieldofview.com/cura/Replacement_Patterns.html ) .

 

Donc tu cherche a remplacer dans le g-code de démarrage sous Prusa Slicer 

{material_bed_temperature_layer_0} par sont équivalent pour Prusa Slicer qui il me semble est {first_layer_bed_temperature[0]} ou [first_layer_bed_temperature]

{material_print_temperature_layer_0} par  {first_layer_temperature[0]} ou [first_layer_temperature]

{material_standby_temperature} par ?

 

Pour le reste, comme je n'ai pas encore joué avec Klipper, je ne sais pas.

  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

ça ne fonctionne pas non plus

il y a une heure, PPAC a dit :

Salutation

il faut noter que la syntaxe et mots clé de remplacement ne sont pas les même pour Prusa Slicer ( https://help.prusa3d.com/article/macros_1775#variables-placeholders ) .

là cela ressemble a la syntaxe et mots cl

 

Donc tu cherche a remplacer dans le g-code de démarrage sous Prusa Slicer 

{material_bed_temperature_layer_0} par sont équivalent pour Prusa Slicer qui il me semble est {first_layer_bed_temperature[0]} ou [first_layer_bed_temperature]

{material_print_temperature_layer_0} par  {first_layer_temperature[0]} ou [first_layer_temperature]

{material_standby_temperature} par ?

 

Pour le reste, comme je n'ai pas encore joué avec Klipper, je ne sais pas.

ça ne fonctionne pas non plus, mais il y a du mieux.

J'ai mis ceci dans prusa.

puis j'ai utilisé ma macro dans klipper, je n'ai plus de messages d'erreur mais je me suis confronté à un autre problème qui vient de la ligne de commande de variable, le problème c'est que pour imprimer l'abs mon bed est à 100°C et ma buse à 245°C, tout monte convenablement pour ensuite voir le bed redescendre à 60°C

{% set T_BED = params.T_BED|default(60)|float %}
{% set T_EXTRUDER = params.T_EXTRUDER|default(200)|float %}

image.png.0ee7116c041857b932cb43217831ecb5.png

Lien vers le commentaire
Partager sur d’autres sites

il y a 42 minutes, FBR39120 a dit :

J'ai mis ceci dans prusa.

Qu'est-ce que tu as mis ?  ? ?

C'est normal que les températures redescendent si tu n'utilises que START_PRINT sans indiquer les températures cibles, ce sont celles par défaut qui seront utilisées (default(60), defautl(200)).

Le G-code de début que j'utilise pour la CR10V2 avec Klipper (celui de fin est identique à celui de Cura) :

Citation

; gcode macro Klipper
START_PRINT T_BED=[first_layer_bed_temperature] T_EXTRUDER=[first_layer_temperature]

🙂

Lien vers le commentaire
Partager sur d’autres sites

il y a 4 minutes, fran6p a dit :

Qu'est-ce que tu as mis ?  ? ?

oups ça n'a pas collé la bonne image, donc j'ai mis ça :

START_PRINT T_BED=[first_layer_bed_temperature] T_EXTRUDER=[first_layer_temperature]

il y a du mieux, je n'ai plus d'erreur en chargeant le fichier depuis prusaslicer vers l'imprimante et plus d'erreur non plus lorsque je veux démarrer l'impression.
En premier il chauffe le bed puis en second la buse ensuite ça coince.
On verra bien à force de lire en long en large et en travers je ne sais plus trop où j'en suis.

Ah oui et la macro que j'utilise est la suivante (elle n'a pas changé mais j'ai tellement tenter des trucs qu'au final j'ai dû tourner en rond)

 

[gcode_macro START_PRINT]
#variable_T_BED: 60
#variable_T_EXTRUDER: 200
#variable_STANDBY_T_EXTRUDER: 170
gcode:
    {% set T_BED = params.T_BED|default(60)|float %}
    {% set T_EXTRUDER = params.T_EXTRUDER|default(200)|float %}
    {% set STANDBY_T_EXTRUDER = params.STANDBY_T_EXTRUDER|default(170)|float %}    
	M117 Homing
    # Use absolute coordinates
    G90
    # Reset Pressure Advance to 0, will be adjusted later in gcode based on material settings from cura
    #M900 K0
	# Reset the G-Code Z offset (adjust Z offset if needed)
    SET_GCODE_OFFSET Z=0.0
    # Home the printer
    G28
    
    # Move the nozzle near the bed
    G1 X15 Y20 Z5 F6000
    # Move the nozzle very close to the bed
    G1 Z0.15 F300    
    M117 Waiting for temperature
    # Start bed and extruder heating and continue
    M104 S{STANDBY_T_EXTRUDER}
    M140 S{T_BED}
    {% if printer.heater_bed.temperature < params.T_BED|float*0.85 %}
        M190 S{params.T_BED|float*0.85} # wait till 0.85 of bed temp is reached, then continue  
    {% endif %}
    
    M140 S{T_BED} 
    M104 S170
    M190 S{T_BED}
	M109 S{T_EXTRUDER}
    
    # Prime line
    PURGE
    M117 Printing...

Donc en même que je rédige ces lignes, j'ai lancé une impression.

Et oh miracle ça fonctionne.

  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

Le 11/09/2022 at 19:57, FBR39120 a dit :

Et oh miracle ça fonctionne.

Il n'y a pas de «miracles» 😉

Quand on utilise les bons «placeholders» et leur syntaxe (sainte Axe 😄 ) ( {} pour Cura et [] pour Prusa/super-slicer), normalement ça fonctionne.

Tu as bien renommé ta macro «PRIME_EXTRUDER” en «PURGE» ? Sinon la ligne de purge ne se réalisera pas et Klipper devrait d'ailleurs te le signaler.

🙂

  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...