Render.ru

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

WhiteShadow

Пользователь сайта
Рейтинг
2
#1
Есть Editable Poly, к нему применены несколько модификаторов, например Symmetry и TurboSmooth. В этом Editable Poly выделено несколько вершин, мне нужно переместить каждую из них (т.е. типо в цикле) в зависимости от ее положения (координат), что собственно не получается. Подскажите, пожалуйста, код который бы, минуя примененные модификаторы, обращялся к каждой выделенной вершине в Editable Poly и перемещал ее.
 

igorznag

Мастер
Рейтинг
103
#2
Чтобы обращаться к базовому (основному) объекту, нужно использовать свойство объекта baseObject.
 

WhiteShadow

Пользователь сайта
Рейтинг
2
#3
Да, уже пробовал baseObject, было дело, с ним перестают работать стандартные обращения к Editable Poly, а как подругому обратиться не знаю.
 

igorznag

Мастер
Рейтинг
103
#4
Какие стандартные обращения к Editable Poly ты используешь?
Предоставь простой пример, где стандартные обращения к Editable Poly не работают для объекта "baseObject" (Editable Poly).
 

WhiteShadow

Пользователь сайта
Рейтинг
2
#5
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
 

igorznag

Мастер
Рейтинг
103
#6
Код:
$.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();
 
Сверху