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
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
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
++
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.
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)Code:maListe = [maPremiereDonnée , MaDeuxièmeDonnée, MaTroisième, etc....]
Donc ici l'index 0 est égal à maPremièreDonnée et en python pour obtenir cette valeur dans une variable tu fais
Bon maintenant on reviens à ton cas.Code:monEntre = maListe[0] #0 car tu veux accéder à l'index 0 ce qui te renvoi maPremiereDonnée
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
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éCode:maListe = [0.5]
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 à 19h07.
SDK Specialist
MAXON Computer GmbH
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,
++