我试图找到一种方法来创建一个自动完成"创建多边形工具"在Maya中,在Python中。因此,在构建几何体时,它将选择先前的几何体和当前的几何体,并运行一系列命令。
但是,我遇到了麻烦,其中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()
但是,由于它一起运行,它会设置工具以创建多边形并自动退出。
任何帮助都将不胜感激。
答案 0 :(得分: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。