где Bilding объект к которому применяются данные операции
Я рассчитываю что он выделит фейс 1(так он и делает) потом не выходя из режима подобъектов наложит модификатор UVWMap, но это не происходит.
Он сначала выходит из режима подобъектов а потом накладывает UVWMap(т.е. уже для всего объекта ).
Спасибо большое!
Помогло!
У меня тут еще вопрос возник
В UVWMap есть кнопочка Fit. Так вот, как ее вызвать из скрипта ?
Я уже весь референс перерыл но ничего ненашел 🙁
Подскажи, мил человек, как написать такую функцию. Я так понимаю надо указать конкретные размеры? А если они не известны? И как гизмо выравнять по нормали полигона, на который накладывается марринг?
2 Denis:
Извини за беспокойство, Денис, но вопрос остаётся открытым - как команду "fit" реализовать скриптом? Можешь привести пример кода здесь? Заранее благодарю тебя за ответ.
fn addBBoxVertex p = (
if bbpMax == undefined then( bbpMin = copy p ; bbpMax = copy p)
if p.x > bbpMax.x then bbpMax.x = p.x
if p.y > bbpMax.y then bbpMax.y = p.y
if p.z > bbpMax.z then bbpMax.z = p.z
if p.x < bbpMin.x then bbpMin.x = p.x
if p.y < bbpMin.y then bbpMin.y = p.y
if p.z < bbpMin.z then bbpMin.z = p.z
)
Доступ к резюме доступен только по пакетному доступу HR менеджерам зарегистрированных компаний. Узнать о вариантах корпоративных пакетов можно по ссылке.
Гость
Я делаю
PolyOp.SetFaceSelection Bilding #(1)
MapText=UVWMap()
addModifier Bilding MapText
где Bilding объект к которому применяются данные операции
Я рассчитываю что он выделит фейс 1(так он и делает) потом не выходя из режима подобъектов наложит модификатор UVWMap, но это не происходит.
Он сначала выходит из режима подобъектов а потом накладывает UVWMap(т.е. уже для всего объекта ).
Что мне надо исправить в скрипте?
Заранее большое спасибо
Savin Denis
PolyOp.SetFaceSelection $ #(2)
modPanel.addModToSelection (UVWMap())
Гость
Помогло!
У меня тут еще вопрос возник
В UVWMap есть кнопочка Fit. Так вот, как ее вызвать из скрипта ?
Я уже весь референс перерыл но ничего ненашел 🙁
Savin Denis
Гость
Подскажи, мил человек, как написать такую функцию. Я так понимаю надо указать конкретные размеры? А если они не известны? И как гизмо выравнять по нормали полигона, на который накладывается марринг?
Гость
Извини за беспокойство, Денис, но вопрос остаётся открытым - как команду "fit" реализовать скриптом? Можешь привести пример кода здесь? Заранее благодарю тебя за ответ.
Savin Denis
Гость
Savin Denis
Гость
Гость
Ты МЕГА-ЧЕЛ!!! 🙂))
Savin Denis
-----------------------------------------
bbpMax = undefined
bbpMin = undefined
fn addBBoxVertex p = (
if bbpMax == undefined then( bbpMin = copy p ; bbpMax = copy p)
if p.x > bbpMax.x then bbpMax.x = p.x
if p.y > bbpMax.y then bbpMax.y = p.y
if p.z > bbpMax.z then bbpMax.z = p.z
if p.x < bbpMin.x then bbpMin.x = p.x
if p.y < bbpMin.y then bbpMin.y = p.y
if p.z < bbpMin.z then bbpMin.z = p.z
)
fn alignUVGizmo theObj theMap theFace =
(
faceNormal = in coordsys theObj (polyOp.getFaceNormal theObj theFace)
worldUpVector = [0,0,1]
rightVector = normalize (cross worldUpVector faceNormal)
upVector = normalize ( cross rightVector faceNormal )
theMatrix = matrix3 rightVector upVector faceNormal [0,0,0]
theMap.gizmo.transform = theMatrix
theMatrix
)
fn FitUVWMapToFace obj theMap theFace =
(
objTM=obj.objecttransform
modTM=getModContextTM obj m
cfp = ( polyOp.getSafeFaceCenter obj theFace)
fTM = theMap.gizmo.transform
facePointList = polyOp.getFaceVerts obj.baseobject theFace
bbpMax = undefined
bbpMin = undefined
for f in facePointList do
(
local fp = polyOp.getVert obj f
addBBoxVertex (fp * (inverse objTM) *(inverse fTM) )
)
avp = (bbpMax - bbpMin)
bbpMiddle = bbpMin + avp / 2
theMap.gizmo.pos = bbpMiddle * fTM * modTM
theMap.length = avp.y
theMap.width = avp.x
theMap.height = avp.z
)
-- alignUVGizmo $ $.uvw_mapping 3
-- FitUVWMapToFace $ $.uvw_mapping 3
-----------------------------------------