maya.cmds Диалог завершения скрипта - PullRequest
0 голосов
/ 17 апреля 2019

Я хотел бы завершить весь сценарий, если атрибут не найден. В настоящее время у меня есть следующий код. Я отображаю диалог и использую sys.exit() для завершения скрипта, но мне интересно, есть ли диалог cmds, который делает это автоматически для вас без sys.exit(),

def check_attr(attr):
    if not cmds.select(cmds.ls(attr)):
         cmds.confirmDialog(title= 'Attribute not found   ', message = attr+' attribute was not found', button =['OK'])
         sys.exit()

Мой вопрос: Существует ли cmds ... Диалог, который останавливает скрипт?

1 Ответ

1 голос
/ 18 апреля 2019

Поскольку вы используете функцию, самым простым способом было бы использовать return в вашем if состоянии, чтобы она никогда не продолжала остальные функции:

def check_attr(attr):
    if not cmds.select(cmds.ls(attr)):
         cmds.confirmDialog(title= 'Attribute not found   ', message = attr+' attribute was not found', button =['OK'])
         return

    print "Continuing script"


check_attr("someAttr")

Вы также можете использоватьOpenMaya.MGlobal.displayError, чтобы отобразить его на панели задач Maya:

import maya.OpenMaya as OpenMaya


def check_attr(attr):
    if not cmds.select(cmds.ls(attr)):
         OpenMaya.MGlobal.displayError(attr + ' attribute was not found')
         return

    print "Continuing script"


check_attr("attr")

Хотя будьте осторожны, поскольку OpenMaya.MGlobal.displayError просто отображает ошибку, она не останавливает выполнение, как cmds.error.Вы также можете использовать cmds.error, но я обнаружил, что ошибка, отображаемая на панели задач, гораздо менее читаема.

...