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

Приостановить выполнение скрипта. Сделать

Тема в разделе "MAXScript", создана пользователем ARTIS, 15 ноя 2013.

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

    ARTIS Активный участник

    С нами с:
    08.02.2006
    Сообщения:
    82
    Симпатии:
    0
    Баллы:
    5
    Имеется скрипт, делающий пакетный экспорт. В этот скрипт я добавил ещё кусок кода, который перед экспортом ещё производит определённые изменения. Всё хорошо, всё работает. Но мне нужно добавить некоторую интерактивность.
    Среди прочего есть вот такая строка:
    Код:
    meshop.extrudeFaces $ #{1..$.numfaces} 50 -1.0
    Мне нужно сделать следующее: каждый раз вручную вводить величину экструда (в данном случае 50), после этого сделать тестовый рендер, далее поправить введённую величину, если нужно (цикл правка-рендер может продолжаться сколько угодно). И, если отрендеренная картинка меня устроит - продолжить выполнение скрипта дальше.
    Возможно ли относительно несложно реализовать такую задачу? Или это из разряда невозможного?
     
  2. igorznag

    igorznag Знаток

    С нами с:
    23.04.2010
    Сообщения:
    1.256
    Симпатии:
    173
    Баллы:
    65
    Используем Keyboard Entry. Пример:
    В новой сцене создаем 1 чайник Teapot.
    Конвертируем чайник в Editable Mesh. Выделяем чайник.
    Открываем окно Render Scene (нажимаем F10).
    Открываем окно MAXScript Listener (нажимаем F11).
    Запускаем скрипт.
    В окне MAXScript Listener вводим значение 50. Нажимаем Enter.
    Нажимаем кнопку Render.
    Если результат не устраивает, тогда нажимаем кнопку Undo (Ctrl+Z).
    Активируем окно MAXScript Listener.
    Вводим другое значение. Нажимаем Enter.
    Нажимаем кнопку Render.
    Если результат устраивает, тогда активируем окно MAXScript Listener и нажимаем клавишу Escape.
    Код:
    print "start code"
    -------------
    test=1; while test==1 do
    (
    v = getKBValue prompt:"Enter extrude value:"
    if(classOf v == integer or classOf v == float)then
    (
    meshop.extrudeFaces $ #{1..$.numfaces} v -1.0
    update $; redrawviews()
    )--if(classOf v == integer or classOf v == float)then
    if v==#escape do test=0
    )--while test==1 do
    --------------
    print "end code"
     
  3. ARTIS

    ARTIS Активный участник

    С нами с:
    08.02.2006
    Сообщения:
    82
    Симпатии:
    0
    Баллы:
    5
    Большое спасибо!
     
Модераторы: Savin Denis

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