2009-04-22 81 views
2

在Maya中,我列出了由以下代碼收集的約束列表。我想重複的約束和查詢的目標爲他們每個人:如何在不知道約束類型的情況下查詢任何約束的目標列表?

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

的問題,有操縱所有約束沒有一般constraint命令。相反,每個約束都有自己獨特的與其相關的MEL命令。

有什麼方法可以查詢約束上的目標,而不必鍵入檢查每個約束並沉悶地運行其各自的MEL命令?在.TARGET

回答

1

listConnections ATTR

清理在梅爾:

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

酷,完全繞過約束命令。 – Soviut 2009-04-22 19:14:30