import maya.cmds as cm
import random as random
myList = cm.ls (sl = True)
class MovingObjects:
def up(*arg):
for objects in myList:
cm.move(0,0.5,0 ,r = True)
def down(*arg):
for objects in myList:
cm.move(0,-0.5,0 ,r = True)
class microMove(MovingObjects):
def microUp(*arg):
cm.move(0,0.1,0 , r = True)
def microDown(*arg):
cm.move(0,-0.1,0 , r = True)
class declare:
def transformDeclare(*arg):
for objects in myList:
print('%s'%objects)
print(cm.getAttr('%s.translateX'%objects))
print(cm.getAttr('%s.translateY'%objects))
print(cm.getAttr('%s.translateZ'%objects))
class randomTransform:
def Randomize(*arg):
for objects in myList:
cm.xform('%s'%objects , ws=True,t=[random.uniform(-10,10),random.uniform(-10,10),random.uniform(-10,10)])
M = MovingObjects()
D = declare()
mM = microMove()
RT = randomTransform()
cm.headsUpMessage('First: "please select objects"', verticalOffset=300)
cm.window(t = 'X-transform' , h = 150 , w = 500 , s = False)
cm.columnLayout()
cm.button(l = 'Up' , c = M.up , w = 300 , h = 50 , bgc = (0,0.7,0.7) )
cm.button(l = 'micro-Up' , c = mM.microUp , w = 300 , bgc = (0,1,1))
cm.button(l = 'micro-Down' , c = mM.microDown , w = 300 , bgc = (0,1,1))
cm.button(l = 'Down' , c = M.down , w = 300 , h = 50 , bgc = (0,0.7,0.7) )
cm.button(l = 'Randomizing-objects-transform' , h = 50 , w = 300 , c = RT.Randomize , bgc = (0.8,0.8,0))
cm.button(l = 'Transformation-info' , c = D.transformDeclare , w = 300 , h = 50 )
cm.text( label='Script by : Amin-khormaei', align='center' )
cm.showWindow()
cm.error('Hey dude.. this is it') 嘿,伙计们,我有两个问题,好吗?
1:最后一行cm.error('X')得到一个运行时错误
2:类声明只在我第一次运行它时有效,当我想要获得刷新转换信息时,我应该再次运行脚本
请帮帮我。
诚挚的问候。
发布于 2013-07-12 18:42:07
最后一行总是给你一个错误(有关更多信息,请参考此链接http://download.autodesk.com/global/docs/maya2013/en_us/CommandsPython/error.html)
发布于 2013-07-13 01:42:37
我不会使用headsUpMessage(),而是使用一些更健壮的东西,比如声明自己的error类。这篇link解释了很多关于这个主题的内容。顺便说一句,你实际上并没有使用pymel,所以给你的问题贴上这样的标签是不准确的。maya.cmds只是包裹在python中的mel。要使用pymel,您需要像这样导入:
from pymel.core import *https://stackoverflow.com/questions/17608224
复制相似问题