ошибка времени выполнения в 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 ya?

1: последняя строка cm.error('X') вызывает ошибку времени выполнения

2: объявление класса работает только в первый раз, когда я его запускаю, когда я хочу получить информацию о преобразовании обновления, я должен снова запустить скрипт

пожалуйста помогите дуууудес.

наилучшие пожелания.


person Amin Khormaei    schedule 12.07.2013    source источник
comment
какое это имеет отношение к pymel? вы не используете pymel в примере.   -  person joojaa    schedule 13.07.2013
comment
о, мне жаль человека. Я допустил ошибку   -  person Amin Khormaei    schedule 13.07.2013


Ответы (2)


Последняя строка всегда выдает ошибку (для получения дополнительной информации, пожалуйста, перейдите по этой ссылке http://download.autodesk.com/global/docs/maya2013/en_us/CommandsPython/error.html)

person Linh Nguyen    schedule 12.07.2013
comment
я хочу показать сообщение в командной строке для запуска этого скрипта в Maya. один парень сказал мне, что это возможно по команде ошибки. если у него есть другой способ сделать это, пожалуйста, сообщите мне. - person Amin Khormaei; 12.07.2013
comment
Что ж, есть несколько способов сделать это. Один из них — импортировать sys, затем вы можете использовать sys.stdout.write (это вывод) … который будет отображаться на панели вывода внизу. Оператор печати не может этого сделать. Еще одна вещь, которую вы можете сделать, это поместить оператор печати в ваш userSetup.py.. это будет печатать сообщения на ваш терминал или CMDPrompt в Windows... - person Argiri Kotsaris; 12.07.2013

Вместо использования headsUpMessage() я бы выбрал что-то более надежное, например объявление собственного класса ошибок. Эта ссылка многое объясняет по этому вопросу. И кстати, на самом деле вы не используете pymel, поэтому неточно помечать ваш вопрос как таковой. maya.cmds — это просто мел, завернутый в python. Чтобы использовать pymel, вы захотите импортировать его следующим образом:

from pymel.core import *
person Argiri Kotsaris    schedule 12.07.2013