Render.ru

Преобразование типов переменных в MEL

Юрий.

Активный участник
Рейтинг
5
#1
Добрый день!
Как предотвратить попытку преобразования типа string в float? Дело в том, что при импорте из файла строк и дальнейшей их разбивки на подстроки Maya натыкается на значения "1HB" и "2HB" и сразу же пытается их перевести в float. Странно, но такого не происходит на значенияъ "1H" и "2H". В чём тут может быть дело? Переменная, в которую считываются ст=роки, объявлена как string.
С уважением.
Юра.
 

Юрий.

Активный участник
Рейтинг
5
#3
Прочитал. Решатель, я очень прошу меня простить за назойливость. Но не могли бы Вы поподробнее мне это растолковать, ибо в хэлпе написано нечётко, как это использовать в скриптах.
У меня имеется серия сравнений:
else if ($buffer[2] =="1HB")
{
$parat=($buffer[3]+$buffer[5]+"CB");
$ats=($buffer[3]+$buffer[5]+"1HB");
select -r $parat;
joint -a -p $x $y $z -n $ats;
}
else if ($buffer[2]=="2HB")
{
$parat=($buffer[3]+$buffer[5]+"CB");
$ats=($buffer[3]+$buffer[5]+"2HB");
select -r $parat;
joint -a -p $x $y $z -n $ats;
}

Так вот, получаются удивительные вещи! Строку "1НВ" MEL не пытается преобразовать в float, а на "2НВ" я получаю "// Warning: file: C:/Program Files/Alias/Maya7.0/scripts/brainmade/wholeprot.mel line 171: Converting string "2HB" to a float value of 2. //"?
 

Юрий.

Активный участник
Рейтинг
5
#4
Похоже, что с синтаксисом разобрался. Но вопрос про разницу "1НВ" и ("2НВ" и следующие индексы) остался.
 
Рейтинг
34
#5
Ну, если попробовали принудительное приведение к типу (string), и всё равно глючит, то возможно это просто майкин глюк - у них парсер там слегка кривоватый, иногда такие вещи выдаёт, диву даёшься.

Можно попробовать сделать string $temp = $buffer[2] и потом сравнивать её, можно ещё и 1HB и 2HB тоже присвоить переменным.
А можно(только не смейтесь) - набить пробелов между скобками и знаками равно.

Если глюк пропадёт после вышеперечисленного - значит точно был глюк парсера.
 

Юрий.

Активный участник
Рейтинг
5
#6
ДА! Это работает! Ввёл в самом начале string $k=(string) $buffer[2] - и заработало.

Ещё вопрос (на отвлечённую тему) - интересно, когда напишут дебаггер (ну хотя бы пошаговое выполнение и watch). Слышал, что есть способ отлаживать скрипты на Visual Studio в среде С++. Стоит заморачиваться или овчинка выделки не стоит? Сейчас пишу всё в Crimson Editor-e.

Решатель! В этих ветках Вы мне очень сильно помогли! В ближайшие дни попробую с частицами. Спасибо!
 
Рейтинг
34
#7
MSVS умеет отлаживать только плаги. Для отладки скриптов пока что есть только "print()", к сожалению.
 

Юрий.

Активный участник
Рейтинг
5
#8
Ясно, спасибо. И, если можно, в двух словах, plug-in - это скомпилированный инструмент для Maya, верно? Какие задачи ими можно решать?
 
Рейтинг
34
#9
Да какие угодно. Хоть рендер свой написать. Или генерить все ваши атомы прямо из файла - как я говорил, в один меш.

Если интересно - мы можем посотрудничать на эту тему.
 

Юрий.

Активный участник
Рейтинг
5
#10
Да, Решатель. Большое спасибо за предложение. Работа только начинается, очень большая работа, пока в пределах научного центра в Италии. Буду иметь в виду Ваше предложение о сотрудничестве. Но, я надеюсь, Вы не будете мне отказывать в маленьких консультациях тут и впредь ? :)
 
Сверху