maya.cmds对话框结束脚本

时间:2019-04-17 14:48:59

标签: python maya pymel

一旦找不到属性,我想结束整个脚本。目前,我有以下代码。我显示一个对话框,并使用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 个答案:

答案 0 :(得分:1)

因为您正在使用函数,所以最简单的方法是在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,但我发现它在任务栏中出现的错误的可读性要差得多。