Ошибка времени выполнения в pymel
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')
Эй, ребята, у меня есть два вопроса 4 я?
1: последняя строка cm.error('X') возвращает мне ошибку во время выполнения
2: объявление класса работает только в первый раз, когда я запускаю его, когда я хочу получить информацию о преобразовании обновления, я должен снова запустить скрипт
пожалуйста, помогите duuuudes.
с уважением.
2 ответа
Последняя строка всегда выдает ошибку (для получения дополнительной информации, пожалуйста, обратитесь по этой ссылке http://download.autodesk.com/global/docs/maya2013/en_us/CommandsPython/error.html)
Вместо использования headsUpMessage()
Я хотел бы пойти на что-то более надежное, например, объявление собственного класса ошибок. Эта ссылка многое объясняет по этому вопросу. И, кстати, вы на самом деле не используете pymel, поэтому неточно пометить ваш вопрос как таковой. maya.cmds только что упакован в python. Чтобы использовать pymel, вы хотите импортировать так:
from pymel.core import *