PushPrompt. Messagebox. QueryBox

getViewSize() -- размер вьюпорта в пикселях

PushPrompt "temp" -- вывод текста вот сюда

mesagebox "Privet" -- простой месэчбокс

if (queryBox "3>2?") then "Pravilno" else "Nepravilno" --месэчбокс с вопросом

_______________________________________________________________

“%”в MaxScript

format “%” <переменная>

Так работает функция format, которой передаются параметры в виде знаков процента как тех мест, куда будет записываться та информация, которая указывается в положениях, соответствующих этим знакам %, указанная после кавычек. Ну а \n это уж переход к новой строке.

Вот пример скрипта, который печатает порядковый номер вершины и через пробел её позицию x,y,z без скобок типа Point3

"Selected Vertices"
vArr = $.selectedVerts as bitArray
"OUTPUT"
for i in vArr do (format "% \t %,%,% \n " (i-1) ((polyop.getVert $ i).x) ((polyop.getVert $ i).y) ((polyop.getVert $ i).z))

 

Результат в листнере

178 0.393365,-25.1171,11.7888

209 -5.15904,-27.417,6.00988

210 0.735364,-26.8364,6.00988

_______________________________________________________________

 

-- для объектов i в геометрии где нет спрятанных и целевых объектов собрать объекты o в массив.

for i in geometry where not i.isHidden and classof i!= TargetObject collect i

_______________________________________________________________

viewport.getTM() -- матрица трансформации камеры вьюпорта.

_______________________________________________________________




Рассадка одного объекта на вершины другого объекта

delete $*_Clone_* -- Для повторного выполнения скрипта предварительно удаляются предыдущие объекты
delete $GeoSphere* -- Для повторного выполнения скрипта предварительно удаляются предыдущие объекты
delete $box* -- Для повторного выполнения скрипта предварительно удаляются предыдущие объекты
TargetObj = Geosphere radius: 200 -- Целевой объект - геосфера радиусом 200
SourceObj = box() -- Объект источник - бокс
MeshObj = snapshotAsMesh TargetObj -- snapshotAsMesh - это снимок параметров геометрии объекта в глобальной системе координат, универсально работающий и для mesh и для Poly
for v = 1 to MeshObj.numVerts by 1 do -- для каждой вершины v начиная с v = 1 до последней вершины (количество вершин.numVerts) объекта MeshObj, по одной - by 1 (так же можно например и через одну установить by 2) делать
(
NewObj = instance SourceObj -- Создать новый объект инстансовый объекту источника
NewObj.name = uniquename (SourceObj.name + "_Clone_") -- задаётся уникальное имя
NewObj.transform = matrixFromNormal (getNormal MeshObj v) -- Задаётся матрица трансформации объекта равной матрице нормали (взять нормаль вершины объекта MeshObj)
NewObj.pos = getVert MeshObj v -- установить позиции вершин объекта MeshObj
NewObj.parent = TargetObj -- Сделать для объекта NewObj парентом целевой объект
)

_______________________________________________________________















Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: