2015-03-13 47 views
0

我試圖找出一種方法來創建一個自動完成「創建多邊形工具」在瑪雅,在Python中。當你建立幾何體時,它會選擇以前的幾何體和當前的幾何體,並運行一行命令。自動完成「創建多邊形工具」Maya

但是,我遇到了一個障礙,其中創建多義工具實際上不讓您退出其命令。

有人會知道解決這個問題的方法嗎?

這裏是我的代碼剪斷位:

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

然而,由於它的運行起來,它設置爲創建多邊形工具,並自動退出了。

任何幫助,將不勝感激。

回答

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時用戶自己完成該工具。

+0

我喜歡那樣,我會測試scriptjob。我之前從未使用過這個功能,並且希望能像這樣一次使用它,但不知道如何。 – SirJames 2015-03-13 18:10:15

+0

你是個天才!謝謝Theodox。 – SirJames 2015-03-13 18:49:52