想知道是否可以檢索最後一個刪除的對象的名稱。Maya Python/Mel:檢索刪除的最後一個對象的名稱
我查看了listHistory,但似乎列出了選定或命名對象的歷史。我還查看了撤消歷史打印隊列,它將撤消歷史記錄打印到腳本編輯器中,但我無法從控制檯檢索該信息。
任何想法?我環顧四周,無法找到任何信息。提前致謝。
想知道是否可以檢索最後一個刪除的對象的名稱。Maya Python/Mel:檢索刪除的最後一個對象的名稱
我查看了listHistory,但似乎列出了選定或命名對象的歷史。我還查看了撤消歷史打印隊列,它將撤消歷史記錄打印到腳本編輯器中,但我無法從控制檯檢索該信息。
任何想法?我環顧四周,無法找到任何信息。提前致謝。
在事實發生後捕獲任何單個刪除是不可能的。但是,您可以將attributeDeleted
腳本作業粘貼在要監視的對象上 - 當它們被刪除時它會觸發。如果你真的想捕捉每一個對象,一個監聽事件DagObjectCreated
的ScriptJob會讓你將其他腳本作業鉤到每個新對象 - 但是這在大多數情況下並不是一個好主意,因爲它會在你的場景中創建大量的scriptJobs (加上你必須通過有負載時的場景也環路和連接相同的缺失回調到現有的對象,以及...)
import maya.cmds as cmds
from functools import partial
def objectDeleted(obj):
print "%s was deleted" % obj
def catch_deletion(obj):
cmds.scriptJob (attributeDeleted = ((obj + ".tx"), partial(objectDeleted, obj)))
catch_deletion('pCube1')
您可以獲取列表:
undoInfo -q -pq;
有一些非常好的Maya撤銷用例。如事後確定選擇順序。在任何情況下,可能很難知道它實際上是從隊列中形成的,因此您可能需要撤消並重做以獲取被刪除的對象。
所以這可能會或可能不會工作,里程可能會有所不同。
作爲備註,因爲您恢復的東西爲什麼不保存保存時的對象列表。訂單將保持相同(確保),因此您可以將結尾和刪除中的更改視爲缺少的對象。看到一個普通的對象在創建順序。例如,您可以將此用於導入導入的基本差異。同樣適用於刪除。
我不相信事後可能。你看過一個'scriptJob'來觀察刪除嗎? – mhlester
作爲一種解決方法,我使用scriptJob來存儲正在工作的最後選擇 - 感覺應該有一種檢索此信息的方式。 – ABCheshire