Render.ru

Вместо User - Perspective view

Никита Гоголев

Активный участник
Рейтинг
5
#1
При ПОВОРОТЕ окна в планарном виде (LEFT, RIGHT, TOP и др.) вид по умолчанию переключается на USER(!). Возможно ли сделать так чтобы вид переключался на PERSPECTIVE?

Это было бы удобнее, т.к. вид user малоэффективен и я им редко пользуюсь.
 

GoodMan

Мастер
Рейтинг
260
#2
Нельзя..

И сделано все логично - один аксонометрический вид превращается в другой..
Перспектива к таковым не относится - хочешь преобразовать User-> в Perspective нажми кнопку "P" - при условии что у тебя больше нет Перспективных видов или ты работаешь не в максимизированном вьюпорте - он сменит текущий вид на Перспективу.. В противном случае - он переключит на уже существующий Перспективный вид..
 

Никита Гоголев

Активный участник
Рейтинг
5
#3
Я понимаю что логично. Но! Но. - Неудобно! Вы часто пользуетесь User view? Недумаю. А такое изменение здорово упростило бы интерфейс.

Возможно через MaxScript можно наколдовать?
 

GoodMan

Мастер
Рейтинг
260
#4
Да я постоянно использую User view - особенно удобно когда работаешь с большими моделями - нет перспективных искажений и все элементы легко читаемы.

Может и можно такое сделать и через скрипт - надо подумать..
Хотя с появлением в МАХ-е viewcube я особого смысла в этом не вижу.. Ставишь Перспективу - а кубиком выбираешь нужные виды..
 

Никита Гоголев

Активный участник
Рейтинг
5
#5
2009 макс дезигн будет только через 3 дня, пока работаю в 2008. О волшебном кубе пока только слышал.

Эх здорово, если есть возможность изменить интерфейс через Script! Осталось только найти народного шамана владеющего магией MAXScript! :)
 

GoodMan

Мастер
Рейтинг
260
#6
Я попробую написать скрипт - но ничего не могу гарантировать..

Алгоритм будет скорее всего такой - при любом переключении вьюпорта на User - он будет превращатся в Perspective - хотя виг его знает какие там грабли ещё :)
Возможно удастся добавить условие того - чтобы это происходило только при поворте из ортографической проекции типа Front, Top, Left..
 

GoodMan

Мастер
Рейтинг
260
#7
Вот простейщий скрипт который использует колбэк на переключение вьюпорта с User на Perspective - всегда, когда до User был какой-нибудь аксонометрический вьюпорт типа Top,Bottom,Left и т.д. (всего их 6-ть)

Т.е. как и в описанном тобою в начале случае - он будет переключать с этих видов сразу на Perspective - что по мне так крайне не удобно :)

global view_old
fn trackingView =
(
if viewport.getType() == #view_iso_user and
(
view_old == #view_front or
view_old == #view_top or
view_old == #view_left or
view_old == #view_right or
view_old == #view_bottom or
view_old == #view_back
)
do viewport.setType #view_persp_user

view_old = viewport.getType()
);

callbacks.removeScripts id:#viewChanged

callbacks.addscript #viewportChange "trackingView()" id:#viewChanged
- Скопировать то, что в рамке в любой пустой текстовый файл - и сохранить с любым именем и расширением .ms
- Чтобы скрипт загружался и работал автоматически при загрузке МАХ-а положить .ms файл в дир. 3dsMax\Scripts\Startup
- Чтобы он перестал работать после перезагрузки - просто удалить оттуда..
- Чтобы выключить его во время сессии МАХ-а прописать и запустить в строке MAXScript-а строчку callbacks.removeScripts id:#viewChanged


P.S. Может тормозить МАХ..
P.P.S. Иногда может не переключать на User, нужно пробовать 2-а раза.. )
 

Никита Гоголев

Активный участник
Рейтинг
5
#8
Большое спасибо. Протестировал - работает! Один минус - что "привязка" вида к обьекту теряется при переключении. Поэтому неплохо было бы добавить в код zoom extents selected.

Вчера поставил 2009design - это то что нужно. Куб - работают превосходно. Плюс ортографический вид вместо user. Поэтому использовать скрипт в max2009 нет смысла.

P.S. Макс не тормозил..
 
Сверху