Render.ru

применить скрипт после создания объекта

Di_di_0

Активный участник
Рейтинг
5
#1
Здравствуйте! Такая вот задача у меня стоит. При нажатии кнопки чтоб начал создаваться бокс стандартными средствами, а потом к нему чтоб применялся определенный порядок действий. Я пишу вот так:

macros.run "Objects Primitives" "Box"
$.height = 10
потом еще несколько модификаторов


Получается бокс я рисую, но высота его потом не изменяется. А если там еще и модификаторы есть то они уже не работают, и даже бокс рисоваться не начинает, только ошибки пишет в листенере. Что-то там дописать надо видимо. Подскажите - что. А то у самого мозга не хватает.

И еще:

maxOps.autoGrid=on
move $selection (pickPoint () - $selection.center)

Как сделать чтоб объект примагничивался к мышке не центром а пивотом? Знаю что там написано чтоб центром было, но пробовал заменить center на pivot. Не проканало. И чтоб таскался за курсором, и на плосоксти других объектов примагничивался (как с автогридом когда создаешь)?

Блин, и так и сяк пробовал, только ошибки сплошные. Знаю что все просто здесь, но не могу зашарить. И мануал скриптовский ничего не дал мне, или может я смотрел криво как-то.
Спасибо заранее за помощь.
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#2
В первом случае ты пытаешься задать высоту еще не созданному объекту, поскольку ты только запустил его создание.

Сначала создай бокс скриптом а потом его модифицируй его, для этого тебе прийдется написать свои методы.

Лучший вариант для управления будет написать свой геометрический плугин, для примера посмотри главу Scripted Geometry Plug-ins
Обрати там внимание на пример Cuboid, он как раз просто управляет базовым классом extends:Box
Scripted Plug-in Clauses - для детальной иформации
И по управлению мышкой:
Mouse Tool Clauses
Scripted Mouse Tools
 

Di_di_0

Активный участник
Рейтинг
5
#3
Спасибо, что откликнулись! Что-то читаю я мануал и нифига вникнуть не могу, слишком сложно это для моего мозга. Думаю проще сделать 2 кнопки, 1-я создать бокс, а 2-я уже со всеми параметрами и модификаторами.
Слушайте, а может можно просто как то отсрочить выполнение скрипта? Просто паузу, во время которой можно делать какие-то действия, секунды 3 где-то. Щелкаешь выполнить скрипт, потом первая команда скрипта бокс стандартный, и пауза во время которой ты его рисуешь, потом остальные действия. Пробовал sleep 3, но все равно не получается, может есть еще какой аналог этой команды?
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#4
нет, если только каллбеком по событию создание объекта отловить.
 

Di_di_0

Активный участник
Рейтинг
5
#5
Callback - не первый раз слышу. Ну ладно буду разбираться. Спасибо еще раз за советы!
 

ASK'R

Активный участник
Рейтинг
5
#6
mybox=box length:20 width:20 height:20 --создаем обьект как переменную, чтобы не искать результат команды
mybox.height=100 --и через него мы можем крутить параметры (showparameters(чьи) или show(чьи) покажет какие есть)
addModifier mybox (twist angle:30) --добавляем модификатор и указываем параметры его
addModifier mybox (edit_poly()) before:1 --добавляем модификатор и указываем параметры его, указав размещение по индексу модификатора

запихнуть это можно в максроскрипт под кнопку

ловить колбеками и писать плагин скриптовой геометрии - стрельба из пушки по воробьям ИМХО (хотя возможно так проще потом)
 

Di_di_0

Активный участник
Рейтинг
5
#7
Видите ли мне создать объект не проблема, мне проблема создать его в определенном месте. Поэтому я и думал что создам бокс на каком-нибудь другом боксе допустим, с промощью автогрида, а потом к этому боксу применится куча модификаторов из скрипта. Пытался еще использовать pickpoint(). Чтоб сначала mybox=box() а потом mybox.pos (pickpoint()), но он ставится на ноль, а я хочу чтоб сразу на объект приклеивался, как при мердже из другого файла(если включен автогрид, то объект сразу ставится на другие объекты).
Но все равно, спасибо за совет.
 

ASK'R

Активный участник
Рейтинг
5
#8
на каком-нибудь другом боксе
- нипонял
конечная цель-то какая?
интерактивный скрипт расстановки боксов? может проще через рисование тогда? или разнообразными скаттерами?
 

Di_di_0

Активный участник
Рейтинг
5
#9
Про боксы это я виртуально, можно сказать "условно".
Просто в работе у меня бывает часто, что нужно делать допустим кафешку, там допустим сервировку на столах, ну парево это напрягает меня, искать в модельках тарелки рюмки салфетки, и весят они довольно много. Решил немного облегчить себе задачу, рисуешь допустим цилиндрик, щелкаешь кнопку, и вот он уже скопировался раз пять, из них один стал тарелкой, другой блюдцем с чашкой и много разной мелочи, это через edit poly, низкополигональное, т.е. можно скопировать 10000 раз. Тоже с боксами, в ванной комнате, раз кнопочной куча всяких тюбиков, баночек с кремом шампуней.
Но это надо сначала бокс нарисовать а потом щелкнуть, вот я и думал рисование бокса интегрировать в скрипт. Но так чтоб можно было его сразу на столе нарисовать а не так что он создаеться на уровне нуля а потом двигать.

Вот пример скрипта, сначала рисуешь бокс а потом щелкаешь "выполнить скрипт".

$.lengthsegs = 1
$.widthsegs =1
$.heightsegs = 1
$.length = 130
$.width =60
$.height = 10
$.name = "shampun"
pz = $.pos

copy $ isSelected:eek:n
$.name = "2shampun"
move $ [0, 150, 0]
copy $ isSelected:eek:n
$.name = "3shampun"
move $ [0, 150, 0]
copy $ isSelected:eek:n
$.name = "4shampun"
move $ [0, 100, 0]
copy $ isSelected:eek:n
$.name = "5shampun"
move $ [65, -160, 0]
copy $ isSelected:eek:n
$.name = "6shampun"
move $ [0, -160, 0]

Cylinder smooth:eek:n heightsegs:1 capsegs:1 sides:12 height:130 radius:30 isSelected:eek:n
$.pos = pz
move $ [70, -70, 0]
$.name = "stakan"
copy $ isSelected:eek:n
$.name = "krem"
move $ [0, 430, 0]
$.radius = 40
$.height = 30

select $shampun
modPanel.addModToSelection (Edit_Poly ()) ui:eek:n
subobjectLevel = 4
$.modifiers[#Edit_Poly].SetSelection #Face #{}
$.modifiers[#Edit_Poly].Select #Face #{2}
$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 271.313
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 7.29337
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #Bevel
$.modifiers[#Edit_Poly].bevelHeight = 0
$.modifiers[#Edit_Poly].bevelOutline = 0
$.modifiers[#Edit_Poly].bevelHeight = 37.9255
$.modifiers[#Edit_Poly].bevelOutline = -14.5867
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 3.64668
$.modifiers[#Edit_Poly].Commit ()
subobjectLevel = 2
modPanel.setCurrentObject $.modifiers[#Edit_Poly]
$.modifiers[#Edit_Poly].SetSelection #Edge #{}
$.modifiers[#Edit_Poly].Select #Edge #{40}
$.modifiers[#Edit_Poly].Select #Edge #{38}
$.modifiers[#Edit_Poly].ButtonOp #ConnectEdges
$.modifiers[#Edit_Poly].SetOperation #ChamferEdge
$.modifiers[#Edit_Poly].chamferEdgeAmount = 17.22
$.modifiers[#Edit_Poly].Commit ()
subobjectLevel = 4
modPanel.setCurrentObject $.modifiers[#Edit_Poly]
$.modifiers[#Edit_Poly].SetSelection #Face #{}
$.modifiers[#Edit_Poly].Select #Face #{24}
$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 3.64668
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 25.5268
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 4.37602
$.modifiers[#Edit_Poly].Commit ()
subobjectLevel = 0
modPanel.setCurrentObject $.modifiers[#Edit_Poly]
modPanel.addModToSelection (TurboSmooth ()) ui:eek:n
$.modifiers[#TurboSmooth].iterations = 2
actionMan.executeAction 0 "369"

select $2shampun

modPanel.addModToSelection (Edit_Poly ()) ui:eek:n
subobjectLevel = 4
$.modifiers[#Edit_Poly].SetSelection #Face #{}
$.modifiers[#Edit_Poly].Select #Face #{2}
$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 230
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 7.29337
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #Bevel
$.modifiers[#Edit_Poly].bevelHeight = 0
$.modifiers[#Edit_Poly].bevelOutline = 0
$.modifiers[#Edit_Poly].bevelHeight = 20
$.modifiers[#Edit_Poly].bevelOutline = -10
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 3.64668
$.modifiers[#Edit_Poly].Commit ()
subobjectLevel = 2
modPanel.setCurrentObject $.modifiers[#Edit_Poly]
$.modifiers[#Edit_Poly].SetSelection #Edge #{}
$.modifiers[#Edit_Poly].Select #Edge #{40}
$.modifiers[#Edit_Poly].Select #Edge #{38}
$.modifiers[#Edit_Poly].ButtonOp #ConnectEdges
$.modifiers[#Edit_Poly].SetOperation #ChamferEdge
$.modifiers[#Edit_Poly].chamferEdgeAmount = 20
$.modifiers[#Edit_Poly].Commit ()
subobjectLevel = 4
modPanel.setCurrentObject $.modifiers[#Edit_Poly]
$.modifiers[#Edit_Poly].SetSelection #Face #{}
$.modifiers[#Edit_Poly].Select #Face #{24}
$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 3.64668
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 40
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 4.37602
$.modifiers[#Edit_Poly].Commit ()
subobjectLevel = 0
modPanel.setCurrentObject $.modifiers[#Edit_Poly]
modPanel.addModToSelection (TurboSmooth ()) ui:eek:n
$.modifiers[#TurboSmooth].iterations = 2
actionMan.executeAction 0 "369"


select $3shampun
$.length = 110
$.width = 50
$.height =10

modPanel.addModToSelection (Edit_Poly ()) ui:eek:n
subobjectLevel = 4
$.modifiers[#Edit_Poly].SetSelection #Face #{}
$.modifiers[#Edit_Poly].Select #Face #{2}
$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 200
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 7.29337
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #Bevel
$.modifiers[#Edit_Poly].bevelHeight = 0
$.modifiers[#Edit_Poly].bevelOutline = 0
$.modifiers[#Edit_Poly].bevelHeight = 20
$.modifiers[#Edit_Poly].bevelOutline = -10
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 3.64668
$.modifiers[#Edit_Poly].Commit ()


$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 3.64668
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 40
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 4.37602
$.modifiers[#Edit_Poly].Commit ()
subobjectLevel = 0
modPanel.setCurrentObject $.modifiers[#Edit_Poly]
modPanel.addModToSelection (TurboSmooth ()) ui:eek:n
$.modifiers[#TurboSmooth].iterations = 2

select $4shampun
$.length = 60
$.width = 60
$.height =3

modPanel.addModToSelection (Edit_Poly ()) ui:eek:n
subobjectLevel = 4
$.modifiers[#Edit_Poly].SetSelection #Face #{}
$.modifiers[#Edit_Poly].Select #Face #{2}
$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 80
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 3
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #Bevel
$.modifiers[#Edit_Poly].bevelHeight = 0
$.modifiers[#Edit_Poly].bevelOutline = -10
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 3
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #Bevel
$.modifiers[#Edit_Poly].bevelHeight = 0
$.modifiers[#Edit_Poly].bevelOutline = 10
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 3
$.modifiers[#Edit_Poly].Commit ()


$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 40
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 3
$.modifiers[#Edit_Poly].Commit ()
subobjectLevel = 0
modPanel.addModToSelection (TurboSmooth ()) ui:eek:n
$.modifiers[#TurboSmooth].iterations = 2

select $5shampun
$.length = 60
$.width = 30
$.height =3
modPanel.addModToSelection (Edit_Poly ()) ui:eek:n
subobjectLevel = 4
$.modifiers[#Edit_Poly].SetSelection #Face #{}
$.modifiers[#Edit_Poly].Select #Face #{2}
$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 70
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 3
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #Bevel
$.modifiers[#Edit_Poly].bevelHeight = 0
$.modifiers[#Edit_Poly].bevelOutline = -10
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 3
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 30
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 3
$.modifiers[#Edit_Poly].Commit ()
subobjectLevel = 0
modPanel.addModToSelection (TurboSmooth ()) ui:eek:n
$.modifiers[#TurboSmooth].iterations = 2


select $6shampun
$.length = 80
$.width = 80
$.height =80
modPanel.addModToSelection (Edit_Poly ()) ui:eek:n
subobjectLevel = 2
$.modifiers[#Edit_Poly].SetSelection #Edge #{}
$.modifiers[#Edit_Poly].Select #Edge #{1..12}
$.modifiers[#Edit_Poly].SetOperation #ChamferEdge
$.modifiers[#Edit_Poly].chamferEdgeAmount = 3
$.modifiers[#Edit_Poly].Commit ()

subobjectLevel = 4
modPanel.setCurrentObject $.modifiers[#Edit_Poly]
$.modifiers[#Edit_Poly].SetSelection #Face #{}
$.modifiers[#Edit_Poly].Select #Face #{2}
$.modifiers[#Edit_Poly].SetOperation #Bevel
$.modifiers[#Edit_Poly].bevelHeight = 3
$.modifiers[#Edit_Poly].bevelOutline = 3
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 30
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #Bevel
$.modifiers[#Edit_Poly].bevelOutline = -3
$.modifiers[#Edit_Poly].Commit ()
subobjectLevel = 0


select $stakan

modPanel.addModToSelection (Edit_Poly ()) ui:eek:n
subobjectLevel = 4
$.modifiers[#Edit_Poly].SetSelection #Face #{}
$.modifiers[#Edit_Poly].Select #Face #{14}
$.modifiers[#Edit_Poly].SetOperation #Inset
$.modifiers[#Edit_Poly].insetAmount = 5.26987
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = -124.896
$.modifiers[#Edit_Poly].Commit ()
subobjectLevel = 0
modPanel.setCurrentObject $.modifiers[#Edit_Poly]
modPanel.addModToSelection (Taper ()) ui:eek:n
$.modifiers[#Taper].amount = 0.59

select $krem
modPanel.addModToSelection (Edit_Poly ()) ui:eek:n
subobjectLevel = 2
$.modifiers[#Edit_Poly].SetSelection #Edge #{}
$.modifiers[#Edit_Poly].Select #Edge #{1, 5, 8, 11, 14, 17, 20, 23, 26, 29, 32, 35}
$.modifiers[#Edit_Poly].Select #Edge #{3, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34, 36}
$.modifiers[#Edit_Poly].SetOperation #ChamferEdge
$.modifiers[#Edit_Poly].chamferEdgeAmount = 3
$.modifiers[#Edit_Poly].Commit ()
subobjectLevel = 4
modPanel.setCurrentObject $.modifiers[#Edit_Poly]
$.modifiers[#Edit_Poly].SetSelection #Face #{}
$.modifiers[#Edit_Poly].Select #Face #{14}
$.modifiers[#Edit_Poly].SetOperation #Bevel
$.modifiers[#Edit_Poly].bevelHeight = 3
$.modifiers[#Edit_Poly].bevelOutline = 3
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #ExtrudeFace
$.modifiers[#Edit_Poly].extrudeFaceHeight = 20
$.modifiers[#Edit_Poly].Commit ()
$.modifiers[#Edit_Poly].SetOperation #Bevel
$.modifiers[#Edit_Poly].bevelHeight = 3
$.modifiers[#Edit_Poly].bevelOutline = -3
$.modifiers[#Edit_Poly].Commit ()
subobjectLevel = 0
modPanel.setCurrentObject $.modifiers[#Edit_Poly]
 

ASK'R

Активный участник
Рейтинг
5
#10
за сценой кубик, его в object painter (http://www.scriptspot.com/3ds-max/scripts/objectpainter или http://www.scriptspot.com/3ds-max/scripts/advanced-painter или даже из комплекта макса Using the Object Painter Script to Add Trees в туторах) и рисуй, в твоем скрипте(ах?) стоит сделать интерфейс с кнопками Add и make_furniture - Add добавляет в массив их, а вторая переколбашивает обьекты
смотрится весело, как все на глазах меняется, но для скорости стоит вырубить обновление вьюпорта
 

kolts

Активный участник
Рейтинг
16
#11
Вместо бокса лучше использовать объект который создается одним щелчком мышки так будет быстрее.
 

Di_di_0

Активный участник
Рейтинг
5
#12
Согласен, так конечно удобнее, даже пробовал так, но он создается на нуле, а бокс можно с автогридом создать на любой плоскости.
 

Paul_Winex

Знаток
Рейтинг
20
#13
Прошу помощи у скриптописателей! Нужен простой скрипт, который у выделенного объекта (обычно группа) помещает пивот в центр, а потом опускает по оси Z на самую нижнюю точку группы. В общем ситуация должна быть такая как у только что созданного бокса. Так же полезно было бы обнулить потом все координаты и повороты. Мне кажется тут буквально 5 строк, но я не бельмес в этом. Всё что учил, давно забыл. ПОМОГИТЕ ПОЖАЛУЙСТА!
Спасибо.
 

Paul_Winex

Знаток
Рейтинг
20
#14
Еще в панели Ierarchy есть раздел Reset где две кнопки Transform и Scale. Вот их бы тоже скриптовыми командами запускать
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#15
Еще в панели Ierarchy есть раздел Reset где две кнопки Transform и Scale. Вот их бы тоже скриптовыми командами запускать
Не понимаю, так сложно открыть хелп и сделать поиск ?
Глава Align Pivot and Reset Transform Methods
 

Paul_Winex

Знаток
Рейтинг
20
#16
Не сложно если хоть строчку понимаешь в этом. Щас посмотрел, всё равно что и не смотрел. Потому прошу помочь готовым кодом. Просто это нужно поскорей. Сам то разберусь наверное но пройдет слишком много времени.
 

Paul_Winex

Знаток
Рейтинг
20
#17
Код:
$.pivot = [($.max.x+$.min.x)/2, ($.max.y+$.min.y)/2, $.min.z]
Вот собрал код. Он перемещает пивот куда надо. Но есть проблема. Если это группа то он перемещает пивот и у всех объектов внутри группы. Тоже самое происходит с таким кодом:

Код:
$.pos = [0,0,0]
Объекты внутри группы все скопом прыгают в ноль. Это ничего если все пивоты у них сбились вниз первым кодом, но если нет, то каша получается.

Можно ли както действовать только на основную внешнюю группу не воздействуя на внутренние объекты? Какой то фильтр нужен.
 

Paul_Winex

Знаток
Рейтинг
20
#18
И даже пусть все пивоты сбрасываются в кучу, а потом центруются. Группа из-за этого не изменится. Но вот что делать со сбросом поворота? Тут только к группе надо в любом случае. Замечу, тут нужно не ресетить поворот

Код:
ResetTransform $ (пока только так сработало)
а установить по нулям, то есть в исходное положение объект повернуть.
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#19
Вот а говорил не могеш )

Код:
for obj in $selection where isGroupHead obj do obj.pivot = [obj.center.x,obj.center.y,obj.min.z]
хм посмотрел кнопки сброса трансформации у меня в 2010 вобще не работают

так надежней будет
Код:
$.objectOffsetScale = [1,1,1]
$.objectOffsetRot = (quat 0 0 0 1)
$.objectOffsetPos = [0,0,0]
 

Paul_Winex

Знаток
Рейтинг
20
#20
Что-то у меня ничего из этого не сработало. Сброс пивота в центр и вниз я кое как (хоть и с погрешностями) сделал. Перемещение в ноль тоже получилось благодаря вышеуказаным погрешностям. А вот поворачивать все объекты в группе нельзя. Нужно только группу повернуть, обнулив все повороты. Вот с этим пока проблема.
 
Сверху