3DCenter.ru

Здравствуйте, гость ( Вход | Регистрация )

179 страниц V  « < 176 177 178 179 >  
Reply to this topicStart new topic
> А нет-ли такого скрипта?
IOG
сообщение 09/04/2018, 21:57
Сообщение #2656


Уважаемый
Иконка группы

Группа: Участник
Сообщений: 861
Регистрация: 05/12/2004
Из: Минск
Пользователь №: 8 716



Цитата(Jahman @ 09/04/2018, 18:51) *
а разве сейчас не так как в top view ? или речь не про локальную а мировую?

если у объекта Z направлен не вверх, то Top вид будет уже не сверху а сбоку какбы) ...грубо говоря мне надо сделать TM[3] = [0,0,1], но как повернуть, пересчитать при этом TM[1] и TM[2] , чтобы матрица осталась ортоганальной ?
Go to the top of the page
 
+Quote Post
Jahman
сообщение 09/04/2018, 22:12
Сообщение #2657


уже всё сделал
Иконка группы

Группа: Пользователи
Сообщений: 2 296
Регистрация: 01/06/2005
Из: z3л3№гр@d
Пользователь №: 13 838



не оно?
CODE
tm = Matrix3 (selection[1].transform.row1 * [1,1,0]) (selection[1].transform.row2*[1,1,0]) [0,0,1] [0,0,0]
tm = Orthogonalize tm

viewport.SetTM (inverse tm)
max zoomext sel
Go to the top of the page
 
+Quote Post
IOG
сообщение 09/04/2018, 22:27
Сообщение #2658


Уважаемый
Иконка группы

Группа: Участник
Сообщений: 861
Регистрация: 05/12/2004
Из: Минск
Пользователь №: 8 716



Работает!) только вот добавил TM[3] = [0,0,1], иначе иногда получаются перевернутые виды.
Код
TM = Matrix3 (selection[1].transform.row1 * [1,1,0]) (selection[1].transform.row2*[1,1,0]) [0,0,1] [0,0,0]
TM = Orthogonalize TM
TM[3] = [0,0,1]
viewport.SetTM (inverse TM)
max zoomext sel
Go to the top of the page
 
+Quote Post
IOG
сообщение 10/04/2018, 11:32
Сообщение #2659


Уважаемый
Иконка группы

Группа: Участник
Сообщений: 861
Регистрация: 05/12/2004
Из: Минск
Пользователь №: 8 716



Вообщем пока так сделал, Z- вертикально, остальные виды стараются быть ближе к стандартным, чтобы не путаться
Код
         local  TM = selection[1].transform
  local A = ((TM as quat) as eulerangles )
while A.x < -45.0 do A.x +=90.0
while A.x > 45.0 do A.x -=90.0
while A.y < -45.0 do A.y +=90.0
while A.y > 45.0 do A.y -=90.0
while A.z < -45.0 do A.z +=90.0
while A.z > 45.0 do A.z -=90.0

if abs A.x > abs A.z do swap A.x A.z
if abs A.y > abs A.z do swap A.y A.z
A.x = 0; A.y= 0
TM = A as matrix3


Сообщение отредактировал IOG - 10/04/2018, 11:44
Go to the top of the page
 
+Quote Post
харумскарум
сообщение 11/04/2018, 14:28
Сообщение #2660


щепдро.
Иконка группы

Группа: Пользователи
Сообщений: 1 508
Регистрация: 24/04/2008
Из: минск
Пользователь №: 63 638



имеется слайдер для вращения хдри энвайромента
можно ли через startup скрипт сделать так чтобы его можно было выделять, но нельзя удалить (случайно)

Сообщение отредактировал харумскарум - 11/04/2018, 14:29
Прикрепленные изображения
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  maxstart.rar ( 56,75 килобайт ) Кол-во скачиваний: 8
 
Go to the top of the page
 
+Quote Post
Jahman
сообщение 11/04/2018, 15:57
Сообщение #2661


уже всё сделал
Иконка группы

Группа: Пользователи
Сообщений: 2 296
Регистрация: 01/06/2005
Из: z3л3№гр@d
Пользователь №: 13 838



архив битый
Go to the top of the page
 
+Quote Post
Pomidoroff
сообщение 11/04/2018, 16:06
Сообщение #2662


Рыцарь форума
Иконка группы

Группа: Пользователи
Сообщений: 2 616
Регистрация: 25/04/2009
Из: Taunusstein
Пользователь №: 69 603



Цитата(Jahman @ 11/04/2018, 13:57) *
архив битый

не, нормально открывается и распаковывается
Go to the top of the page
 
+Quote Post
харумскарум
сообщение 11/04/2018, 16:10
Сообщение #2663


щепдро.
Иконка группы

Группа: Пользователи
Сообщений: 1 508
Регистрация: 24/04/2008
Из: минск
Пользователь №: 63 638



изменил положение слайдера - задвинул вверх
запаковал в зип
Прикрепленные файлы
Прикрепленный файл  maxstart.zip ( 412,03 килобайт ) Кол-во скачиваний: 4
 
Go to the top of the page
 
+Quote Post
Jahman
сообщение 11/04/2018, 16:40
Сообщение #2664


уже всё сделал
Иконка группы

Группа: Пользователи
Сообщений: 2 296
Регистрация: 01/06/2005
Из: z3л3№гр@d
Пользователь №: 13 838



выделяешь слайдер, запускаешь
CODE
fn createUndeletableSlider sliderNode = (
    
    deleteAllChangeHandlers id:#undeletableSlider
    when sliderNode deleted id:#undeletableSlider val do (

        newSlider = instance val name:val.Name
        createUndeletableSlider newSlider

    )
    
)
createUndeletableSlider selection[1]


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

Сообщение отредактировал Jahman - 11/04/2018, 16:42
Go to the top of the page
 
+Quote Post
харумскарум
сообщение 11/04/2018, 17:35
Сообщение #2665


щепдро.
Иконка группы

Группа: Пользователи
Сообщений: 1 508
Регистрация: 24/04/2008
Из: минск
Пользователь №: 63 638



к сожалению после перезапуска макса приходится запускать скрипт вручную
автозапуск из startup тоже не помогает (строку select $sliderManipulator001 добавил)
а сделать его не только неудаляемым но и нескрываемым возможно?
Go to the top of the page
 
+Quote Post
Jahman
сообщение 11/04/2018, 18:51
Сообщение #2666


уже всё сделал
Иконка группы

Группа: Пользователи
Сообщений: 2 296
Регистрация: 01/06/2005
Из: z3л3№гр@d
Пользователь №: 13 838



Вот жеж гемор. Указываем имя, запускаем, сохраняем сцену.


CODE
(

    local targetNode = getNodeByName "sliderManipulator001"
        
    global createUndeletableSlider
    fn createUndeletableSlider sliderNode = if isValidNode sliderNode do (
        
        
        deleteAllChangeHandlers id:#undeletableSlider
        when sliderNode deleted id:#undeletableSlider val do (

            newSlider = instance val name:val.Name
            ::createUndeletableSlider newSlider

        )
        
    )
    
    
    local tmpAttr = attributes tmpAttr (
        
        parameters main (
            
            targetName type:#string default:""
            
        )
        
        on postLoad do (

            local _node = getNodeByName targetName
            
            if isValidNode _node do (
                            
                global createUndeletableSlider
                fn createUndeletableSlider sliderNode = if isValidNode sliderNode do (
                    
                    
                    deleteAllChangeHandlers id:#undeletableSlider
                    when sliderNode deleted id:#undeletableSlider val do (

                        newSlider = instance val name:val.Name
                        ::createUndeletableSlider newSlider

                    )
                    
                )
                
                ::createUndeletableSlider _node
                
            )                
            
        )
        
    )
    
    if isValidNode targetNode do (
        
        createUndeletableSlider targetNode
        
        if custAttributes.Count targetNode == 0 do (
            
            custAttributes.add targetNode tmpAttr baseobject:true            
            targetNode.targetName = targetNode.Name
            
        )
    )
    
    ok
)


Go to the top of the page
 
+Quote Post
Jahman
сообщение 12/04/2018, 00:37
Сообщение #2667


уже всё сделал
Иконка группы

Группа: Пользователи
Сообщений: 2 296
Регистрация: 01/06/2005
Из: z3л3№гр@d
Пользователь №: 13 838



Полупрозрачный дотнет контрол на прозрачной форме. Жаль, что завайрить его нельзя напрямую без вспомогательной ноды

Прикрепленные изображения
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
харумскарум
сообщение 12/04/2018, 10:50
Сообщение #2668


щепдро.
Иконка группы

Группа: Пользователи
Сообщений: 1 508
Регистрация: 24/04/2008
Из: минск
Пользователь №: 63 638



ух здорово! какой нибудь крохотный объект в скрытом слое вполне даже ок.
а сохранение той или иной позиции на слайдере через scene states возможно?

Go to the top of the page
 
+Quote Post
Jahman
сообщение 12/04/2018, 11:37
Сообщение #2669


уже всё сделал
Иконка группы

Группа: Пользователи
Сообщений: 2 296
Регистрация: 01/06/2005
Из: z3л3№гр@d
Пользователь №: 13 838



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

Сообщение отредактировал Jahman - 12/04/2018, 11:38
Go to the top of the page
 
+Quote Post
YevSA
сообщение 01/05/2018, 15:31
Сообщение #2670


Продвинутый ученик
Иконка группы

Группа: Пользователи
Сообщений: 58
Регистрация: 19/01/2012
Пользователь №: 85 177



Всем привет! Подскажите с одной проблемкой:
есть макрос, внутри которого случаются несколько действий (детач, экструд, что-нибудь еще (возможно, выполнение другого макроса)) и при желании отменить результат этого макроса приходится на каждое такое действие жать ctrlZ, что утомляет. Есть ли возможность что-то изменить в макросе чтобы одним решительным нажатием ctrlZ'а вернуться к состоянию до макроса?
пс: undo on в начале не помогает
заранее спасибо!
Go to the top of the page
 
+Quote Post
Bots
сообщение Системное сообщение






179 страниц V  « < 176 177 178 179 >
Reply to this topicStart new topic

1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 25/05/2018 - 02:20