2009-04-22 14 views
2

En Maya, j'ai une liste de contraintes rassemblées par le code suivant. Je veux itérer les contraintes et interroger les cibles pour chacun d'eux:Comment interroger la liste cible de n'importe quelle contrainte sans connaître le type de contrainte?

cons = ls(type='constraint') 
for con in cons: 
    targets = constraint(query=True, targetList=True) 

Le problème, il n'y a pas de commande constraint général pour manipuler toutes les contraintes. Au lieu de cela, chaque contrainte a sa propre commande MEL unique associée.

Existe-t-il un moyen d'interroger les cibles sur une contrainte sans avoir à taper chaque contrainte et exécuter sa commande MEL respective?

Répondre

1

ListConnections sur le .target attR

le nettoyage de mel:

string $cons[] = `ls -type "constraint"`; 
for ($con in $cons){ 
    string $targetAttrString = ($con+ ".target"); 
    string $connections[] = `listConnections $targetAttrString`; 
    string $connectionsFlattened[] = stringArrayRemoveDuplicates($connections); 
    for ($f in $connectionsFlattened) 
     if ($f != $con) 
      print ($f+ " is a target\n"); 
} 
+0

cool, contournent les commandes de contraintes tout à fait. – Soviut

Questions connexes