Если я могу предложить альтернативу, попробуйте использовать команду repeatLast для майнинга ваших операций, она не идеальна, но превосходит фильтрацию эха.К сожалению, Autodesk пропустил документацию команды, возможно потому, что они сломали механизм, поскольку он не знает, является ли команда python или нет.
Вы можете использовать следующую команду для извлечения повторной последней структуры:
import maya.cmds as mc
cmdsExecuted = mc.repeatLast(q=1, cl=1)
Maya даже любезно предоставляет событие RecentCommandChanged каждый раз, когда repeatLast структура изменяется.Это делает его идеальным для мониторинга изменений для графического интерфейса, такого как Photoshop.Повторяющийся последний список гораздо более краткий, чем тот, который вы получили бы из чистого эха майя, и гарантированно сработает, если вы сможете выяснить, когда вещь является питоном, а что нет.Но в основном вы записываете большинство пунктов меню, но не редактируете и не повторяете инструмент.Это просто и не работает для всех ситуаций, но хороший инструмент для мониторинга, который делает все, немного сложен для создания.
Объедините это с идеей undoInfo, и вы получите гораздо лучший способ сбора информации.Что касается setAttr, вы можете отслеживать эти изменения напрямую, прослушивая узлы, но это очень быстро усложняется.