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

Быстрое копирование координат вертексов

Тема в разделе "Общие вопросы", создана пользователем Bender Bending, 12 июл 2010.

Модераторы: Артер
  1. Bender Bending

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

    С нами с:
    17.02.2010
    Сообщения:
    55
    Симпатии:
    0
    Баллы:
    5
    Накопилось несколько вопросов
    1 Вот тут подумал, бывают такие случаи когда надо скопировать координаты одной точки и присвоить другой.
    Нашел скрипт CopyPasteAdv который обеспечивает эти функции, но он к сожалению для 6 версии а я работаю в 2010 максе. Кто знает можно ли этот скрипт как то адаптировать под новую версию макса. Или же есть более простые способы решения проблемы.

    2 Можно ли убрать Application Button и вообще Caption Bar полностью.

    3 Можно ли сделать вертикальный тулбар так что бы кнопки располагались в 2 ряда а не в один

    Заранее спасибо
     
  2. GoodMan

    GoodMan Мастер

    С нами с:
    20.04.2005
    Сообщения:
    2.792
    Симпатии:
    9
    Баллы:
    254
    1. Скрипты как правило не зависят от версии МАХ-а. Т.е. у них полная прямая совместимость.. Ну за исключением случаев использования сторонних или очень специфических функций - которые могут меняться от версии к версии..
    К тому же я не припомню сильных различий в базовых классах и соотв. им функциях 6-го и 12-го МАХ-ов..
     
  3. Bender Bending

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

    С нами с:
    17.02.2010
    Сообщения:
    55
    Симпатии:
    0
    Баллы:
    5
    GoodMan
    Да понятно но в данном случае не пашет совсем, выкидывает ошибку при попытке скопировать координаты.
    Может кто знающий подправит? Вот ссылка:
    http://www.3dtrue.com/max/20.html
     
  4. kolts

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

    С нами с:
    05.02.2008
    Сообщения:
    448
    Симпатии:
    0
    Баллы:
    17
    Полезный скрипт кстати часто приходится копировать координаты особенно при риггинге
     
  5. GoodMan

    GoodMan Мастер

    С нами с:
    20.04.2005
    Сообщения:
    2.792
    Симпатии:
    9
    Баллы:
    254
    Какую ошибку пишет?
    У меня все работает нормально в МАХ-2010.. За исключением того что скрипт немного не доделан. В частности странно что не используется функция <update> для перерисовки меша после изменения координат вертексов.. Хотя кто знает - может её ещё не было когда писался скрипт..

    В остальном скрипт полностью рабочий. Конечно при условии что ты знаешь чем отличается mesh от poly.. Т.к. с поли-объектами он не работает (<polyOPS.> оператора тогда ещё наверное небыло, или автор поленился сделать скрипт универсальным для объектов разных классов <mesh> и <poly>)
     
  6. Bender Bending

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

    С нами с:
    17.02.2010
    Сообщения:
    55
    Симпатии:
    0
    Баллы:
    5
    Вот блин облом, я чего-то на эту немаловажную деталь внимания и не обратил. Действительно с мешами работает а с поликами нет. Только учитывая что работать приходится с полигонами, этот скрипт бесполезен
     
  7. GoodMan

    GoodMan Мастер

    С нами с:
    20.04.2005
    Сообщения:
    2.792
    Симпатии:
    9
    Баллы:
    254
    ну да..

    Можно в принципе переделать и под poly - заменив все соотв. операторы..
    А можно и конвертировать туда-сюда - геометрия должна сохраняться..
     
  8. kolts

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

    С нами с:
    05.02.2008
    Сообщения:
    448
    Симпатии:
    0
    Баллы:
    17
    Для костей частенько приходится применять тоже, я смотрел этот скрипт не думал что там все так сложно. Мне казалось, что должно быть полегче.
     
  9. GoodMan

    GoodMan Мастер

    С нами с:
    20.04.2005
    Сообщения:
    2.792
    Симпатии:
    9
    Баллы:
    254
    Как раз сложного там ничего и нет.. :)

    Просто он написан для mesh, а уже позже стали появляться полигоны в МАХ-е. Теперь мешами никто не пользуется.. Хотя они бывает и быстрее чем поли обсчитываются в определенных модификаторах (например в физике).. По крайней мере мне так кажется..

    К тому-же поли в МАХ-е тоже не совсем настоящие, т.е. они не такие как у программ специально предназначенных для моделинга только полигонами, и программ которые собственно зародили концепцию полигонов типа: Mirai и Nendo
     
  10. Bender Bending

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

    С нами с:
    17.02.2010
    Сообщения:
    55
    Симпатии:
    0
    Баллы:
    5
    Ну конвертация туда сюда это абсолютно не серьезно. А вот по поводу заменить операторы это уже более реально.
     
  11. kolts

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

    С нами с:
    05.02.2008
    Сообщения:
    448
    Симпатии:
    0
    Баллы:
    17
    Да я напутал я думал он просто копирует координаты объекта что на самом деле очень легко
     
  12. Bender Bending

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

    С нами с:
    17.02.2010
    Сообщения:
    55
    Симпатии:
    0
    Баллы:
    5
    Усе нашел похожий скрипт только для полимешей кому интересно вот ссылка
    http://www.rubengarza.com/maxscript-S02-VertTool.htm
     
  13. GoodMan

    GoodMan Мастер

    С нами с:
    20.04.2005
    Сообщения:
    2.792
    Симпатии:
    9
    Баллы:
    254
    Такую тулзу можно написать за 5 мин.
    На "экспортный вариант" с красивыми менюшками UI уйдет не больше часа..

    Учите скрипты - это не так сложно как выглядит на первый взгляд..
     
  14. kolts

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

    С нами с:
    05.02.2008
    Сообщения:
    448
    Симпатии:
    0
    Баллы:
    17
    Увидел там chamfer и пришло на ум что можно сделать вместо caddy старые менюшки :)
     
  15. Shanaya

    Shanaya Пользователь сайта

    С нами с:
    27.09.2008
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    2
    Побуду некропостером)
    Скрипт выше юзала, он прекрасен, но интересно, есть ли где скрипт, который копирует координаты не одного вертекса, а нескольких выделенных? И может скопировать эти координаты вертексам другого объекта, при условии, что индексы вертексов у этих объектов совпадают? Например, такую штуку удобно было бы применять в морфинге, но почему-то такого найти я не смогла, видимо, реализовать это не так просто, как мне думалось :).
    В максе я ещё новичок, а программированием в последний раз занималась ещё в универе, и благополучно всё забыла. Попытаюсь сама реализовать нечто подобное, но если такое уже есть, то зачем страдать?) Может, кто сталкивался?
     
  16. igorznag

    igorznag Знаток

    С нами с:
    23.04.2010
    Сообщения:
    1.256
    Симпатии:
    173
    Баллы:
    65
    Пример для базового объекта Editable Poly:
    Код:
    try destroydialog test catch(); rollout test "Test"
    (
        button btn_copy "Copy" pos:[5,5] width:50
        button btn_paste "Paste" pos:[60,5] width:50
        local verts_coord=#()
        on btn_copy pressed do
        (
            if selection.count==1 then
            (
                obj=selection[1]
                co=modpanel.getCurrentObject()
                if classof co==Editable_Poly then
                (
                    vs=(polyop.getVertSelection co) as array; verts_coord=#()
                    for v in vs where not (polyop.isVertDead co v) do
                    (
                        v_coord=polyop.getVert co v node:obj
                        append verts_coord #(v,v_coord)
                    )--for v in vs where not (polyop.isVertDead co v) do
                )--if classof co==Editable_Poly then
            )--if selection.count ==1 then  
        )--    on btn_copy pressed do
      
        on btn_paste pressed do
        (
            undo on
            (  
                if selection.count==1 then
                (
                    obj=selection[1]
                    co=modpanel.getCurrentObject()
                    if classof co==Editable_Poly then
                    (
                        n=polyop.getNumVerts co
                        for v=1 to n where not (polyop.isVertDead co v) do
                        (
                            for vc in verts_coord where v==vc[1] do
                            (
                                polyop.setVert co v vc[2]  node:obj
                            )--for vc in verts_coord where v==vc[1] do
                        )--for v in vs where not (polyop.isVertDead co v) do
                    )--if classof co==Editable_Poly then
                )--if selection.count ==1 then  
            )--undo on
        )--    on btn_paste pressed do
      
    );createdialog test 120 30
     
    Shanaya нравится это.
  17. Shanaya

    Shanaya Пользователь сайта

    С нами с:
    27.09.2008
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    2
    Огромнейшее спасибо!:):):)
     
Модераторы: Артер

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