Notifications
Clear all

PrusaSlicer G-code  

  RSS
o|o Philippe o|o
(@oo-philippe-oo)
Active Member
PrusaSlicer G-code

Bonjour,

En intégrant un gcode personnalisé permettant de définir automatiquement la température du bed selon la couche où se trouve la buse pour neutraliser le warping, je me suis aperçu d'une étrangeté dans le calcul de PrusaSlicer.
Pour ceux qui veulent tester la question, insérez M117 dans la personnalisation du gcode.

Pour l'exemple, j'ai défini les valeurs suivantes dans le slicer:
first_layer_bed_temperature: 80°C
bed_temperature: 90°C

Si j'encode:

M117 {(bed_temperature[0]-first_layer_bed_temperature[0])/(15-6)}

Le résultat dans le gcode sera 1 car le résultat 10/9=1,11...11 est supérieur à 1

En revanche, si j'encode:

M117 {(bed_temperature[0]-first_layer_bed_temperature[0])/(15-4)}

Le résultat dans le gcode sera 0 car le résultat 10/11=0,9090...9 est inférieur à 1

Le fait est que PrusaSlicer n'arrondit pas à la valeur supérieure pour obtenir un entier, mais arrondit à la valeur inférieure pour obtenir cet entier.

Or il existe dans le gcode la fonction mathématique FUP[arg].
Si le second cas pouvait être programmé ainsi:

{(bed_temperature[0]-first_layer_bed_temperature[0])/FUP[(15-4)]}

 

-> le résultat serait 1. Dans ce cas il serait inutile de veiller à ce que la valeur d'une division soit toujours supérieure à 1.

Donc ce message à l'équipe de Prusa: ce serait bien pratique que vous rendiez possible de programmer un gcode avec les fonctions suivantes:
- la définition de variables: #1... #100... etc ;
- la fonction FUP[arg] ;
- et tant qu'à faire, de pouvoir intégrer des sous-programmes avec les codes O, pour éviter d'avoir à créer des programmes externes au slicer.

Qu'en pensez-vous ?

Posted : 27/10/2021 9:23 am
Olivier-Saraja
(@olivier-saraja)
Noble Member
RE: Via le github si tu souhaites une prise en compte
Posted by: @oo-philippe-oo

Donc ce message à l'équipe de Prusa: ce serait bien pratique que vous rendiez possible de programmer un gcode avec les fonctions suivantes:
- la définition de variables: #1... #100... etc ;
- la fonction FUP[arg] ;
- et tant qu'à faire, de pouvoir intégrer des sous-programmes avec les codes O, pour éviter d'avoir à créer des programmes externes au slicer.

Qu'en pensez-vous ?

Bonjour Philippe,

Je ne sais pas trop pour les fonctionnalités que tu proposes, mais ce forum est utilisateurs vs utilisateurs, les développeurs de Prusa Slicer n'y passeront vraisemblablement pas/jamais. Pour les propositions d'amélioration, peut-être vaut-il mieux passer par un point d'entrée dans: https://github.com/prusa3d/PrusaSlicer/issues

Dagoma Neva, Prusa Mk3s, Anycubic Photon Mono X 6k et Wash&Cure Plus.

Posted : 28/10/2021 2:41 pm
o|o Philippe o|o
(@oo-philippe-oo)
Active Member
Topic starter answered:
RE: Via le github si tu souhaites une prise en compte

Bonjour Olivier,

Merci pour ce lien que j'ignorais. D'habitude j'adresse mes observations par email à l'équipe, mais hier je n'en avais pas le temps et souhaitais prioritairement également soumettre le sujet aux utilisateurs...

Je viens donc de déposer le sujet sur Github -> https://github.com/prusa3d/PrusaSlicer/issues/7196

Il me semblerait effectivement bien plus pratique de pouvoir personnaliser le gcode directement dans le slicer avec une programmation plus complète plutôt que d'avoir à programmer dans un fichier externe (et apprendre un langage de plus !), comme on l'enseigne dans les écoles professionnelles par exemple pour des machines CNC.

Pour la seconde couche, as-tu remarqué que PrusaSlicer place dans le gcode final le gcode personnalisé avant les valeurs par défaut, ce qui annule la personnalisation ? Ce qui oblige à faire une modification dans le fichier .gcode à chaque fois. Laborieux, quand il y a un paquet de lignes de code !

Posted : 29/10/2021 10:28 am
Share: