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 :
  1. Sélectionner un objet, appuyer sur un bouton pour stocker cette sélection
  2. Sélectionner un deuxième objet, appuyer sur un autre bouton pour le stocker
  3. 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)

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

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 !