Интересно получается, если делаю вручную Reset XForm, то все прекрасно работает, а если делаю вот так как ты написал (через скрипт), то ничего не происходит -( Я к тому что видимо глюк в скриптах именно -)
То есть у меня есть объекты в сцене, мне нужно взять каждый переместить его пивот в центр, проверить если есть у него свойство mapcoords, то поставить on и сделать Reset XForm. Все это необходимо сделать до строчки exportSelected obj_copy scen progressBar
Почему у тебя в коде Reset Pivot стоит до изменения Pivot`а ?!
Код у меня работал, у тебя какой макс ?
Поэксперементируй c одним объектом:
1) возьми бокс измени вручную pivot
2) нажми Reset Pivot - Pivot вернется обратно
3) повтори 1)
4) запусти код
5) нажми Reset Pivot - Pivot должен остаться на месте
Самое интересное если я делаю перемещние пивота и ресет хформ для основного объекта :
obj.pivot = obj.center
ResetXForm obj;
collapseStack obj;
И потом уже создаю его копию и экспортирую, то работает отлично. А если вот пытаюсь делать только для копии то не работает ?
Значит тут в другом проблема
Есть ряд фукций которые выполняются в другом потоке и возвряшают управление в скрип
раньше чем будет готов результат, такое очень трудно побороть.
лечиться только подбором последовательности действий в коде или заменой на альтернативные фукции.
ENGineподскажите пожалуйста как сделать Reset XForm для всех объектов сцены (for obj in geometry do ) ???
Я в макс скриптах только начал разбираться.
Но мой первый скрипт делал похожую задачу.
1.
max select all
ResetXForm $ -- Reset_XForm для всех объектов сцены.
2.
--Ustanovka pivota i obeka v 000
X = $selection.center.x
Y = $selection.center.y
Z = $selection.min.z
$.pivot = [X,Y,Z]
$.pos = [0,0,0]
Доступ к резюме доступен только по пакетному доступу HR менеджерам зарегистрированных компаний. Узнать о вариантах корпоративных пакетов можно по ссылке.
ENGine
Savin Denis
ENGine
ENGine
for obj in geometry do ( --obj.mapcoords = on scen = svt.text + ("Media\\models\\") + obj.name obj_copy = copy obj obj_copy.name = "Copy_obj" --ResetXForm obj_copy; --collapseStack obj_copy; obj_copy.pos = [0,0,0] obj_copy.rotation = quat 0 0 0 0 obj_copy.scale = point3 1 1 1 --obj_copy.pivot = obj_copy.center exportSelected obj_copy scen progressBar delete obj_copy )То есть у меня есть объекты в сцене, мне нужно взять каждый переместить его пивот в центр, проверить если есть у него свойство mapcoords, то поставить on и сделать Reset XForm. Все это необходимо сделать до строчки exportSelected obj_copy scen progressBarSavin Denis
Код у меня работал, у тебя какой макс ?
Поэксперементируй c одним объектом:
1) возьми бокс измени вручную pivot
2) нажми Reset Pivot - Pivot вернется обратно
3) повтори 1)
4) запусти код
5) нажми Reset Pivot - Pivot должен остаться на месте
ENGine
for obj in geometry do scen = svt.text + ("Media\\models\\") + obj.name obj_copy = copy obj obj_copy.name = "Copy_obj" try ( obj_copy.mapcoords = on ) catch () --obj_copy.pivot = obj_copy.center --ResetXForm obj_copy; --collapseStack obj_copy; obj_copy.pos = [0,0,0] obj_copy.rotation = quat 0 0 0 0 obj_copy.scale = point3 1 1 1 exportSelected obj_copy scen progressBar delete obj_copy )не хочет работать -(ENGine
obj.pivot = obj.center
ResetXForm obj;
collapseStack obj;
И потом уже создаю его копию и экспортирую, то работает отлично. А если вот пытаюсь делать только для копии то не работает ?
Savin Denis
попробуй так
all_obj = $geometry as array for obj in all_obj where IsValidNode obj do ( scen = svt.text + ("Media\\models\\") + obj.name obj_copy = copy obj obj_copy.name = "Copy_obj" if isProperty obj_copy "mapcoords" do obj_copy.mapcoords = on obj_copy.pivot = obj_copy.center ResetXForm obj_copy; collapseStack obj_copy; obj_copy.pos = [0,0,0] exportSelected obj_copy scen progressBar delete obj_copy )ENGine
Savin Denis
Есть ряд фукций которые выполняются в другом потоке и возвряшают управление в скрип
раньше чем будет готов результат, такое очень трудно побороть.
лечиться только подбором последовательности действий в коде или заменой на альтернативные фукции.
Pijoit
Но мой первый скрипт делал похожую задачу.
1.
max select all
ResetXForm $ -- Reset_XForm для всех объектов сцены.
2.
--Ustanovka pivota i obeka v 000
X = $selection.center.x
Y = $selection.center.y
Z = $selection.min.z
$.pivot = [X,Y,Z]
$.pos = [0,0,0]
Все чудненько работает.