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

Вывод последнего действия ( Last Operation )

Тема в разделе "MAXScript", создана пользователем Alexander Ledenev, 13 апр 2013.

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

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

    С нами с:
    12.06.2009
    Сообщения:
    14
    Симпатии:
    4
    Баллы:
    7
    существует ли команда, выводящая последнее действие.
    в майе, есть undoInfo
    - в сочитании с -undoName выводит самое последнее действие.
    - в сочетании с -printQueue выводит список последних действий.

    есть ли подобное в МАКСскрипте?
     
  2. Alexander Ledenev

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

    С нами с:
    12.06.2009
    Сообщения:
    14
    Симпатии:
    4
    Баллы:
    7
    ну, блин блинский.
    как сделать так, чтобы при создании бокса вылетало сообщение "бокс", а при создании сферы, вылетало сообщение "сфера"?
     
  3. Листик

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

    С нами с:
    02.03.2012
    Сообщения:
    285
    Симпатии:
    0
    Баллы:
    12
    Имеется ввиду Macro Recorder?
     
  4. Black Sphinx

    Black Sphinx Знаток

    С нами с:
    05.09.2003
    Сообщения:
    234
    Симпатии:
    1
    Баллы:
    29
    Код:
    fn logCreateNode = (
    	anode = callbacks.notificationParam()
    	print ((classof anode) as string)
    )
    
    
    callbacks.removeScripts #sceneNodeAdded id:#bs_sceneNodeAdded 
    callbacks.addScript #sceneNodeAdded "logCreateNode()" id:#bs_sceneNodeAdded 
    Копай топик General Event Callback Mechanism в хелпе по MaxScript.

    Если не секрет, зачем такие извращения?
     
  5. Alexander Ledenev

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

    С нами с:
    12.06.2009
    Сообщения:
    14
    Симпатии:
    4
    Баллы:
    7
    большое спасибо, посмотрю.

    это долгая история. просто хочу оптимизировать работу - иметь одно окно ввода информации (достало лазить по десяткам окон). что-то вроде скетчапа. например при создании бокса ввести 50;50;50 (а не вставлять по числу в три окна) при создании плоскости вводить 50;50, при создании сферы вводить 50. И всё это вводить в одно окно.

    таков мой план:
    - пользователь создает объект (сфера)
    - вводит информацию "50" с фокусировкой на окно ( setFocus )
    - дальше, определяется последнее действие и если это сфера,
    - то распределить введенную инфу на свойства сферы


    так же это будет работать со смещением и вращением объектов:
    - пользователь смещает объект по оси x
    - вводит информацию 50
    - определяется последнее действие и если происходит релятивное смещение по оси x,
    - то вычислить разницу между введенным числом "50" и результатом смещения
    - сместить на величину этой разницы, в итоге произойдет то самое смещение на 50.

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

    почему не использую скетчап?
    мне нравится легкость скетчапа и при том, в плане параметрических задач, он на голову выше макса (что странно, т.к. макс пользуется успехом у интерьерщиков), но скетчап не подходит для объектов сложной формы. К тому же, делать работу поочередно в двух программах - гемор ещё тот.

    Поэтому, я решил реализовать мегаплюсы скетчапа в какой нибудь программе посложней и полагаясь на слухи структуры "коструктора", мой выбор пал на maya. Взялся за MEL и после двух недель изучения - удалось частично решить задачу со смещением и экструдированием. НО в плане экспорта майя безобразна, кое как экспортирует в dwg, который не опознается скетчапом, а экспорт в векторный ai - отдельный танец с бубном при помощи рендера. А мне важна связь со внешним миром.

    Перекачевал обратно на макс и пытаюсь сделать программу своей мечты. хотя и тут есть свои недостатки, а именно синтаксис максСкрипта, но главное - возможность реализации. как-то так
     
  6. Black Sphinx

    Black Sphinx Знаток

    С нами с:
    05.09.2003
    Сообщения:
    234
    Симпатии:
    1
    Баллы:
    29
    Александр, у меня ощущение, основанное на опыте работы с MaxScript, что твоя задумка в контексте Макса нереализуема.

    Предлагаемый тобой алгоритм работы скрипта завязан на получении информации о последнем действии пользователя. Похоже, что к этой информации доступа нет. (Вообще в Максе History - вещь в себе. Например иногда она почему-то очищается. И не по принципу FIFO, а целиком.)

    Теоретически что-то подобное твоему описанию сделать можно, но только путём переписывания на МаксСкрипте доброй половины пользовательского интерфейса. Т.е. использовать Макс как ядро, но пользоваться самописным UI. Думаю, что практически это нереально сделать: во-первых, из-за огромного объёма работы по созданию такой системы скриптов, а во-вторых, из-за того, что в один прекрасный момент обнаружится, что к какой-то функции ядра нет интерфейса из МаксСкрипта (я уже натыкался на такие вещи).

    Если посмотреть с другой стороны, то не проще ли переучиться на родной UI Макса, если ты решил использовать именно этот пакет? Ведь тяжело только первые тысячу лет, а потом привыкаешь.
     
Модераторы: Savin Denis

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