Есть ли способ сделать цикл, который можно прервать или отменить в MEL (Maya Embedded Language)?
Как создать прерываемый цикл в mel
Ответы (2)
Вы должны использовать индикатор выполнения. Пример прямо из мануала:
{
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 для прерывания.
person
joojaa
schedule
10.06.2012
Вы можете использовать инструкцию break
. Например:
string $joints[] = {"joint1","joint2","joint3","joint4","joint5","joint6"};
for ($i = 0; $i < size($joints); $i++) {
if ($i > 3){
break;
}
print $joints[$i];
}
напечатает только первые 4 элемента: соединение1 соединение2 соединение3 соединение4
person
cansadadeserfeliz
schedule
04.06.2012
Цикл всегда легко разорвать с помощью условия. Я хочу выйти из цикла, как только цикл начнется. Это связано с тем, что цикл должен начинаться и заканчиваться с учетом всех элементов, в случае если в этом процессе пользователь хочет остановить цикл, он должен иметь возможность это сделать. Надеюсь, я смогу ясно изложить свою точку зрения.
- person Sukhpal Vasdev; 06.06.2012