Boutique Cinema 4D
Affichage des résultats 1 à 24 sur 24

Discussion: Compteur temps passé

  1. #1
    Pilier Avatar de lolofedo
    Date d'inscription
    mars 2006
    C4D version
    Cinema 4D R11.5
    OS
    Seven 64bits
    Messages
    1 279
    Billets dans le blog
    1

    Compteur temps passé

    Suite à une discussion sur le Chat, je m'en remet à vous :

    Est-il possible de créé un compteur temps passé sur un fichier ?

    Exemple: Vous facturez vos clients au temps passé sur le projet, + le temps machine.
    L'idéal comme je le vois, c'est temps passé sur un fichier, arrêt du compteur à partir de 5 minutes d'inactivité, arrêt du compteur pour rendu. A integrer dans une fenêtre volante (?) avec statistique session globale temps passé, temps de rendu....

    Je parle de ça parceque mon boss, m'a demandé combien de temps j'avais passé à un truc, et là :arg: c'est du plus que grosomodo quand ça fait 6 mois que tu est dessus de temps en temps.

    Voila Paspas, du boulot pour toi..... et pour les autres.
    Seven 64bits, I7 870 2.93Ghz, Nvidia Geforce GTS 240 1Go, 8 Go DDR3, DD 1To Raid0
    http://laurent.fedorenko.free.fr

  2. #2
    Big Boss Avatar de base80
    Date d'inscription
    février 2003
    C4D version
    R12 Studio
    OS
    Fémur
    Messages
    8 330

    Re*: Compteur temps passé

    un tres bon debut
    http://www.frenchcinema4d.fr/hub.php...&xpression=946
    c'est l'horloge de Tengaal :prie: :cry2:
    après il faut trouver un truc pour compter et pour enregistrer...
    mais je ne dit rien

  3. #3
    Gourou Avatar de Jean-Laurent
    Date d'inscription
    mai 2006
    C4D version
    R11.5
    Messages
    3 407

    Re*: Compteur temps passé

    Je pensais que ça existait déjà.
    Sinon, j'ai une idée assez facile je pense à mette en place.

    Comme le code "main()" est exécuté à chaque opération à l'intérieur du logiciel, il suffit d'un simple code qui récupère l'heure et la date système (Tengaal sait faire visiblement) et qui compare cette heure à chaque action.
    Si la durée entre chaque action est inférieure à 5 min, on additionne le temps écoulé et on le place dans un container quelconque, sinon on zappe.
    Ainsi on n'a pas à se soucier de l'ouverture ou de la fermeture du logiciel, ni de laisser le logiciel tourner tout seul.

    Reste à voir si le code est exécuté pendant les rendus (en théorie oui) et à séparer les temps de rendu.
    SMC fan.

  4. #4
    Gourou Avatar de PP
    Date d'inscription
    septembre 2002
    C4D version
    R25 Perpétuelle
    OS
    OSX 12.6.5
    Messages
    4 962

    Re : Compteur temps passé

    Tengaal avait fait un tel compteur sous forme de plug-in je crois. Fouillez son site, c'est tout fait.
    r25 Perpétuelle - iMac 27 2019 - Radeon Pro Vega 48 - OSX 12.6.5

  5. #5
    Pilier Avatar de lolofedo
    Date d'inscription
    mars 2006
    C4D version
    Cinema 4D R11.5
    OS
    Seven 64bits
    Messages
    1 279
    Billets dans le blog
    1

    Re : Compteur temps passé

    http://tengaal.art.chez-alice.fr/Pag...ingCounter.zip

    Un compteur pour SMC inversé h-3.
    Seven 64bits, I7 870 2.93Ghz, Nvidia Geforce GTS 240 1Go, 8 Go DDR3, DD 1To Raid0
    http://laurent.fedorenko.free.fr

  6. #6
    Gourou Avatar de Jean-Laurent
    Date d'inscription
    mai 2006
    C4D version
    R11.5
    Messages
    3 407

    Re : Re : Compteur temps passé

    Citation Envoyé par PP
    Tengaal avait fait un tel compteur sous forme de plug-in je crois. Fouillez son site, c'est tout fait.
    J'ai fouillé mais je n'ai pas trouvé.
    Il y a un compteur "SMC" (3H) mais c'est un peu plus spécifique. :wink:
    De même dans le fichier le "text node" de base, il y a un noeud créé par tengaal qui donne la date et l'heure.
    Mais dans tous les cas, le code n'est pas accessible.
    Le lien donné par tengaal dans la section tutorial n'a plus l'air a jour non plus, c'est dommage.

    La fonction a utilisée est de toute évidence la fonction GeGetSystTime() mais il reste à savoir comment elle fonctionne, ce qui est loin d'être clair dans le SDK. :poucebas:
    A priori, rien de trop compliqué en apparence.

    Edit: Grillé par lolofedo.

    Edit2: Effectivement c'était tout simple: "GeGetSystTime()->second" par exemple.
    J'ai trouvé ça sur le sujet "faire danser les polygones".

    Maintenant, y'a plus qu'à. :wip:
    SMC fan.

  7. #7
    Gourou Avatar de Jean-Laurent
    Date d'inscription
    mai 2006
    C4D version
    R11.5
    Messages
    3 407

    Re : Compteur temps passé

    Voilà l'idée, ça casse pas encore des briques mais c'est le principe.
    Code:
    var first=1;
    var ancientemps;
    var delta;
    var passetemps;
    var heure2;
    
    main(doc,op)
    {
    
    var temps=GeGetSysTime()->minute;
    var heure1=GeGetSysTime()->hour;
    
    if (first) {ancientemps=temps;heure2=heure1;passetemps=0;first=0;}
    
    if (heure1==heure2){delta= temps-ancientemps;}
    else {delta= temps+60-ancientemps;}
    
    ancientemps=temps;
    heure2=heure1;
    
    if (delta<5) {passetemps+=delta;}
    
    println(passetemps);
    
    }
    En gros à chaque nouvelle action, ou défilement d'image, ça compare les minutes précédentes aux nouvelles minutes. Si il y a une différence, c'est que du temps s'est écoulé et ce temps (le plus souvent "1 minute" car c'est rare de rester inactif plus longtemps) est ajouté à la variable "passetemps". Si on reste inactif plus de 5 minutes, le temps écoulé n'est pas comptabilisé.
    Pour ne pas avoir des temps de travail négatifs, il faut aussi comparer l'heure. Quand on passe de 15h59 à 16h01, le calcul du temps écoulé n'est pas tout à fait le même.

    Si on fait un rendu dans la fenêtre, le temps continu d'être comptabilisé, par contre il me semble que pour un rendu dans le visualiseur ce n'est plus le cas. (Ce qui est curieux puisque l'expression coffee devrait tourner il me semble?) Il faudra approfondir la question.

    Il reste à trouver une forme esthétique à l'affichage du résultat et à sauvegarder celui-ci pour éviter une remise à 0 à chaque ouverture du fichier. Peut-être le mettre dans le container d'une spline texte? Sous forme d'un noeud Xpresso?
    Donc simplement modifier quelques lignes de code.
    Vérifier aussi si c'est pas trop lourd comme code pour tourner en parallèle.
    SMC fan.

  8. #8
    Pilier Avatar de lolofedo
    Date d'inscription
    mars 2006
    C4D version
    Cinema 4D R11.5
    OS
    Seven 64bits
    Messages
    1 279
    Billets dans le blog
    1

    Re : Compteur temps passé

    :prie: :prie: j'ai rien compris Jean-laurent, mais c'est beau. :love:
    J'attend la suite. :boss:
    Seven 64bits, I7 870 2.93Ghz, Nvidia Geforce GTS 240 1Go, 8 Go DDR3, DD 1To Raid0
    http://laurent.fedorenko.free.fr

  9. #9
    Gourou Avatar de Jean-Laurent
    Date d'inscription
    mai 2006
    C4D version
    R11.5
    Messages
    3 407

    Re : Compteur temps passé

    Voici donc la première version.
    Il suffit de glisser le null avec l'Xpresso dans le fichier.
    Le résultat en minutes apparaît dans la spline text ou dans le noeud "résultat".


    Le fichier en R10: http://cinema4d.chez-alice.fr/pointeuseX.c4d
    Je peux en faire un en 9.5.

    Les rendus de plus de 5 minutes ne sont pas pris en compte, il me semble, donc il faudrait peut-être créer une DU permettant de rentrer le temps des rendus. C'est facile puisqu'il est affiché en bas de la fenêtre.
    On peut ainsi laisser tourner le fichier toute la nuit et simplement rentrer le temps de rendu le lendemain.

    On peut aussi présenter le résultat sous la forme heures, minutes etc...
    Ensuite c'est à vous de voir.

    SMC fan.

  10. #10
    Pilier Avatar de lolofedo
    Date d'inscription
    mars 2006
    C4D version
    Cinema 4D R11.5
    OS
    Seven 64bits
    Messages
    1 279
    Billets dans le blog
    1

    Re : Compteur temps passé

    :efface: je suis en train de tester, ça marche :poucehaut:
    Merci Jean-Laurent t'es un chef
    Seven 64bits, I7 870 2.93Ghz, Nvidia Geforce GTS 240 1Go, 8 Go DDR3, DD 1To Raid0
    http://laurent.fedorenko.free.fr

  11. #11
    Gourou Avatar de Jean-Laurent
    Date d'inscription
    mai 2006
    C4D version
    R11.5
    Messages
    3 407

    Re : Compteur temps passé

    Je viens de réaliser qu'il risque d'y avoir un bug quand on ouvre le fichier un autre jour, à la même heure mais un peu avant.
    Il suffit de remplacer la ligne de code:

    if (delta<5) {passetemps+=delta;}

    Par:

    if (delta<5&&delta>0) {passetemps+=delta;}

    Ainsi on évitera toute erreur. :odile:

    SMC fan.

  12. #12
    Pilier
    Date d'inscription
    novembre 2003
    Messages
    1 240

    Re : Compteur temps passé

    Bravo, c'est vraiment super efficace :poucehaut: Merci pour ce merveilleux outil :prie:

  13. #13
    Pilier Avatar de paspas
    Date d'inscription
    février 2004
    Messages
    990

    Re*: Compteur temps passé

    salut jean-laurent

    peut te poser une question ( bon ok c' est deux ) :mrgreen:


    1 : ca change quoi de définir les variable avant le main() et ca marche avec le noeud coffee ?

    2 : tu peut transformer le main() du noeud par main(doc,op) ??

    paspas

  14. #14
    Gourou Avatar de Jean-Laurent
    Date d'inscription
    mai 2006
    C4D version
    R11.5
    Messages
    3 407

    Re : Compteur temps passé

    Je vais tenter deux réponses. (Bon peut-être trois.) :mrgreen:

    Je vais essayer de ne pas dire trop de bêtises. Sinon on me corrigera.

    Tout ce que tu places après le main est "calculé" par le programme à chaque action, ou à chaque image si c'est une animation. Ainsi, quand tu fais tourner un cube sur lui même, le code dans le main est exécuté 300 fois de suite.
    Ce qui est défini avant le main n'est défini qu'une seule fois, à l'instant où le tag est placé, ou alors lorsque tu cliques sur "exécuter" dans la console, ou que tu recompiles le programme.
    Ainsi, j'ai peut-être tord mais je déclare souvent le plus de choses possibles en dehors du main lorsque c'est possible.

    Je n'ai jamais réussi à remplacer le main du noeud coffee par main(doc,op) mais il est bien précisé dans la documentation du noeud, (il faut que je la relise) que le noeud coffee n'est là que pour faire certains calculs.
    Il n'a pas vocation à remplacer les expressions coffee. On peut faire moins de truc avec.
    SMC fan.

  15. #15
    Pilier Avatar de paspas
    Date d'inscription
    février 2004
    Messages
    990

    Re*: Compteur temps passé

    merci

    je vais tester les variables avant le main ()
    mais je me demande quand meme si ca marche avec le noeud coffee ( je pense pas ) si je me rapelle de mes balbutiment en noeud cofee

    idem suis pas sure que les class foctionnne mais comme deja j y comprend pas grand chose en cofee normal :mrgreen:

    mais il est bien précisé dans la documentation du noeud, (il faut que je la relise) que le noeud coffee n'est là que pour faire certains calculs.
    Il n'a pas vocation à remplacer les expressions coffee. On peut faire moins de truc avec.
    ca fait pas longtemps que j' utilise le tag cofee,
    et donc tout ce que j ai pu trouver dans le sdk fonctionnait dans le noeud coffee ( mais bon suis pas non pus super callé en code cofffé)

    pour le main() en main (doc,op) ca parait logique que non (vu que le noeud appartient au tag expresso et pas a l objet lui meme !)
    donc il faut definir doc avec GetActiveDocument() et op est defini par les port entrée et sortie

    je demandai ca comme tu faisait un code coffee et juste apres un noeud coffee me demandait si le code etait le meme dans le noeud ( mais a premiere vue non )

    paspas



  16. #16
    Pilier Avatar de lolofedo
    Date d'inscription
    mars 2006
    C4D version
    Cinema 4D R11.5
    OS
    Seven 64bits
    Messages
    1 279
    Billets dans le blog
    1

    Re : Compteur temps passé

    :efface: vu que tout le monde est là, j'en profite pour une requête :
    Est-il possible de transformer les 60 minutes en heures ?, au lieu d'un affichage 85, avoir "1H25"......... :o :roll:
    Voila c'est tout, désolé :oops:.
    Mais n'empêche, que cela devrait etre intégré dans C4D, comme l'orsque que tu allume ta PS2, tu démarre un jeu, tu va dans les sauvegardes, et là tu a le temps passé. Enfin, je me comprend. Enfin, j'espére :roll:
    Seven 64bits, I7 870 2.93Ghz, Nvidia Geforce GTS 240 1Go, 8 Go DDR3, DD 1To Raid0
    http://laurent.fedorenko.free.fr

  17. #17
    Pilier Avatar de paspas
    Date d'inscription
    février 2004
    Messages
    990

    Re*: Compteur temps passé

    oui

    tu a ex : 250 min
    tu les divise par 60 min ==> 4,1666 tu prend la valeur plancher 4 tu a le nombre d'heure

    apres tu fait pour le solde

    250 -(4*60)=10 min ==> 4 heures et 10 min

    paspas


  18. #18
    Gourou Avatar de Jean-Laurent
    Date d'inscription
    mai 2006
    C4D version
    R11.5
    Messages
    3 407

    Re : Compteur temps passé

    La modif qui affiche l'heure et les minutes:
    http://cinema4d.chez-alice.fr/pointeuseX.c4d

    J'ai corrigé la possibilité de bug et ajouté une DU "inactivité" où on peut régler la durée (5 minutes par défaut) considérée comme inactif.
    J'ai conservé le décompte total basé sur les minutes, plus pratique pour les calculs.

    Tout ça marche évidemment à quelques minutes près. Sur un projet de 350 heures, ouvert 212 fois, ça ne sera pas à une minute près, vu qu'on perd (ou qu'on gagne) quelques secondes à chaque fois.

    Maintenant si tu veux, je peux rajouter une DU pour rentrer à la main les temps de rendu et les afficher?

    Pour réinitialiser l'engin sans tout perdre, il te suffit de rentrer dans le texte le nombre de minutes précédent de ton projet.

    SMC fan.

  19. #19
    Pilier
    Date d'inscription
    novembre 2003
    Messages
    1 240

    Re : Re : Compteur temps passé

    Citation Envoyé par Jean-Laurent
    La modif qui affiche l'heure et les minutes:
    http://cinema4d.chez-alice.fr/pointeuseX.c4d

    J'ai corrigé la possibilité de bug et ajouté une DU "inactivité" où on peut régler la durée (5 minutes par défaut) considérée comme inactif.
    J'ai conservé le décompte total basé sur les minutes, plus pratique pour les calculs.

    Tout ça marche évidemment à quelques minutes près. Sur un projet de 350 heures, ouvert 212 fois, ça ne sera pas à une minute près, vu qu'on perd (ou qu'on gagne) quelques secondes à chaque fois.

    Maintenant si tu veux, je peux rajouter une DU pour rentrer à la main les temps de rendu et les afficher?

    Pour réinitialiser l'engin sans tout perdre, il te suffit de rentrer dans le texte le nombre de minutes précédent de ton projet.

    Je ne sais pas quoi dire à part merci, alors merci :prie:

  20. #20
    Pilier Avatar de lolofedo
    Date d'inscription
    mars 2006
    C4D version
    Cinema 4D R11.5
    OS
    Seven 64bits
    Messages
    1 279
    Billets dans le blog
    1

    Re : Compteur temps passé

    Citation Envoyé par Jean-Laurent
    La modif qui affiche l'heure et les minutes:
    http://cinema4d.chez-alice.fr/pointeuseX.c4d
    Super Jean-Laurent, mais j'ai toujours que les minutes .....?

    Citation Envoyé par Jean-Laurent
    Maintenant si tu veux, je peux rajouter une DU pour rentrer à la main les temps de rendu et les afficher?
    Moi je veux bien tout ce que tu veux. :poucehaut:
    Seven 64bits, I7 870 2.93Ghz, Nvidia Geforce GTS 240 1Go, 8 Go DDR3, DD 1To Raid0
    http://laurent.fedorenko.free.fr

  21. #21
    Gourou Avatar de Jean-Laurent
    Date d'inscription
    mai 2006
    C4D version
    R11.5
    Messages
    3 407

    Re : Re : Compteur temps passé

    Citation Envoyé par lolofedo
    Super Jean-Laurent, mais j'ai toujours que les minutes .....?
    :shock: :?:

    Tu le regardes où le temps?

    La spline texte est un container qui ne contient que les minutes.
    (En réalité elle n'est là que pour conserver les données après fermeture du fichier).
    Pour voir le temps, tu peux cliquer sur le tag Xpresso, c'est des noeuds résultats.
    Maintenant, libre à toi de faire des résultats ce que tu veux.
    Un image qui s'affiche en permanence en bas de ton dossier, des couleurs qui changent etc...

    Maintenant il y a plusieurs autres possibilités, c'est vous qui voyez.
    On peut créer un noeud qui renvoit en sortie un texte de type: "Vous avez passé 6h57 sur ce fichier".
    N'hésitez pas à demander.


    SMC fan.

  22. #22
    Pilier Avatar de lolofedo
    Date d'inscription
    mars 2006
    C4D version
    Cinema 4D R11.5
    OS
    Seven 64bits
    Messages
    1 279
    Billets dans le blog
    1

    Re : Compteur temps passé

    :poucebas: oups, ok j'avais pas été voir jusque dans les noeud... pardon.
    Et je pensais, il y a un moyen d'avoir aussi une DU qui prendrai en compte le temps passé à faire des rendu dans le viewport ?
    Seven 64bits, I7 870 2.93Ghz, Nvidia Geforce GTS 240 1Go, 8 Go DDR3, DD 1To Raid0
    http://laurent.fedorenko.free.fr

  23. #23
    Pilier Avatar de paspas
    Date d'inscription
    février 2004
    Messages
    990

    Re*: Compteur temps passé

    salut
    pour avoir ca en heure

    tu prend un noeud coffee vide
    j e suppose que la sortie de jean - laurent est du texte 8)

    dans le noeud coffee :

    tu prend une entree texte que tu appelle : minute
    tu prend une sortie texte que tu appelle : heure

    dans le nouveau noeud cofee tu remplace le

    main ()
    par

    main()

    var H1 = evaluate(minute); // récupére en nombre la valeur minute

    var evalheure = int(H1/60);// tu a les heures

    var evalminute = minute-(evalheure*60); // tu a les minutes

    var ecriH = " h "; // texte de séparation

    heure = stradd(evalheure,ecriH,evalminute);
    il ne te reste plus qu' a connecter la valeur de jean - laurent a ce noeud et la sortie au noeud spline et op tu a ça en heure :poucehaut:

    enfin je dis et op mais je fais ça sans c4d :poucebas:

    et a condition que ce que donne jean - laurent soit du texte :mrgreen:

    paspas

  24. #24
    Big Boss Avatar de Seb-bbl
    Date d'inscription
    mai 2005
    C4D version
    R13 Studio
    OS
    Mac OSX 10.7
    Messages
    6 507
    Billets dans le blog
    8

    Re : Compteur temps passé

    J'y connais strictement rien mais je vous suis avec le plus grand intérêt ! A quand un petit plug complet ? :mrgreen:

    La French a une bonne petite équipe de dévs !

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •  
Mediaworks - Logiciels 3D | Design Internet - Creation site internet