Maya python 定时器的实现方法
白羽 2018-06-13 来源 :网络 阅读 1596 评论 0

摘要:本文将带你了解Maya python 定时器的实现方法,希望本文对大家学Maya有所帮助。




maya python 定时器,在maya实现一下python定时器线程控制。

不过简单的可行,建立物体等操作会有崩溃问题发生

并报出 r6025 pure virtual function call或者'Cannot convert data of type string[] to type string

然后就崩溃了

但是平常的移动之类没什么问题

可以用来刷新一些东西

另外这种方法不会阻塞maya的主线程,也就是说你可以一边操作一边看

以下代码操作注意有可能会导致maya崩溃

   
import threading as thd
import time
import maya.cmds as cmds
 
global aaa
aaa = 1
def fn():
    global aaa
    aaa += 1
    cmds.polySphere(n='mySphere'+str(aaa),sx=1, sy=1, r=1)
    cmds.select( clear=True )
    thd.Timer(1,fn).start()
 
fn()
   
上面的就会崩溃
下面的就不会,估计是创建的问题(需要新建一个叫sphere的物体)

 


   

import threading as thd
import time
import maya.cmds as cmds
 
global aaa
aaa = 1
def fn():
    global aaa
    aaa += 1
    cmds.setAttr( 'sphere.translateX', aaa )
    cmds.select( clear=True )
    thd.Timer(1,fn).start()
 
fn()
   
下面是完整可控定时器
   
from threading import Timer,Thread,Event
import time
 
class myTimer():
 
   def __init__(self,t,hFunction):
      self.t=t
      self.hFunction = hFunction
      self.thread = Timer(self.t,self.handle_function)
 
   def handle_function(self):
      self.hFunction()
      self.thread = Timer(self.t,self.handle_function)
      self.thread.start()
 
   def start(self):
      self.thread.start()
 
   def cancel(self):
      self.thread.cancel()
 
def printer():
    print time.time()
 
 
t = myTimer(1,printer)
def defaultButtonPush(*args):
  print 'shenmifangke.'
def defaultButtonPush2(*args):
  t.start()
def defaultButtonPush3(*args):
  t.cancel()
cmds.window( width=150 )
cmds.columnLayout( adjustableColumn=True )
cmds.button( label='test', command=defaultButtonPush )
cmds.button( label='开启',  command=defaultButtonPush2)
cmds.button( label='关闭',  command=defaultButtonPush3 )
cmds.showWindow()

   

 


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标常用软件之Maya频道!


本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程