Aller au contenu

Messages recommandés

Posté(e)

Bonjour Ă  tous.

Utilisateur d'une Creality Ender 3-S1 fonctionnant sous Marlin 2.0.8, j'ai une magnifique barre sur l'écran m'indiquant la progression de l'impression et une autre ligne soit disant m'informant de la durée totale de cette derniÚre et du temps restant. 

Alors je ne suis pas un AS du Marlin, mais toutefois je sais le compiler; le 'bricoler" ayant paramétré mon imprimante à ma "main" et voilà que je me focalise sur ce temps d'impression, dont les ordres GCode gérant ces fonctions sont si je m'abuse les M31, 73, 75, 76, 77.

L'Ă©tude du GCode d'un fichier STL ordinaire, fait apparaĂźtre des lignes informatives Ă  cause du ";"  TIME suivie d'une valeur en seconde identique Ă  ce que Cura m'a donnĂ©, puis presque tout Ă  la fin du mĂȘme fichier TIME_ELAPSED suivie d'une valeur  identique Ă  la premiĂšre.  Et j'ai bien du mal Ă  trouver comment Marlin lit le STL et en tire les durĂ©es d'impression qu'il peut joyeusement afficher sur l'Ă©cran de la machine. 

Car j'aimerai que ces affichages soient en relations avec les durées affichées dans Cura. 

Merci d'avances pour vos explications oĂč ruses et astuces Ă  ce sujet

Posté(e)

Salutation !

Je dirais que normalement le firmware marlin ne perd pas de temps et de ressources Ă  lire les commentaires.

( Par exemple si l'on recherche la chaine "TIME_ELAPSED" dans le code source d'un firmware marlin https://github.com/search?q=repo%3AMarlinFirmware%2FMarlin TIME_ELAPSED&type=code rien ne laisse penser qu'il soit utilisé dans les parties qui "parse" (lecture et interprétation) les lignes d'instructions d'un fichier d'impression)

Donc il ne doit lire qu'éventuellement le "; TIME=".

Mais avec un Ă©cran ayant son propre microcontrĂŽleur ou sur  OctoPrint ou un Klipper lĂ  Ă©ventuellement l'ensemble des commentaires peuvent ĂȘtre traitĂ©s, car tourner sur un truc plus puissant en mĂ©moire et vitesse de calculs. Et peuvent avoir des librairies pour mouliner tout cela, car non contraint par une taille mĂ©moire d'un microcontrĂŽleur ayant peu de ressources et devant rĂ©pondre sans trop de dĂ©lais pour contrĂŽler les mouvements de maniĂšre coordonnĂ©e et sans micro-pauses)

 

Il y a 5 heures, BO105cbs a dit :

Car j'aimerai que ces affichages soient en relations avec les durées affichées dans Cura. 

Il me semble qu'il y a un plugin et/ou un script de post-traitement pour cela dans Ultimaker Cura

( qui en fait, insert des M117 avec comme message le pourcentage d'avancement tout le long de l'impression ... (Mais donc si on change le "feedrate percentage" M220: Set Feedrate Percentage forcement, ils seront faux s'ils affichent des durées, car ses messages de durées seront stockés en dure dans le fichier g-code... )

Posté(e)
il y a 56 minutes, PPAC a dit :

Il me semble qu'il y a un plugin et/ou un script de post-traitement pour cela dans Ultimaker Cura

Vi. Justement il y a une impression qui tourne sur la S1.

Juste avant j'ai faire un fichier gcode tout simple pour vĂ©rifier le comportement de ce script. Alors Ă  la fin de chaque Ă©tape, il place Ă  la fin de cette derniĂšre un M177 affichant une durĂ©e. Comment il fait je ne sait pas mais le temps qui s'affiche est la durĂ©e restante d'impression. pour les Ă©tapes qui suivent.  😼

De sĂ©rie, sur l'Ă©cran de la S1, il y a deux indications de temps d'impression le PRINTING TIME et le REMAIN, Soit la durĂ©e d'impression depuis le dĂ©but pour la piĂšce et le temps restant. LĂ  le fameux script affiche dans la bande rĂ©servĂ©e au message. Oui ma machine me parle, enfin elle m'Ă©critÂ đŸ€Ł, bref l'objet Ă  71 Ă©tapes, tout au dĂ©but donc l'Ă©tape 1/71 le temps affichĂ© qui est donc le global est le mĂȘme que celui que Cura m'a fourni.

A un moment, mon impression est 33% d'avance sur le baregraph

Le TIME est de 1 heure et le REMAIN est de 2 heures

Le script me dit :  (11/71) 2h41mn et des secondes...

Ce que j'aimerai, souhaiterai, comme un voeux pieu, sans que cela soit la conquĂȘte du GraalÂ đŸ€­Â c'est ce que me donne le script actuel, Marlin me le fournisse et au bon endroit. J'ai cherchĂ© sur le web, comment le M75 fonctionne, j'ai trouvĂ© ça et lĂ ,; qu'il dĂ©buterai avec la chauffe de quoi ? MystĂšre.  Bref le M75-M78.cpp fait rĂ©fĂ©rence Ă  un print_job_timer que je ne trouve nulle part ailleurs.... 😬

Posté(e)

Salut,

De ce que je comprends des sources, le calcul serait donné en partie dans le fichier Marlin\src\sd\cardreader.h

#if HAS_PRINT_PROGRESS_PERMYRIAD
    static uint16_t permyriadDone() {
      if (flag.sdprintdone) return 10000;
      if (isFileOpen() && filesize) return sdpos / ((filesize + 9999) / 10000);
      return 0;
    }
  #endif
  static uint8_t percentDone() {
    if (flag.sdprintdone) return 100;
    if (isFileOpen() && filesize) return sdpos / ((filesize + 99) / 100);
    return 0;
  }

appelé dans le fichier Marlin\src\lcd\marlinui.cpp

  MarlinUI::progress_t MarlinUI::_get_progress() {
    return (
      TERN0(SET_PROGRESS_PERCENT, (progress_override & PROGRESS_MASK))
      #if ENABLED(SDSUPPORT)
        ?: TERN(HAS_PRINT_PROGRESS_PERMYRIAD, card.permyriadDone(), card.percentDone())
      #endif
    );
  }

avec le calcul du temps restant placé dans Marlin\src\lcd\marlinui.h

static uint32_t _calculated_remaining_time() {
        const duration_t elapsed = print_job_timer.duration();
        const progress_t progress = _get_progress();
        return progress ? elapsed.value * (100 * (PROGRESS_SCALE) - progress) / progress : 0;
      }

L'estimation du temps d'impression se ferait donc à la serpe, d'aprÚs la taille du fichier Gcode pondéré par le temps écoulé

  • Merci ! 1
Posté(e)

Merci de ces informations  @pommeverte, mais cela ne concerne t'il pas la fameuse barre de progrÚs. J'avoue que je cherche toujours c'est assez long, du fait surtout que je connais pas tellement la structure du programme Marlin et de ses sous modules avec leur classement.

Posté(e) (modifié)

Salut,

Il y a 9 heures, BO105cbs a dit :

cela ne concerne t'il pas la fameuse barre de progrĂšs

oui, c'est utilisé pour gérer l'affichage de la barre de progression mais pas que

Rappel: le temps total = 100  x elapsed.value (=temps écoulé) / progress (=pourcentage effectué)

Modifié (le) par pommeverte
Posté(e)
Il y a 11 heures, pommeverte a dit :

oui, c'est utilisé pour gérer l'affichage de la barre de progression mais pas que

Mouaip ! 😏

J'ai aussi chercher hier un peu partout dans le Marlin, dans ceux de ta rĂ©ponse y compris aussi dans les gCode concernĂ© par le "Temps" sans vraiment trouver la logique, sĂ»rement Ă  cause d'un manque de connaissance de ma part. Pourtant je fais des efforts (pas violent bien surÂ đŸ€Ł) pour comprendre le langage et ses mĂ©andres....

Toujours est il que j'utilise le plugin de Cura, qui fonctionne parfaitement, enfin largement plus prĂ©cis, Ă©tonnĂ© que le Marlin ne puisse en faire autant, ou Ă  minima aurait une fonctionnalitĂ© permettant de rĂ©cupĂ©rer cette information (en cas d'existence, car je ne sais pas si tous les "slicers" offrent la mĂȘme chose) le Marlin ne "tranchants pas.... Maintenant, je cherche dans le systĂšme complexe des menus, comment supprimer l'affichage des informations enfin plutĂŽt de la ligne fournies par Marlin. Bon Ă©videmment, sans te commander 🙄 si tu savais ou cela se trouve, se situe, etc.... 😋 j'ai bien des idĂ©es Ă  force mais forcĂ©ment les bonnes, 😬

Enfin merci de tes réponses.

Posté(e)

Salut,

Il y a 4 heures, BO105cbs a dit :

Maintenant, je cherche dans le systĂšme complexe des menus, comment supprimer l'affichage des informations enfin plutĂŽt de la ligne fournies par Marlin

je n'ai pas trĂšs bien compris la question. D'autant plus que tu dis: đŸ€š

Il y a 4 heures, BO105cbs a dit :

Toujours est il que j'utilise le plugin de Cura, qui fonctionne parfaitement

Est-ce que tu as une photo de l'écran pour comprendre de quelles informations tu parles?

De quelle version de Marlin es-tu parti? Marlin officiel ou mriscoc? Est-ce que tu peux fournir tes fichiers configuration.h et configuration_adv.h?

Posté(e)

Les trancheurs ne peuvent fournir que des temps approximatifs (une fois l'impression débutée, donc une fois les chauffes réalisées), plus ou moins exacts quand les informations d'accélérations, vitesses sont identiques entre trancheur et firmware.

Le seul réel moyen d'obtenir la durée d'impression proche de la réalité est l'analyse a posteriori du fichier gcode tranché.

Les utilisateurs de Klipper peuvent ajouter un « greffon » qui se charge d'obtenir ces durĂ©es : klipper estimator (nĂ©cessite tout de mĂȘme un paramĂ©trage pour qu'il soit vraiment efficace).

Pour Marlin, que je n'utilise quasiment plus, je ne sais s'il existe un projet semblable.

🙂

  • J'aime 1
Posté(e) (modifié)

@pommeverte

Bonjour, Oui j'utilise la base MRisCoc, arrangĂ© Ă  un peu Ă  ma sauce 😋 (J'ai dĂ©sactivĂ© pas mal de bricoles et commentaires, y compris dans son /Proui) , concernant l'Ă©cran les affichages sont ceux d'origine, avec l'apparation de nombreuses autres lignes dans les menus en fait ce que Marlin offre et que Creality bride. Bref le firmware change deux choses enfin trois 😏 pour l'Ă©cran les icĂŽnes plus sympa, la police de caractĂšres plus lisible Ă  mon sens et dans une ligne ou les M117 s'affichent normalement, il a placĂ© des sortes de raccourcis, que j'ai virĂ©, enfin j'ai plutĂŽt dĂ©sactivĂ© ces fonctionnalitĂ©s qui ne me servent pas Ă  la finale. Fichiers en piĂšce jointe. La base Marlin en 2.0.8 bugfix si je ne me trompe pas, en gros il fonctionne parfaitement.

Ecran d'origine de la S1 (ce n'est pas la mienne, mais il était comme ça, seul les icÎnes ont changés et c'est en Français....)

 

image.jpeg.4be6d7199695dad23407776d856875d1.jpeg image.thumb.jpeg.6e9b6a3837b342cb1b1c1b6120c0a4df.jpeg

A droite mon Ă©cran, enfin celui de @fran6p 😉, l'impression dĂ©marrĂ©e il est comme ce lui de gauche, mais en Français.. (Sans les accents, je n'arrive pas Ă  les mettre... pourtant ils existent dans le fichier font.ttf) La barre ou est notĂ© Creality ENDER 3S1 reste et c'est la que s'affiche les messages et notamment les M177 du plug-in Cura. (Heu 5.1 c'est la derniĂšre version de mes firmware, c'est pour me repĂ©rer, lĂ  je travaille sur la 5.2, avec la derniĂšre version du Marlin, dont les compils Ă©chouent Ă  chaque fois, pour des raisons inconnues encore, c'est juste pour le fun, car ma version 5.1 me va...)

En fait je veux désactiver l'affichage de PRINT TIME et REMAIN avec leur valeur en dessous.

@fran6p

Il y a 5 heures, fran6p a dit :

Les trancheurs ne peuvent fournir que des temps approximatifs

Vi. Mais je me suis toujours basĂ© sur ce que Cura me disait, en gros de toute façon il y a trĂšs peu de diffĂ©rence entre la rĂ©alitĂ© et ce que Cura Ă  prĂ©vu au dĂ©part, quelques minutes, alors qu'avec le poisson, j'ai eu sur une grosse impression une bonne surprise au dĂ©but, la S1 m'affichait une durĂ©e plaisante (-55 mn) et Ă  la finale......đŸ€Ł

Bref, le plug in de Cura, je ne sais comment il fait, mais rĂ©cupĂšre les infos du tranchage, t'affiches au dĂ©part la durĂ©e totale, et ensuite la durĂ©e restante, tout en t'indiquant la phase de travail (X/XX) correspondant en fait au dĂ©coupage Curatesque 😋 du fichier STL. Ca correspond presque avec la barre de progrĂšs.

Je n'ai fait que trois impressions (15 mn, 2h30 et 3h50) plug-in activĂ© sans noter de diffĂ©rences notables entre ce que j'ai relevĂ© (Avec mon chronographe, un truc rond que l'on porte au poignet et qui n'a pas besoin d'ĂȘtre rechargĂ© pour donner l'heure đŸ€ŁÂ ) depuis le traçage ou la premiĂšre opĂ©ration qui est soit la jupe soit la bordure, le dĂ©compte commence lĂ  pour lui. Chauffe et ligne de purge ne sont pas pris en compte.

Il y a 5 heures, fran6p a dit :

Pour Marlin, que je n'utilise quasiment plus, je ne sais s'il existe un projet semblable.

Bah, j'ai cherchĂ©, vu, lu sur des Github, des redit pas mal de choses au sujet des temps d'impressions, mais rien de concluant ou d'approchant ce que je souhaite, et l'Ă©tude du Marlin 😏 (si j'ose 😋) s'avĂšre complexe, pourtant dans une vie antĂ©rieure, les joies de la programmation ne m'Ă©tait pas inconnus, j'ai mĂȘme peut ĂȘtre encore une K7 de mon Commodore 64Â đŸ€š. Donc le poisson j'en comprends la structure, le langage par contre.... Si les ordres ne me sont pas inconnus (Quoique parfois ils auraient faire plus simple, sans compter des fonctions ou des "ordres" qui sortent un peu de mes compĂ©tences..Ă©sotĂ©risme ? ), leur arrangement..  đŸ€ȘÂ đŸ™ƒÂ đŸ˜¶Â Me prennent un peu la tĂȘteÂ đŸ€Ł

Bon, rassure toi, je ne t'en veux pas de ne plus utiliser le Marlin 😁 Personne n'est parfaitÂ đŸ€ŁÂ đŸ€Ł

Encore Merci de m'aider dans ma quĂȘte du temps...

Configuration.h Configuration_adv.h

Modifié (le) par BO105cbs
Posté(e) (modifié)

Je dirais que les valeurs du temps:

  • Ă©coulĂ© est mis Ă  jour Ă  la ligne suivante du fichier Marlin\src\lcd\e3v2\proui\dwin.cpp

DWINUI::drawString(hmiData.colorText, hmiData.colorBackground, 47, 192, buf);

  • restant est mis Ă  jour Ă  la ligne suivante du fichier Marlin\src\lcd\e3v2\proui\dwin.cpp

DWINUI::drawString(hmiData.colorText, hmiData.colorBackground, 181, 192, buf);

les titres (labels Printing time et remaining) sont créés dans le mĂȘme fichier, ici:

  DWINUI::drawString( 46, 173, GET_TEXT_F(MSG_INFO_PRINT_TIME));

  DWINUI::drawString(181, 173, GET_TEXT_F(MSG_REMAINING_TIME));

Modifié (le) par pommeverte
Posté(e) (modifié)
Il y a 6 heures, pommeverte a dit :

Si tu commentes ces lignes, ce sera plus efficace 😉

đŸ˜¶Â Heu avant de faire une connerie que veux tu dire par commentes  ?

J'ai compris le principe, j'ai trouvĂ© aussi les lignes et d'autres ailleurs traitant du mĂȘme sujet, car le fait de commenter 🙃 celles que tu m'a indiquĂ© ne suffisait pas. Maintenant c'est OK, je n'ai plus les deux lignes. Bon, je refais tous les calibrages machine avant de poursuivre mon impression qui patientait sagement.

Encore un grand Merci @pommeverte

Modifié (le) par BO105cbs
  • Merci ! 1

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...