2017-03-23 3 views
0

Prost, Ich schreibe auf ein Werkzeug, das alle Attribute mit einem bestimmten Präfix erhalten und sie in einem Array speichern sollte. Maya MEL Speichern listAttr in Array

Als ich die listAttr auf eigene verwenden es gibt mir etwas wie folgt aus: // Result: message caching isHistoricallyInteresting nodeState...

Mein Problem: Ich möchte

mel Code, um die Liste der Attribute mit einem bestimmten Präfix in einem Array speichern :

string $currentSelection[] = `ls -sl`; 
string $currentAttributes[];    
$currentShapeNode = `ls -shapes -dag -sl $currentSelection`; 
string $currentAttributes[] = `listAttr -ct "ai*"`; 
print $currentAttributes; 

Die $currentAttributes Liste bleibt leer. Ich kann nicht herausfinden, was ich falsch mache.

Antwort

1

Sie haben wahrscheinlich mit Kategorie und String verwechselt. Wenn Sie einen Blick in doc

ct werfen -> zeigen nur Attribute, die zu der angegebenen Kategorie gehören. Kategoriestring kann ein regulärer Ausdruck sein.

st -> Listet nur die Attribute auf, die den anderen Kriterien entsprechen UND stimmen mit den von diesem Flag übergebenen Strings überein. String kann ein regulärer Ausdruck sein.

Also in Ihrem Fall, dass Sie wahrscheinlich für st suchen

Dies funktioniert

string $currentSelection[] = `ls -sl`; 
string $currentAttributes[];    
$currentShapeNode = `ls -shapes -dag -sl $currentSelection`; 
string $currentAttributes[] = `listAttr -st "ai*"`; 
print $currentAttributes; 
+0

Danke, dass gearbeitet! –