Не так давно решил попробовать в тяжелых сценах использовать контейнеры. Однако у меня возникла ситуация с нехваткой памяти и я решил избавиться от контейнеров. Но вытащить объекты из контейнера с сохранением групп оказалось не просто. Проблема описана здесь ещё в 2014 году и до сих пор сохраняется (тестировал в 2018-ом максе)
Я нашёл способ корректного извлечения, однако его реализация вручную оказалась трудоёмким процессом. В связи с этим я написал скрипт, который проделывает все необходимые операции. А именно, анализирует выделенные объекты на структуру имеющихся внутри контейнера групп и запоминает, потом всё разгруппировывается, извлекается из контейнера и сгруппировывается в том же порядке. Количество вложенных групп не ограничено. Объекты могут принадлежать сразу к нескольким контейнерам. По окончании скрипта будут выделены те контейнеры, из которых производилось извлечение.
Всё.
Предостережения:- Скрипт недостаточно обкатан, могут возникать ошибки. Сохраняйте свою работу перед использованием.- Если выделены ещё группы не входящие в контейнеры, то они будут также перегруппированы.- Вложенные контейнеры не тестировались.
Если тема будет интересна для развития или обнаружите ещё какие-то недоработки - пишите в личные сообщения.
Установка такая: Перетащите макроскрипт в окно макса. Потом Customize -> Customize user interface... -> Вкладка Toolbars -> Category #PankovScripts -> перетащить "Remove selected from multiple Containers with groups" на панель задач.
Когда будут выделены объекты входящие в контейнер, кнопка будет активироваться.
ПС: Кнопка интерфейса каждый раз ищет в выделении принадлежность к контейнерам. Предполагаю, что это может вызвать подтормаживание интерфейса. В таком случае можно воспользоваться скриптом (*.ms) без установки. Просто выделите необходимые объекты и запустите скрипт (*.ms). Тогда ни каких лишних действий производиться не будет.