Группы или блоки? - Страница 5
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Группы или блоки?

Группы или блоки?

Ответ
Поиск в этой теме
Непрочитано 19.02.2004, 15:14
Группы или блоки?
Mikhail
 
инженер-технолог (ГИП)
 
Санкт-Петербург
Регистрация: 11.09.2003
Сообщений: 1,144

Поделитесь мнением чем пользуетесь. Группами (group) или блоки в автокаде. Они довольно похожи. Но блоки можно вроде как вставлять из чертежа в чертеж к тому же с аттрибутами. А для чего используются группы?
Просмотров: 40655
 
Непрочитано 05.10.2016, 19:46
#81
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Смотрим посты от 23 до 30 и вокруг них. CTRL=H, pickstyle Есть ограничения...
Может поможет?
Vova вне форума  
 
Непрочитано 06.10.2016, 09:54
#82
Pilot

Проектировщик свиноводство
 
Регистрация: 21.08.2003
Сообщений: 2,291


Конечно читал и пробовал.
Ключевой момент:
Цитата:
Сообщение от Alaspher Посмотреть сообщение
Ни "разбивки", ни "дружного сбора" не происходит - меняется режим выбора.
Т.е. сами-то группы остаются - а я хотел бы иметь возможность одним махом от них избавиться вовсе.

Вчера к ночи придумал:
Т.к. группы после "посещения" буфера обмена прекращают свое существование, то:
Выбираем все объекты (Ctrl+A)
Копируем их в буфер с указанием базовой точки (Ctrl+Shift+C)
Удаляем все объекты.
Вставляем из буфера (Ctrl+V) в ту же точку.

Групп после этого нет.
У этого метода есть не очень приятный нюанс: размеры, проставленные в листе скорее всего потеряют связь с новыми вставленными из буфера в модель объектами, но это уже мелочи.

Vova, как ведущий специалист по макросам, может напишешь грамотный макрос по приведенному алгоритму? Хоть какое-то, но решение проблемы.
Pilot вне форума  
 
Непрочитано 06.10.2016, 12:31
#83
frostmourn


 
Регистрация: 23.04.2015
Сообщений: 163


Вроде бы всё гораздо проще...
Код:
[Выделить все]
 
(defun C:DelGroups ()
	(vlax-for item
		(vla-item (vla-get-dictionaries (vla-get-activedocument (vlax-get-acad-object))) "ACAD_GROUP")
		(if
			(vl-catch-all-error-p
				(vl-catch-all-apply 'vla-delete (list item))
			)
			(princ (strcat "\nНе удалось удалить группу " (vla-get-name item)))
		)
	)
)
frostmourn вне форума  
 
Непрочитано 06.10.2016, 12:56
#84
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,408


Можно еще проще
(vlax-for item (vla-get-groups doc ...

P.S. Забыл про метки начала/конца отмены
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 06.10.2016, 14:30
#85
Pilot

Проектировщик свиноводство
 
Регистрация: 21.08.2003
Сообщений: 2,291


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Можно еще проще
(vlax-for item (vla-get-groups doc ...
Алексей, а можно полностью?
Просто к тому времени как появились эти функции типа (vla-... я перестал серьезно заниматься лиспом и с трудом их понимаю)
Pilot вне форума  
 
Непрочитано 06.10.2016, 15:06
#86
Кулик Алексей aka kpblc
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-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 06.10.2016, 16:32
#87
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Цитата:
Сообщение от Pilot Посмотреть сообщение
Т.к. группы после "посещения" буфера обмена прекращают свое существование, то:
......
Vova, как ведущий специалист по макросам, может напишешь грамотный макрос по приведенному алгоритму? Хоть какое-то, но решение проблемы.
Конечно, приведенный ниже вариант с макросом неконкурентен с предложенным выше решением на лиспе, но будет работать, попутно предостав дополнительную опцию.
Вместо буфера обмена можно использовать wblock. Две кнопки, одна по созданию w-блока а другая по его вставке описаны в моей книге Autodad Язык макрокоманд и создание кнопок в главе 14 "Альтернативные ячейки памяти". Ну а дополнительная опция это одновременная глубокая очистка чертежа, которая осуществляется при создании wblock-а
Альтернативная ячейка памяти это дополнительная к буферу обмена. То есть вы можете сохранить нужные обьекты в двух (как минимум) местах: один набор в буфере, второй в месте хранения w-блока (его место заложено в кнопке)
Возможно, потребуется некая доработка чтобы в w-блоке восстановить весь набор переменных, который был в начальном файле
Vova вне форума  
 
Непрочитано 07.10.2016, 11:28
#88
Pilot

Проектировщик свиноводство
 
Регистрация: 21.08.2003
Сообщений: 2,291


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Без VLIDE, насухую:
(vlax-for item (vla-get-groups (vla-get-activedocument (vlax-get-acad-object)))
(vl-catch-all-apply (function (lambda() (vla-delete item)))))
Алексей спасибо!
Попробовал - работает.
Оформил в виде команды с предварительным напоминанием типа что все группы будут развалены.
Pilot вне форума  
 
Непрочитано 07.10.2016, 13:56
#89
frostmourn


 
Регистрация: 23.04.2015
Сообщений: 163


Offtop:
Цитата:
Сообщение от Pilot Посмотреть сообщение
Алексей спасибо!
А я, сталбыть, ни при чём, да? Ладно-ладно!

Да ничего, я ж несерьёзно
А если есть такая уверенность, что ошибок никогда не будет, можете убрать и catch-all-apply, ещё короче станет.

Последний раз редактировалось frostmourn, 31.10.2016 в 12:01. Причина: добавил ответ сюда
frostmourn вне форума  
 
Непрочитано 07.10.2016, 14:20
#90
Pilot

Проектировщик свиноводство
 
Регистрация: 21.08.2003
Сообщений: 2,291


Цитата:
Сообщение от frostmourn Посмотреть сообщение
А я, сталбыть, не при чём, да? Ладно-ладно!
Прошу прощения, тоже конечно благодарю.
Плюсом - сообщение если группа не найдена.
Но я проверил код Алексея при отсутствии групп вовсе - сообщений об ошибках не поступает. Поэтому посчитал информацию о ненайденных группах избыточной, уж коли есть стремление в любом случае от них избавиться.
И его код компактней.
Pilot вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Группы или блоки?