А теперь рассмотрим ещё один грамм гранита науки касательно справки MaxScript и использования модификатора Edit_Poly

 

Из официальной справки MaxScript:

<bitArray>GetSelection <enum>meshSelLevel node:<node>

meshSelLevel enums: {#Object|#Vertex|#Edge|#Face|#CurrentLevel} -- параметры, один из которых нужно передавать функции GetSelection.

node default value: undefined -- значение ноды по умолчанию

 

Returns the specified selection as bitArray value.

Возвращает битовый массив выделенных объектов (подобъектов)

If node: is supplied, returns the selection from

the modifier instance assigned to the specified node.

Если нода (объект): передана, возвращает выделение из подчинённого

модификатора, относящимися к указанным нодам.

 

Пример кода:

CurO = modPanel.getCurrentObject() -- в переменную помещаем объект панели модификаторов

CurO.getSelection #Edge -- получим массив выделенных рёбер

 

Как видим, предложенная в справке конструкция

<bitArray>GetSelection <enum>meshSelLevel node:<node> не может служить как маска для подстановки переменных. Но глядя на пример правильного применения, можно разобраться, как всё же нужно это использовать.

Как то так

Таким же образом можно разбираться и с другими аналогами в хэлпе MaxScript

_______________________________________________________________

Организуем структуру

struct Menu -- в которой перечисляем параметры ЧЕРЕЗ ЗАПЯТУЮ
(
fName = "defscene", -- имя файла
fExt = ".txt", -- расширение файла
savePath = "d:\\", -- путь
 fn GetFullPath = savePath + fName + fExt -- функция, формирования пути
)
-- Используем созданную структуру
global ExporterMenu = Menu() -- присваиваем структуру глобальной переменной
s = ExporterMenu.GetFullPath() -- формирование пути, присвоение его переменной
file_var = createFile s -- создание файла

_______________________________________________________________











Организуем элемент интерфейса.

Выпадающий свиток dropDownList

(
dropDownList ddl1 "" pos:[63,80] width:115 height:21 -- элемент интерфейса dropDownList
button btnAdd "Add" pos:[18,79] width:42 heigh:23 -- элемент интерфейса кнопочка "Add"
 
on btnAdd pressed do (-- если нажата кнопка btnAdd - делать:
arr = () -- объявляем переменную arr с пустым массивом
if selection.count>0 then arr = for i in selection collect i -- если количество выделенных объектов > 0 тогда каждый объект i из выделенных объектов собрать в массив
ddl1.items = for i in arr collect i.name -- имена в спеске dropDownList = для каждого элемента i собрать в массив имена элементов i.name
)
on ddl1 selected arg do select arr[arg] -- если в dropDownList-листе ddl1 выбрать аргумент arg, то делать: выделить из массива с именами arr, элемент массива arg, который есть имя выбираемого объекта и был занесён в список как ddl1.items в предыдущей строке кода

_______________________________________________________________











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



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