在MAYA 2009中,是否可以捕获立方体旋转事件?

时间:2010-04-17 01:42:46

标签: python events 3d maya

我需要根据cube rotationX调用一个函数(Maya-Python)。为此,我必须以编程方式捕获事件。

我尝试使用while循环,但它卡在循环中,在那段时间内什么也做不了。 我尝试了主题(python),仍然相同。

可以这样或其他方式完成吗?如果是,怎么样?

Windows XP中的Maya

一些失败的代码引用:

import maya.cmds as cmds    
while (count < 90):
     lock = cmds.getAttr('pCube1.rotateX',lock=False)
     print lock
     count = count + 1 

这是Python明智的:

#!/usr/bin/python

    import thread
    import time

# Define a function for the thread
def cubeRotateX( threadName, delay):
   count = 0
   while count < 5:
      time.sleep(delay)
      count += 1
try:
   thread.start_new_thread( cubeRotateX, ("Thread-1", 2, ) )
except:
   print "Error: unable to start thread"

while 1:
   pass

1 个答案:

答案 0 :(得分:1)

这听起来像是一个剧本,可能就是你所追求的。这是一个简单的例子。但是,在此示例中,仅当您从旋转中释放鼠标时才会调用回调。

import maya.cmds

def myRotateCallback():
    print 'do something'

maya.cmds.scriptJob( attributeChange=['pCube1.rotateX', myRotateCallback] )

如果要在旋转多维数据集时接收连续回调,可以使用MNodeMessage :: addNodeDirtyPlugCallback在maya API级别执行此操作。