0

我正在尝试找出一种在 Python 中在 Maya 中创建自动完成“创建多边形工具”的方法。因此,当您构建几何图形时,它将选择先前的几何图形和您创建的当前几何图形,并运行一行命令。

但是,我遇到了一个障碍,其中 Create Poly 工具实际上不允许您退出它的命令。

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

这是我的代码的一个片段:

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()

但是,由于它是一起运行的,因此它将工具设置为创建多边形并自动退出。

任何帮助,将不胜感激。

4

1 回答 1

1

您可以强制退出上下文

cmds.setToolTo('selectSuperContext') 

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

您可能会更轻松地设置一个查找新对象创建的一次性 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。

于 2015-03-13T17:36:41.890 回答