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

Discussion: user data > quicktab radio > nombre réel

  1. #1
    Pilier Avatar de dotcom
    Date d'inscription
    juillet 2004
    C4D version
    R18 Studio
    OS
    win10
    Messages
    1 366
    Billets dans le blog
    1

    user data > quicktab radio > nombre réel

    Bonjour tout le monde

    Je m'arrache les cheveux sur un truc qui (de loin) semble tout simple.

    J'ai ajouté un user data qui me donne le choix dans plusieurs nombres réels.
    nombres que je souhaite ensuite intégrer dans un calcul xpresso.

    Donc j'ai mon menu user data avec plusieurs valeurs réelles du genre : 0.03 / 0.019 / 0.01 etc.
    je choisis ma valeur de départ / cette valeur est ensuite entrée dans un calcul xpresso/
    la valeur obtenue une fois calcul effectué servira à contrôler un autre paramètre de l'objet c4d.


    Pour le moment j'en suis là :
    J'ai un user data qui me donne une valeur absolue correspondant à une valeur réelle pour le bouton
    Du genre : 1;0.030 ...
    Je n'arrive pas à récupérer le nombre réel : 0.030 dans xpresso mais que la valeur absolue : 1/

    Qu'à cela ne tienne : j'essaie de convenir que 1 = 0.030 / que 2 = 0.010 / etc.
    Et c'est là que ça coince j'ai essayé plusieurs noeuds : range mapper / absolute / condition / equal
    Mais je ne trouve pas un truc du genre :
    if value absolue = 1 then value real = 0.030



    Help !


    Merci

  2. #2
    Pilier Avatar de gr4ph0s
    Date d'inscription
    mai 2013
    C4D version
    R16 Studio
    OS
    win 7 X64
    Messages
    964
    En python tout simplement !
    Il te suffit de remplir la liste dans le noeud python par tes valeurs
    value = [0.5 , 1.5 , 2.5] a faire correspondre avec les valeurs d'affiché
    pythonNode.c4d
    SDK Specialist
    MAXON Computer GmbH

  3. #3
    Pilier Avatar de dotcom
    Date d'inscription
    juillet 2004
    C4D version
    R18 Studio
    OS
    win10
    Messages
    1 366
    Billets dans le blog
    1
    Super ! Merci Gr4phos,

    En fait si j'ai bien compris il faut d'abord lister les nombres de l'output dans le bon ordre /
    ensuite l'integer input est lu,

    c'est ça ?

    Quelle syntaxe ce Python !
    en même temps définir tous les outputs et ensuite lire l'input ça fait peut être gagner du temps en calcul
    ... et en lignes de code
    ( Je pensais qu'une liste de conversion bête et méchante ferait le job,
    input 1 = output 0.030 / input 2 = output 0.010 / etc. )

    je vais de ce pas lire ton tuto d'intro à Python donc / dont voici le " pour ceux qui ne connaissaient pas (encore)

    Merci beaucoup Graphos, ça marche / mais faut que je comprenne Python un peu plus du coup, faut que je me mette à Python !
    if status var python = newbie then newbie = go to learn python basics

    ++

  4. #4
    Pilier Avatar de gr4ph0s
    Date d'inscription
    mai 2013
    C4D version
    R16 Studio
    OS
    win 7 X64
    Messages
    964
    Haha merci pour le lien mais malheureusement ce que j'explique dans mon lien ne te servira pas à grand chose (a par comprendre la syntaxe du python). Les listes viendrons dans la prochaine vidéo.
    Donc dans le script que je t'es passé j'utilise une liste. Une liste ça va être un ensemble de donnée ou chaque donnée va être séparer par des virgules donc pour déclarer une liste tu fais.
    Code:
    maListe = [maPremiereDonnée , MaDeuxièmeDonnée, MaTroisième, etc....]
    Et maintenant pour lire une donnée d'une liste il te suffit de rentrer l'index de ce dernier(sachant que la première valeur rentré à un index de 0)
    Donc ici l'index 0 est égal à maPremièreDonnée et en python pour obtenir cette valeur dans une variable tu fais
    Code:
    monEntre = maListe[0] #0 car tu veux accéder à l'index 0 ce qui te renvoi maPremiereDonnée
    Bon maintenant on reviens à ton cas.
    Lorsque tu définis les différentes valeurs dans un cycle tu met un entier (son ID) puis ça valeur ID;Text.
    Donc partant de ce principe par exemple tu met ceci 0;0.5
    Si en python dans ta liste tu as
    Code:
    maListe = [0.5]
    Tu es d'accord que lorsque tu voudras obtenir la première entré (donc l'index 0) tu auras bien 0.5 qui sera retourné
    Donc il suffit de linker la valeur de ton cycle (qui lui retourne un entier) avec l'index de ta liste en python. ( Quand je dis linker c'est plutôt faire correspondre)
    L’inconvénient de cette méthode c'est que si tu rajoute une entré dans tes UD ils faut aussi penser à la rajouter dans ta liste python et pour les tête en l'air comme moi c'est compliqué alors je te propose une manière un autre fichier ou tout est dynamique !

    Bon vu que maintenant tu as compris l'exemple facile maintenant l'exemple difficile qui lui va récupérer directement le texte du cycle.
    Il te suffit de changer idUserData = 1 avec l'id de l'user data du cycle
    udCycle.c4d
    Dernière modification par gr4ph0s ; 05/09/2016 à 20h07.
    SDK Specialist
    MAXON Computer GmbH

  5. #5
    Pilier Avatar de dotcom
    Date d'inscription
    juillet 2004
    C4D version
    R18 Studio
    OS
    win10
    Messages
    1 366
    Billets dans le blog
    1
    Hello,

    Compris exemple 1
    par contre exemple 2 "dynamique" : pas compris,

    mais quand je dis compris on est très très loin du compte. Je comprends la logique
    et tu l'as très bien expliqué, mais c'est tout.
    Sachant que je sais ce que je veux faire au final / que je sais quelles formules : calculs, appliquer,
    mais que je ne connais pas la syntaxe Python, c'est frustrant et ça l'est d'autant plus que je suis loin d'avoir
    à faire un seul calcul : j'ai 3 formules à appliquer : 3 calculs et plusieurs variables de paramètres objets c4d
    entrent dans ces calculs.
    Ce qui est super motivant donc par contre c'est que je connais ma feuille de route et bon : j'ai plus qu'à apprendre Python quoi !

    au boulot

    Merci Gr4phos pour tes explications détaillées et ton temps,


    ++

Discussions similaires

  1. [Problème] User Data "Bouton" comment s'en servir ?
    Par poumpouny dans le forum Xpresso
    Réponses: 12
    Dernier message: 01/03/2017, 14h43
  2. Boucler une user data
    Par user4D dans le forum Animation
    Réponses: 2
    Dernier message: 27/11/2014, 20h57
  3. [Résolu] User Data Inactif
    Par Pandoxyd dans le forum Nouveaux membres
    Réponses: 0
    Dernier message: 08/07/2014, 11h26
  4. xref et user data
    Par jiajo dans le forum Nouveaux membres
    Réponses: 3
    Dernier message: 12/05/2010, 18h37
  5. Selecteur visuel et user data
    Par cartman1er dans le forum Character animation
    Réponses: 0
    Dernier message: 26/10/2008, 18h19

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