Коротко
- Интерфейс SceneExplorerManager доступен в 3ds Max 2008 и более поздних версиях.
- В документации описаны способы создания Scene Explorer и настройки отображаемых столбцов для 3ds Max 2010 и более поздних версий.
- Фильтры пользовательских свойств можно добавлять в Scene Explorer как столбцы; также можно создавать фильтры только для чтения.
- Определения пользовательских фильтров можно сохранять в папке Scripts\Startup, чтобы использовать их в следующих сеансах.
В документации Autodesk по MAXScript описаны интерфейс SceneExplorerManager и способы создания пользовательских столбцов для управления Scene Explorer с помощью скриптов. В этом руководстве на основе официальной документации разбираются создание Explorer для сцен 3ds Max, выбор отображаемых столбцов, вывод свойств объектов в виде столбцов и повторное использование конфигураций. Интерфейс SceneExplorerManager доступен в 3ds Max 2008 и более поздних версиях, однако для некоторых методов требуются более новые версии.
Приведённые ниже примеры кода основаны на методах MAXScript из документации Autodesk. Перед запуском скрипта в рабочей сцене убедитесь, что используемая версия 3ds Max поддерживает соответствующий метод, а названия столбцов совпадают со свойствами сцены.
1. Проверьте поддержку версии и определите задачу
Сначала определите, что именно нужно автоматизировать: настроить существующий набор столбцов, показать свойства объектов или сохранить и повторно загрузить конфигурацию Explorer. Требования к версии у методов различаются. Например, CreateExplorer и SetExplorerVisibleColumns документированы для 3ds Max 2010 и более поздних версий. Метод GetExplorer доступен в 3ds Max 2015 и более поздних версиях.
Наличие интерфейса SceneExplorerManager не означает, что все его методы будут работать в старых версиях. Если документация явно не указывает требования к версии для конкретного метода, не следует предполагать здесь дополнительное ограничение. Поэтому перед использованием командных скриптов в разных установках 3ds Max важно протестировать их на целевых версиях.
2. Создайте Explorer и настройте отображаемые столбцы
Чтобы создать Explorer с настройками по умолчанию, используйте метод
CreateADefaultExplorer. При успешном выполнении метод возвращаетTrue, при неудачном —False.Затем с помощью
SetExplorerVisibleColumnsзадайте отображаемые столбцы в виде массива имён. В примере Autodesk для Explorer с именем “Object Colors” отображаются столбцы имени, типа и цвета.Чтобы создать Explorer с определёнными столбцами, используйте метод
CreateExplorer. Он принимает имя Explorer и массив имён столбцов; не следует считать, что этот метод создаёт Explorer с настройками по умолчанию.
SceneExplorerManager.CreateADefaultExplorer "Object Colors"
SceneExplorerManager.SetExplorerVisibleColumns "Object Colors" #("Name","Type","Color")
SceneExplorerManager.CreateExplorer "Geometry Counts" #("Name","Type","Faces")Значения ниже приведены в примерах документации Autodesk. Это не обязательная настройка для каждой сцены, а иллюстрация использования методов.
| Параметр | Рекомендуемое значение | Эффект |
|---|---|---|
| Имя Explorer | Object Colors | Задаёт имя Explorer, созданного с настройками по умолчанию. |
| Отображаемые столбцы | #("Name","Type","Color") | Показывает столбцы имени, типа и цвета. |
| Столбцы нового Explorer | #("Name","Type","Faces") | Задаёт для нового Explorer столбцы имени, типа и количества полигонов. |
Если имя в массиве столбцов не соответствует существующему фильтру столбца, этот столбец может быть пропущен без сообщения об ошибке. Поэтому следует проверить, что ожидаемые столбцы действительно отображаются. В документации также приводится пример с именем “Bananas”, если оно определено как фильтр; если такого пользовательского фильтра нет, столбец не добавляется.
3. Преобразуйте пользовательские свойства в столбцы Scene Explorer
Чтобы отображать свойство, присутствующее у объектов сцены, можно определить фильтр столбца с помощью addProperty. Этому методу передаются имя свойства, функция для чтения значения и функция для его изменения. В примере Autodesk, если у объекта есть свойство Radius, его значение можно читать и обновлять.
Проверка isProperty важна, если свойство присутствует не у каждого объекта. В примере ниже значение Radius считывается, только если у объекта есть соответствующее свойство:
fn getRad theNode = (
if isProperty theNode "Radius" then theNode.Radius
)
fn setRad theNode theValue = (
if isProperty theNode "Radius" then theNode.Radius = theValue
)
SceneExplorerManager.addProperty "Radius" getRad setRadЕсли нужно только отображать информацию, не изменяя значение через Explorer, можно использовать addReadOnlyProperty. В примере из документации функция classof возвращает класс объекта и создаёт фильтр “Class” только для чтения:
fn getClass theNode = (classof theNode)
SceneExplorerManager.addReadOnlyProperty "Class" getClassПосле создания нового фильтра соответствующий столбец появляется в конце списка Column Chooser. Чтобы добавить его в Scene Explorer, перетащите столбец из списка в Explorer. Само определение пользовательского столбца не добавляет его в набор видимых столбцов, поэтому создание фильтра и его отображение в Explorer нужно выполнить отдельно.
4. Сохраните конфигурацию Explorer и управляйте ею
Конфигурацию Explorer можно сохранить в указанный файл с помощью SaveExplorerConfiguration, а ранее сохранённую конфигурацию загрузить с помощью LoadExplorerConfiguration. В примере ниже путь к файлу следует изменить в соответствии с рабочей средой конкретного компьютера:
SceneExplorerManager.SaveExplorerConfiguration "Geometry Counts" "C:\\SceneExplorerConfig"
SceneExplorerManager.LoadExplorerConfiguration "C:\\SceneExplorerConfig"Методы OpenExplorer и CloseExplorer позволяют открывать и закрывать Explorer. Метод ExplorerExists проверяет, существует ли Explorer с указанным именем, а ExplorerIsOpen — открыт ли он. Если Explorer с указанным именем существует, GetExplorer возвращает его интерфейс; если нет, результатом будет undefined.
Чтобы пользовательские фильтры свойств были доступны и в следующих сеансах 3ds Max, определения фильтров можно сохранить в файле скрипта и поместить его в папку Scripts\Startup. Метод GetExplorerCount возвращает общее количество Explorer, а GetExplorerName — имена для индексов от 1 до этого количества. ClearAllExplorers закрывает все Explorer и очищает список меню Tools>Saved Scene Explorers>. Поэтому этот метод не следует использовать, если нужно выполнить действие только с одним Explorer.
Использование в архитектурных и archviz-процессах
Просмотр сведений об объектах в одном окне может помочь командам настроить вид Explorer под собственный рабочий процесс в архитектурных и визуализационных сценах. Столбцы имени, типа, цвета или количества полигонов, приведённые в документации, — хорошая отправная точка. Если важное свойство присутствует у объектов сцены, его также можно вывести в отдельном столбце. Польза такого подхода зависит от того, насколько используемые данные и фильтры соответствуют требованиям сцены.
Перед передачей скриптов между офисами проверьте используемую версию 3ds Max и свойства объектов, от которых зависят пользовательские фильтры. В сценах с несколькими типами объектов проверка наличия свойства помогает избежать попыток чтения отсутствующего значения. Документация Autodesk не содержит сведений о требованиях к оборудованию, лицензированию или стоимости продукта; не следует предполагать дополнительные условия в этих вопросах.
Частые ошибки
Добавлять в список отображаемых столбцов имя несуществующего фильтра: соответствующий столбец может быть пропущен без сообщения об ошибке.
Ожидать, что пользовательский столбец появится сразу после его определения: его нужно перетащить из Column Chooser в Scene Explorer.
Предполагать, что одно и то же свойство есть у каждого объекта: перед обращением к свойству можно проверить его наличие с помощью
isProperty.Ожидать, что
GetExplorerвсегда вернёт Explorer: если имя не найдено, результатом будетundefined.Использовать
ClearAllExplorers, чтобы закрыть один Explorer: этот метод закрывает все Explorer и очищает список сохранённых в меню.
Источники
Источников: 1Тексты источников не перепечатываются; короткие цитаты отмечены, остальное — наш пересказ и комментарий.
Для архитектурных и визуализационных бюро в Турции пользовательские столбцы Scene Explorer могут стать удобным способом организовать сведения, отслеживаемые в сцене, в соответствии с потребностями команды. В проектах с несколькими типами объектов разделение фильтров для чтения и изменения по назначению помогает снизить риск ошибок.
Перед внедрением важно проверить используемую версию 3ds Max и протестировать скрипты на реальных проектах в контролируемых условиях. В документации нет требований к оборудованию, лицензированию или стоимости, поэтому на практике ключевыми остаются совместимость версий, проверки свойств и область действия команд, затрагивающих все Explorer.
Частые вопросы
Как добавить пользовательский столбец в Scene Explorer в 3ds Max?
С помощью `SceneExplorerManager.addProperty` можно задать функции чтения и записи, а с помощью `addReadOnlyProperty` — только функцию чтения. Новый фильтр появится в конце списка Column Chooser; перетащите столбец в Scene Explorer.
Как настроить столбцы Scene Explorer с помощью MAXScript?
Методу `SetExplorerVisibleColumns` передают имя Explorer и массив имён отображаемых столбцов. В документации Autodesk этот метод указан для 3ds Max 2010 и более поздних версий.
Можно ли использовать пользовательские фильтры Scene Explorer в следующих сеансах?
Согласно документации Autodesk, определения фильтров пользовательских свойств можно сохранить в файле скрипта и поместить его в папку `Scripts\Startup`.



