Необходимо добавляеть и удалять объекты из именованных наборов (Selection Set).
Добраться до любого SelectionSet-а несложно:
ss = selectionSets["My set"] или ss = selectionSets[4].
В результате получаем объект типа selectionSet.
Из свойств у него только .count, .min и .max
Никаких возможностей для добавления (или удаления) элемента.
Есть только доступ к элементам через ss[<индекс_элемента>].
А как же с изменением состава элементов, входящих в ss? Каким образом это можно сделать? Ведь стандартными средствами интерфейса Max-а это делается.
Увы, простого и понятного решения не нашлось.
Но есть один способ:
selectionSets - это массив (array). Его элементы - коллекции (collections).
В отличии от массивов, для которых сущетствуют способы добавления (append()) и удаления (deleteItem()) элементов, у коллекций есть только доступ к его элементам (через [ ] ). Но вот способ преобразования коллекции в массив есть: <array> = <array> + <collection>.
Поэтому используем конструкцию MyArray = #() + MyCollection.
Теперь уже добавляем (удаляем) элементы из массива. А после заносим его обратно в selectionSets. Только обращаться нужно не по номеру, а по имени именованного набора.
MySelectionSet = selectionSets["MySetName"]
MyArray = #() + MySelectionSet
--
-- операции над массивом MyArray
--
selectionSets["MySetName"] = MyArray
Если же обращение происходит по индексу (i) в selectionSets, то добавляется использование getNamedSelSetName()
MySelectionSet = selectionSets[(getNamedSelSetName i)]
MyArray = #() + MySelectionSet
--
-- операции над массивом MyArray
--
selectionSets[(getNamedSelSetName i)] = MyArray
You can change, add and delete Named Selection Sets by using the standard array methods on the selectionSets array. See SelectionSetArray Values
- может это оно? сорри сейчас проверить нет времени, покопаюсь - скажу, ну и ты скажи
Не совсем то. Named Selection Sets - это элементы массива selectionSets.
Да, с этим selectionSets, как и с любым другим массивом можно выполнять операции добавление и удаления элементов. Но вот элементами этого массива является коллекции (collections), для которых операции добавления и удаления элементов не определены.
Т.е. создавать новые именованные выделения просто:
1. Веделили некоторые объекты на сцене.
2. Ввели имя в combobox-е Named Selection Sets на toolbar-е.
3. Нажали Enter.
И вот уже в выпадающем списке именованных выделений появился новый элемент.
Тоже самое с помощью MaxScript:
selectionSets["MySetName"] = selection
Но вот только редактировать список элементов, входящих в это именованное выделение несколько сложнее. Я пока пользуюсь способом, о котором написал выше.
Доступ к резюме доступен только по пакетному доступу HR менеджерам зарегистрированных компаний. Узнать о вариантах корпоративных пакетов можно по ссылке.
Sasquatch
Добраться до любого SelectionSet-а несложно:
ss = selectionSets["My set"] или ss = selectionSets[4].
В результате получаем объект типа selectionSet.
Из свойств у него только .count, .min и .max
Никаких возможностей для добавления (или удаления) элемента.
Есть только доступ к элементам через ss[<индекс_элемента>].
А как же с изменением состава элементов, входящих в ss? Каким образом это можно сделать? Ведь стандартными средствами интерфейса Max-а это делается.
Sasquatch
Но есть один способ:
selectionSets - это массив (array). Его элементы - коллекции (collections).
В отличии от массивов, для которых сущетствуют способы добавления (append()) и удаления (deleteItem()) элементов, у коллекций есть только доступ к его элементам (через [ ] ). Но вот способ преобразования коллекции в массив есть: <array> = <array> + <collection>.
Поэтому используем конструкцию MyArray = #() + MyCollection.
Теперь уже добавляем (удаляем) элементы из массива. А после заносим его обратно в selectionSets. Только обращаться нужно не по номеру, а по имени именованного набора.
MySelectionSet = selectionSets["MySetName"]
MyArray = #() + MySelectionSet
--
-- операции над массивом MyArray
--
selectionSets["MySetName"] = MyArray
Если же обращение происходит по индексу (i) в selectionSets, то добавляется использование getNamedSelSetName()
MySelectionSet = selectionSets[(getNamedSelSetName i)]
MyArray = #() + MySelectionSet
--
-- операции над массивом MyArray
--
selectionSets[(getNamedSelSetName i)] = MyArray
Вот так.
Dmytro Golub
- может это оно? сорри сейчас проверить нет времени, покопаюсь - скажу, ну и ты скажи
Sasquatch
Не совсем то. Named Selection Sets - это элементы массива selectionSets.
Да, с этим selectionSets, как и с любым другим массивом можно выполнять операции добавление и удаления элементов. Но вот элементами этого массива является коллекции (collections), для которых операции добавления и удаления элементов не определены.
Т.е. создавать новые именованные выделения просто:
1. Веделили некоторые объекты на сцене.
2. Ввели имя в combobox-е Named Selection Sets на toolbar-е.
3. Нажали Enter.
И вот уже в выпадающем списке именованных выделений появился новый элемент.
Тоже самое с помощью MaxScript:
selectionSets["MySetName"] = selection
Но вот только редактировать список элементов, входящих в это именованное выделение несколько сложнее. Я пока пользуюсь способом, о котором написал выше.