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

синтаксис MAXScript в макс2012

Тема в разделе "MAXScript", создана пользователем maiden666, 5 авг 2012.

Модераторы: Savin Denis
  1. maiden666

    maiden666 Знаток

    С нами с:
    06.04.2010
    Сообщения:
    3.093
    Симпатии:
    87
    Баллы:
    74
    простой скрипт, который меняет отображения слоя (обьекта), с Wireframe на Shaded и обратно.

    objs_display_n=0;
    for o in selection do (ol=o.INodeLayerProperties.layer;
    if(ol.display==#Wireframe)then objs_display_n=objs_display_n+1;)
    for o in selection do (ol=o.INodeLayerProperties.layer;
    if(selection.count==objs_display_n)then (ol.display=#viewport;)
    else (ol.display=#Wireframe;))
    completeRedraw();

    во всех версиях до 2011 работает, в 2012 - нет. Неужели синтаксис поменяли, или дело в чём-то другом, я-то в этом ни бум-бум, а скрипт нужен
     
  2. Black Sphinx

    Black Sphinx Знаток

    С нами с:
    05.09.2003
    Сообщения:
    234
    Симпатии:
    1
    Баллы:
    29
    Достаточно странный скриптик... впрочем работает. И под 3ds Max Design 2012 тоже. Думаю, что будет работать и в не-Design версии.

    Проверь:
    • Customize / Preferences / Genegal / Layer Defaults / Default to By Layer for New Nodes - должно быть включено
    • Выделить все объекты сцены, из меню по правой кнопке мыши Object Properties, вкладка General, группа Display Properties. Кнопка By Object/By Layer должна быть в состоянии By Layer.
     
  3. maiden666

    maiden666 Знаток

    С нами с:
    06.04.2010
    Сообщения:
    3.093
    Симпатии:
    87
    Баллы:
    74
    проверил - ни фига не работает. ( про кнопку By Layer я знал, Default to By Layer for New Nodes был выключен), скрипт использую так: New Script-> paste, затем копирую текст скрипта на новую кнопку, как делал и в других версиях,и всё без толку, у меня как раз Дизайн, к слову, в чём дело - понять не могу, и похоже это не мой локальный глюк, просил ребят из группы вконтакте проверить - та же история
    Да, забыл ещё сказать - если в Layer Properties-> Display поставить Wireframe (а вьюпорт включен Shaded,) то ничего вообще не меняется, то есть так и остаётся шейдед, не реагируя на свойства слоя
     
  4. Black Sphinx

    Black Sphinx Знаток

    С нами с:
    05.09.2003
    Сообщения:
    234
    Симпатии:
    1
    Баллы:
    29
    Проверил, перед тем как отвечать. РАБОТАЕТ.
    Попробуй сделать:
    Переведи кнопку в состояние By Layer и нажми Ok.
    После чего ещё раз попробуй запустить скрипт.

    Я запускал скрипт "в лоб": через клипборд перекинул текст в MaxScript Editor и запускал по Ctrl-E.

    Судя по этому, у тебя Display Properties существуют индивидуально для каждого объекта (т.е. кнопка в положении By object). Поэтому перенастройка свойств слоя не даёт эффекта.
     
  5. maiden666

    maiden666 Знаток

    С нами с:
    06.04.2010
    Сообщения:
    3.093
    Симпатии:
    87
    Баллы:
    74
    неа, стоит By layer, причём для всех вновь созданных обьектов (по умолчанию все создаются в одном слое). Попробую запустить скрипт твоим способом, но завтра, сейчас некогда эксперементировать, но начинаю склоняться к тому, что дело в глюке,( или в какой-то настройке, о которой я не знаю), цвет обьектов, к примеру, меняется, если в свойствах слоя его поменять, прочие параметры - нет, сейчас вот у меня запущен 2011, там с этим всё нормально, значит 2012 косячит
     
Модераторы: Savin Denis

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