Bonjour à tous,
Tout d'abord je suis désolé si ma question va sembler bête, mais je débute avec Python et je bloque sur un problème.
Je suis en train de développer un petit script pour Maya (logiciel modélisation 3D), qui a pour but de stocker des sélection, afin de s'en resservir plus tard.
En résumé, l'utilisateur devra :
- Sélectionner un objet, appuyer sur un bouton pour stocker cette sélection
- Sélectionner un deuxième objet, appuyer sur un autre bouton pour le stocker
- Appuyer sur un troisième bouton, qui va accomplir tout le processus du script, en se servant des résultats précédemment enregistrer
Tout d'abord j'étais partit bêtement sur un code de ce type (c'est une version schématisé de ce que j'ai fais)
Finalement, selection1 et selection2 n'étant pas déclarer dans fonctionGlobal, j'ai modifier mon script en appelant les autres fonctions :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 import pymel.core as pmc #J'importe la library de Maya def fonction1(): selection1 = pmc.ls(sl=1) #je stock la selection active dans une variable def fonction2(): selection2 = pmc.ls(sl=1) def fonctionGlobal(): print selection1 print selection2
Bien entendu, en fouillant sur internet je me suis très vite rendu compte que je faisais n'importe quoi, car j'appelais la fonction, qui était du coup recalculé, la sélection active changeant entre la sélection 1 et 2, je me retrouvait avec deux fois la même sélection car j'exécute les deux fonction sans changer de sélection.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 import pymel.core as pmc def fonction1(): selection1 = pmc.ls(sl=1) result selection1 def fonction2(): selection2 = pmc.ls(sl=1) result selection2 def fonctionGlobal(): print fonction1() print fonction2()
Sauf que là je bloque, j'ai bien regardé un peu le système des classes, mais je ne vois pas comment résoudre mon problème.
J'ai aussi tenter de déclarer mes variables hors fonction, pour ensuite les modifier dans mes fonction1 et 2, sauf que la fonctionGlobal prend les variables par défaut.
J'espère m'être fait un minimum comprendre, et je vous remercie d'avance pour votre aide !
Partager