|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Проектировщик свиноводство Регистрация: 21.08.2003
Сообщений: 2,291
|
Конечно читал и пробовал.
Ключевой момент: Цитата:
Вчера к ночи придумал: Т.к. группы после "посещения" буфера обмена прекращают свое существование, то: Выбираем все объекты (Ctrl+A) Копируем их в буфер с указанием базовой точки (Ctrl+Shift+C) Удаляем все объекты. Вставляем из буфера (Ctrl+V) в ту же точку. Групп после этого нет. У этого метода есть не очень приятный нюанс: размеры, проставленные в листе скорее всего потеряют связь с новыми вставленными из буфера в модель объектами, но это уже мелочи. Vova, как ведущий специалист по макросам, может напишешь грамотный макрос по приведенному алгоритму? Хоть какое-то, но решение проблемы. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,408
|
Можно еще проще
![]() (vlax-for item (vla-get-groups doc ... P.S. Забыл про метки начала/конца отмены
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Проектировщик свиноводство Регистрация: 21.08.2003
Сообщений: 2,291
|
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,408
|
Без VLIDE, насухую:
(vlax-for item (vla-get-groups (vla-get-activedocument (vlax-get-acad-object))) (vl-catch-all-apply (function (lambda() (vla-delete item)))))
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Цитата:
Вместо буфера обмена можно использовать wblock. Две кнопки, одна по созданию w-блока а другая по его вставке описаны в моей книге Autodad Язык макрокоманд и создание кнопок в главе 14 "Альтернативные ячейки памяти". Ну а дополнительная опция это одновременная глубокая очистка чертежа, которая осуществляется при создании wblock-а Альтернативная ячейка памяти это дополнительная к буферу обмена. То есть вы можете сохранить нужные обьекты в двух (как минимум) местах: один набор в буфере, второй в месте хранения w-блока (его место заложено в кнопке) Возможно, потребуется некая доработка чтобы в w-блоке восстановить весь набор переменных, который был в начальном файле |
|||
![]() |
|
||||
Проектировщик свиноводство Регистрация: 21.08.2003
Сообщений: 2,291
|
Цитата:
Попробовал - работает. Оформил в виде команды с предварительным напоминанием типа что все группы будут развалены. |
|||
![]() |
|
||||
Регистрация: 23.04.2015
Сообщений: 163
|
Offtop: А я, сталбыть, ни при чём, да? Ладно-ладно!
![]() Да ничего, я ж несерьёзно ![]() А если есть такая уверенность, что ошибок никогда не будет, можете убрать и catch-all-apply, ещё короче станет. Последний раз редактировалось frostmourn, 31.10.2016 в 12:01. Причина: добавил ответ сюда |
|||
![]() |
|
||||
Проектировщик свиноводство Регистрация: 21.08.2003
Сообщений: 2,291
|
Прошу прощения, тоже конечно благодарю.
Плюсом - сообщение если группа не найдена. Но я проверил код Алексея при отсутствии групп вовсе - сообщений об ошибках не поступает. Поэтому посчитал информацию о ненайденных группах избыточной, уж коли есть стремление в любом случае от них избавиться. И его код компактней. |
|||
![]() |