我如何让maya将我执行的操作视为可撤销?

时间:2014-09-11 21:10:26

标签: python maya undo

我正在寻找一种方法来撤消由打开的Maya函数执行的操作。我被要求为Maya制作一个工具,以相对于他们自己的枢轴缩放多个选定的UV壳。这很顺利,但是我的代码不会导致撤消快捷方式可以撤消的内容。

我想撤消的功能是:

MFnMesh.setSomeUVs(uvIds, uValues, vValues, uvSet='')

拉出旧的UV值后,我应用比例,然后使用此功能将新的坐标推回到UV上。我正在寻找一些方法将我对此功能的更改放到撤消队列中,以便用户可以撤消错误。我试图避免使用cmds来进行缩放,因为这会影响UV的选择。

这是我第一次在Maya编程,所以任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

您可以将选择缓存到变量或集合中并将其还原,然后在cmds中完成工作。默认情况下,脚本操作是可撤消的。

或者,您可以将您的功能实现为MpxCommand。如果您实施doItundoItredoIt方法,您将进入常规撤消队列。但是由你来实现它们;您必须存储必要的数据才能执行和撤消MpxCommand实例中的工作。