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

Как изменить Editable Poly, если к нему применены модификаторы?

Тема в разделе "MAXScript", создана пользователем WhiteShadow, 18 июл 2011.

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

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

    С нами с:
    06.12.2007
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    2
    Есть Editable Poly, к нему применены несколько модификаторов, например Symmetry и TurboSmooth. В этом Editable Poly выделено несколько вершин, мне нужно переместить каждую из них (т.е. типо в цикле) в зависимости от ее положения (координат), что собственно не получается. Подскажите, пожалуйста, код который бы, минуя примененные модификаторы, обращялся к каждой выделенной вершине в Editable Poly и перемещал ее.
     
  2. igorznag

    igorznag Знаток

    С нами с:
    23.04.2010
    Сообщения:
    1.256
    Симпатии:
    173
    Баллы:
    65
    Чтобы обращаться к базовому (основному) объекту, нужно использовать свойство объекта baseObject.
     
  3. WhiteShadow

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

    С нами с:
    06.12.2007
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    2
    Да, уже пробовал baseObject, было дело, с ним перестают работать стандартные обращения к Editable Poly, а как подругому обратиться не знаю.
     
  4. igorznag

    igorznag Знаток

    С нами с:
    23.04.2010
    Сообщения:
    1.256
    Симпатии:
    173
    Баллы:
    65
    Какие стандартные обращения к Editable Poly ты используешь?
    Предоставь простой пример, где стандартные обращения к Editable Poly не работают для объекта "baseObject" (Editable Poly).
     
  5. WhiteShadow

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

    С нами с:
    06.12.2007
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    2
    Editable Poly без модификаторов:

    $.selectedverts ==> #verts(5, 6, 8 : $Editable_Poly:Box02 @ [60.487808,-12.791837,0.000000])
    $.selectedverts[1] ==> #verts(5 : $Editable_Poly:Box02 @ [60.487808,-12.791837,0.000000])
    $.selectedverts[1].pos ==> [44.188,-55.7009,69.4472]
    $.selectedverts[1].pos+=[100,0,0] ==> [144.188,-55.7009,69.4472]
    move $.selectedverts[1] [100,0,0] ==> OK

    Editable Poly с модификаторами Symmetry и TurboSmooth, через baseObject:

    $.baseobject.selectedverts ==> -- Unknown property: "selectedverts" in Editable Poly
    $.baseobject.selectedverts[1] ==> -- Unknown property: "selectedverts" in Editable Poly
    $.baseobject.selectedverts[1].pos ==> -- Unknown property: "selectedverts" in Editable Poly
    $.baseobject.selectedverts[1].pos+=[100,0,0] ==> -- Unknown property: "selectedverts" in Editable Poly
    move $.baseobject.selectedverts[1] [100,0,0] ==> -- Unknown property: "selectedverts" in Editable Poly

    Editable Poly с модификаторами Symmetry и TurboSmooth:

    $.selectedverts ==> #verts(5, 6, 8 : $Editable_Poly:Box01 @ [-40.611008,-12.791837,0.000000])
    $.selectedverts[1] ==> #verts(5 : $Editable_Poly:Box01 @ [-40.611008,-12.791837,0.000000])
    $.selectedverts[1].pos ==> [-56.9108,-55.7009,69.4472]
    $.selectedverts[1].pos+=[100,0,0] ==> -- Runtime error: Cannot change EPoly with modifiers present: Editable Poly
    move $.selectedverts[1] [100,0,0] ==> -- Runtime error: Cannot change EPoly with modifiers present: Editable Poly
     
  6. igorznag

    igorznag Знаток

    С нами с:
    23.04.2010
    Сообщения:
    1.256
    Симпатии:
    173
    Баллы:
    65
    Код:
    $.selectedverts 
    $.selectedverts[1].pos 
    $.selectedverts[1].pos+=[100,0,0] 
    Используй обращения специально для Editable Poly, которые объесняются в главе Editable_Poly Methods.
    Пример:
    Код:
    vert_sel=(polyOp.getVertSelection $.baseobject) as array
    old_pos=polyOp.getVert $.baseobject vert_sel[1] node:$
    polyOp.setVert $.baseobject vert_sel[1] (old_pos+[100,0,0]) node:$
    
    redrawViews();
     
  7. WhiteShadow

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

    С нами с:
    06.12.2007
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    2
    igorznag
    Спасибо, переделал код, теперь и с модификаторами работает.
     
Модераторы: Savin Denis

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