如何在mel中创建可中断循环

时间:2012-06-04 12:31:57

标签: loops mel

有没有办法在MEL(Maya嵌入式语言)中创建可以中断或取消的循环?

2 个答案:

答案 0 :(得分:1)

您应该使用进度条。直接来自手册的例子:

{
    global string $gMainProgressBar;  // This is defined on maya startup

    progressBar -edit
        -beginProgress
        -isInterruptable true
        -status "Example Calculation ..."
        -maxValue 5000
        $gMainProgressBar;

    int $i;
    for($i=0; $i < 5000; $i++) {
        if(`progressBar -query -isCancelled $gMainProgressBar`)
            break;

        progressBar -edit
            -step 1 $gMainProgressBar; 
    }

    progressBar -edit
        -endProgress
        $gMainProgressBar;
}

Maya现在显示进度并允许您使用 esc 来中断。

答案 1 :(得分:0)

您可以使用break指令。例如:

string $joints[] = {"joint1","joint2","joint3","joint4","joint5","joint6"};
for ($i = 0; $i < size($joints); $i++) {
    if ($i > 3){
        break;
    }
    print $joints[$i];
}

只打印前4个元素:joint1 joint2 joint3 joint4