Render.ru

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

Alexander Ledenev

Активный участник
Рейтинг
13
#1
существует ли команда, выводящая последнее действие.
в майе, есть undoInfo
- в сочитании с -undoName выводит самое последнее действие.
- в сочетании с -printQueue выводит список последних действий.

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

Alexander Ledenev

Активный участник
Рейтинг
13
#2
ну, блин блинский.
как сделать так, чтобы при создании бокса вылетало сообщение "бокс", а при создании сферы, вылетало сообщение "сфера"?
 
Рейтинг
31
#4
Код:
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.

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

Alexander Ledenev

Активный участник
Рейтинг
13
#5
большое спасибо, посмотрю.

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

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


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

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

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

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

Перекачевал обратно на макс и пытаюсь сделать программу своей мечты. хотя и тут есть свои недостатки, а именно синтаксис максСкрипта, но главное - возможность реализации. как-то так
 
Рейтинг
31
#6
Александр, у меня ощущение, основанное на опыте работы с MaxScript, что твоя задумка в контексте Макса нереализуема.

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

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

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