1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

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

Тема в разделе "Maya", создана пользователем Юрий., 31 мар 2006.

Модераторы: Dark™, Skif
  1. Юрий.

    Юрий. Активный участник

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

    Решатель Знаток

    С нами с:
    20.04.2005
    Сообщения:
    1.413
    Симпатии:
    0
    Баллы:
    44
    http://localhost:4449/Maya7.0/en_US/MEL/explicitandimplicittyping.html
     
  3. Юрий.

    Юрий. Активный участник

    С нами с:
    27.03.2006
    Сообщения:
    44
    Симпатии:
    0
    Баллы:
    5
    Прочитал. Решатель, я очень прошу меня простить за назойливость. Но не могли бы Вы поподробнее мне это растолковать, ибо в хэлпе написано нечётко, как это использовать в скриптах.
    У меня имеется серия сравнений:
    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. //"?
     
  4. Юрий.

    Юрий. Активный участник

    С нами с:
    27.03.2006
    Сообщения:
    44
    Симпатии:
    0
    Баллы:
    5
    Похоже, что с синтаксисом разобрался. Но вопрос про разницу "1НВ" и ("2НВ" и следующие индексы) остался.
     
  5. Решатель

    Решатель Знаток

    С нами с:
    20.04.2005
    Сообщения:
    1.413
    Симпатии:
    0
    Баллы:
    44
    Ну, если попробовали принудительное приведение к типу (string), и всё равно глючит, то возможно это просто майкин глюк - у них парсер там слегка кривоватый, иногда такие вещи выдаёт, диву даёшься.

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

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

    Юрий. Активный участник

    С нами с:
    27.03.2006
    Сообщения:
    44
    Симпатии:
    0
    Баллы:
    5
    ДА! Это работает! Ввёл в самом начале string $k=(string) $buffer[2] - и заработало.

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

    Решатель! В этих ветках Вы мне очень сильно помогли! В ближайшие дни попробую с частицами. Спасибо!
     
  7. Решатель

    Решатель Знаток

    С нами с:
    20.04.2005
    Сообщения:
    1.413
    Симпатии:
    0
    Баллы:
    44
    MSVS умеет отлаживать только плаги. Для отладки скриптов пока что есть только "print()", к сожалению.
     
  8. Юрий.

    Юрий. Активный участник

    С нами с:
    27.03.2006
    Сообщения:
    44
    Симпатии:
    0
    Баллы:
    5
    Ясно, спасибо. И, если можно, в двух словах, plug-in - это скомпилированный инструмент для Maya, верно? Какие задачи ими можно решать?
     
  9. Решатель

    Решатель Знаток

    С нами с:
    20.04.2005
    Сообщения:
    1.413
    Симпатии:
    0
    Баллы:
    44
    Да какие угодно. Хоть рендер свой написать. Или генерить все ваши атомы прямо из файла - как я говорил, в один меш.

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

    Юрий. Активный участник

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

    Решатель Знаток

    С нами с:
    20.04.2005
    Сообщения:
    1.413
    Симпатии:
    0
    Баллы:
    44
    Обращайтесь. ;)
     
Модераторы: Dark™, Skif

Поделиться этой страницей