自动完成 "Create Polygon Tool" Maya

Auto-completing "Create Polygon Tool" Maya

我正在尝试找出一种在 Maya Python 中创建自动完成 "Create Polygon Tool" 的方法。所以当你构建几何时,它会 select 以前的几何,和你创建的当前几何,以及 运行 一行命令。

不过,我 运行 遇到了麻烦,创建多边形工具实际上不允许您退出它的命令。

有人知道解决这个问题的方法吗?

这是我的代码片段:

from pymel.core import *
def codeToExecute():
    #lists, combines, does a few other things like deleting history
polyCreateFaceCtx('newCtx',mp=4)
setToolTo('newCtx')                      #allows you to create a polygon
maya.mel.eval('CompleteCurrentTool')     #need this to stop it from continuing its loop
geo=ls(sl=True)
codeToExecute()

但是,由于是运行在一起,所以设置工具创建多边形后自动退出。

如有任何帮助,我们将不胜感激。

您可以使用

强制退出上下文
cmds.setToolTo('selectSuperContext') 

这会将您切换到 select 工具并完成多边形工具。但是,我认为这不会像您在此处列出的那样起作用:您将切换到该工具并立即切换出去,而无需等待用户创建内容。

您可能更容易设置一次性 scriptJob 来寻找新的对象创建,这将 运行 当用户自己退出命令时:

def do_something(*_):
    print cmds.ls(sl=True)

cmds.scriptJob(e=('DagObjectCreated', do_something), runOnce =True)
cmds.polyCreateFaceCtx('newCtx',mp=4)
cmds.setToolTo('newCtx')   

这将在用户自行完成该工具时触发 scriptJob。