В рамках улучшения понимания maxscripthelp, разбираемся с одним из методов. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

В рамках улучшения понимания maxscripthelp, разбираемся с одним из методов.



Модификатор EditPoly

Из справки MaxScript:

Geometry Data Methods

<index>GetEdgeVertex <index>edgeID <index>end node:<node>

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

Returns the indexed vertex shared by the specified edge. -- Возвращает индекс вершины, используемой ребром.

 

Разбираемся:

Работающий код:

p = Plane() -- создадим примитив плоскость

addModifier p (Edit_Poly ()) -- применим модификатор Edit_Poly

obj = $.modifiers[#Edit_Poly] -- засунем модификатор в переменную obj

obj.GetEdgeVertex 1 1 -- Вернётся 6. Возвращается индекс первой из двух вершин указанного ребра

obj.GetEdgeVertex 1 2 -- Вернётся 1. Возвращается индекс второй из двух вершин указанного ребра

obj.GetEdgeVertex 39 1 -- Вернётся 25. Возвращается индекс первой из двух вершин указанного ребра

obj.GetEdgeVertex 39 2 -- Вернётся 24. Возвращается индекс второй из двух вершин указанного ребра

 

Как видим, конструкцию из хэлпа,

<index>GetEdgeVertex <index>edgeID <index>end node:<node> не возможно использовать прямо в том виде, как она представлена в качестве маски для подстановки переменных, поэтому разложим всё по порядку.

<index> -- возвращаемое значение (в данном случае индекс вершины)

GetEdgeVertex -- функция, которой передаются параметры

<index>edgeID -- индекс ребра

<index>end -- одна из двух вершин указанного ребра (в данном случае она есть или 1 или 2)

node:<node> -- нода, или сам объект, в котором применяется эта функция

 

А вот получается как из этого можно сконструировать маску для сборки кода:

<node>. GetEdgeVertex <index>edgeID <index>end

<> - такие скобки в хэлпе означают, что это обязательный параметр, необходимый для работы функции.

[] - квадратные скобки (если такие есть) - это опциональный (необязательный, дополнительный) параметр

 

Аналогичный метод есть и в Editable Poly

Раздел Get Edge

<index><EditablePoly>.GetEdgeVertex <index>edgeID <index>end

Returns the vertex index used by the specified edge. -- Возвращает индекс вершины, используемой ребром.

Since an edge has two vertices, the end argument is needed to define which of the two vertices of the edge to get.

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

 

EXAMPLE:

p = convertToPoly(Plane()) --create a Plane, convert to Epoly

p.GetEdgeVertex 1 1 --returns vertex 6

p.GetEdgeVertex 1 2 --returns vertex 1

p.GetEdgeVertex 4 1 --returns vertex 1

p.GetEdgeVertex 4 2 --returns vertex 2

 

_______________________________________________________________

А теперь рассмотрим ещё один грамм гранита науки касательно справки 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 -- создание файла

_______________________________________________________________



Поделиться:


Последнее изменение этой страницы: 2021-04-13; просмотров: 69; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.129.210.17 (0.007 с.)