Отладка сценариев MEL

ЕСЛИ удача сопутствовала читателю до сих пор и код сценариев удавалось вводить аб­ солютно точно, то сообщения об ошибках MEL, возможно, еще и  не появлялись.  Однако начав  создавать собственные сценарии  MEL, безусловно, сталкиваешься с  сообщениями об ошибках, наиболее распространенными  из  которых являются  синтаксические   ошиб­ ки.  Каждая команда  имеет определенную  структуру  или  формат,  который  следует  со­ блюдать для ее успешного выполнения.  В противном  случае интерпретатор сценариев не будет знать,  что делать с такой  командой,  и  сообщит о  наличии  синтаксической ошибки (syntax error).

Хотя  отладка  (debugging)  сценариев  —  это  своего рода  искусство, существует  не­ сколько  способов  облегчения этой задачи. Выполнив  сценарий, в  первую очередь  про­ верьте панель истории:  если  последней строкой в  панели  истории  команд  является по­ следняя  строка  кода  сценария, значит, выполнение  прошло  без  ошибок.   В  противном случае отобразится строка комментария приблизительного  такого содержания:

setAttr bo x 5;

//Error : line 1: No Attribute  was specified . //

Это сообщение (/ / Ошибка: строка  1: Атрибут не определен. // ) указывает на то,  что в  ходе анализа была обнаружена как минимум одна ошибка.

Анализ  (parsing) — это термин, описывающий процесс проверки интерпретатором коррект­ ности команд сценария.

Строка   ответа  (feedback   line),   расположенная   в    правой  нижней  части   экрана (рис. 16.9), становится красно-оранжевой, когда интерпретатор  MEL,  обнаружив ошибку в коде, отображает сообщение о ней. Один  из способов быстро выяснить местоположение  ошибки — это выбрать в меню редактора сценариев пункт Script => Line Numbers In Errors (Сценарий => Номера строк при  ошибках), в  результате Maya будет отображать номера строк. Как правило, эту возможность  имеет  смысл задействовать всегда. Это не замедля­ ет работу Maya, но предоставляет  дополнительную информацию,  полезную при  поиске ошибок. Теперь,  когда  Maya  отображает номера строк  в   панели  ввода, найти  строку  с ошибкой довольно просто.

Рис. 16.9. Сообщение об ошибке в строке ответа

Наиболее распространенной ошибкой новичков  является забытая точка  с  запятой  в конце строки. Выявить такую ошибку довольно трудно, особенно если не догадываешься

o  ее  причине. Получив  в   сценарии  бессмысленное   сообщение  об  ошибке,   попробуйте проверить строки  выше того  места,  где  произошла ошибка, и  убедитесь,  что  все они  за­ канчиваются точкой  с запятой.

И  наконец,  поскольку   MEL  является интерпретирующим  языком  сценариев, его  код можно  выполнять строка  за строкой  (или  блоками  строк),  а не весь сценарий  сразу.  Это тоже весьма удобный  способ  выявления строки, которая  содержит ошибку.  Это демонст­ рирует приведенное ниже упражнение.

1.    Введите следующий код,  но пока не выполняйте его:

print "hello,  worldJ"; print hello,  world;

2.    Выделите первую строку  кода  и  выполните ее  (нажав  клавишу <Enter >  на  числовой клавиатуре или  комбинацию клавиш <Ctrl+Enter > —  на  обычной).  Текст  hello , world !  должен отобразиться в панели истории.

3.    Выделите и выполните вторую строку кода.  Результат должен напоминать следующий:

// Error : print hello , world ; //

/ / Error : Line 1.12 :    Synta x erro r / /

Первая  строка  выполнена  правильно, но  во  второй  есть  ошибка,  поскольку  команде print необходимо строковое значение, заключенное  в  кавычки. В сценарии  из  двух строк выявить ошибку  довольно  просто,  однако   в   более  длинном  сценарии  такой   подход  по­ строчного  выполнения кода может оказаться  весьма эффективным при поиске ошибок.

Источник: Кундерт-Гиббс, Джон,  Ларкинс, Майк,  Деракшани, Дариус, Кунзендорф, Эрик,  и др., Освоение Maya  8.5.:  Пер.  с англ.  – М.:  ООО  «И.Д.  Вильямс», 2007.  – 928  с.:  ил.

По теме:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий