Очистка чертежа от анонимных блоков
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

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

Очистка чертежа от анонимных блоков

Ответ
Поиск в этой теме
Непрочитано 23.11.2015, 14:44 #1
Очистка чертежа от анонимных блоков
Малюк
 
проектировщик
 
Житомир
Регистрация: 03.05.2007
Сообщений: 652

Есть большой файл, после применения стандартных процедур меньше он не стал. В нём были и есть динамические блоки. По всей видимости при их использовании (вставке через буфер может что то ещё) создаются анонимные блоки, которые и являются главной причиной большого размера файла.
Как можно удалить все неиспользуемые анонимные блоки в чертеже?
Как сделать программно я нашёл вот здесь http://adn-cis.org/ochistka-chertezh...ix-blokov.html
Как сделать не программно?
Какой код будет для LISP?
Всем за ранее большое спасибо.
Просмотров: 7183
 
Непрочитано 23.11.2015, 14:50
#2
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


LISP. Подготовка подосновы
U2B и UX- твои
спасибо VVA
Хмурый вне форума  
 
Непрочитано 23.11.2015, 14:52
#3
Кулик Алексей aka kpblc
Moderator

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


Непрограммно - скорее всего, никак (если анонимный блок имеет хотя бы одно вхождение). Вообще говоря, анонимный блок создается при каждой модификации хотя бы одного дин.параметра в дин.блоке. Советую выполнять сохранение в DWG не ниже чем 2004, да и открывать в AutoCAD 2006 или позднее.
А так - что надо? Удалить вхождения блоков? Расколошматить их на составляющие?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 23.11.2015, 14:53
#4
crosandr

Инженер-строитель
 
Регистрация: 09.07.2010
Санкт-Петербург
Сообщений: 1,994


поиск не помог?
crosandr вне форума  
 
Непрочитано 23.11.2015, 15:01
#5
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,176


Цитата:
Сообщение от Малюк Посмотреть сообщение
Как можно удалить все неиспользуемые анонимные блоки в чертеже?
По-моему, _Purge отлично справляется с любыми неиспользуемыми блоками, будь они хоть трижды анонимные. А если анонимный блок имеет хотя бы одно вхождение (отдельно или в составе другого блока) - значит, уже используемый. Наверное, это было кому-нибудь нужно зачем его удалять?
Для последующих догадок неплохо бы посмотреть DWG...
kp+ вне форума  
 
Непрочитано 23.11.2015, 15:17
#6
ProPeller

Пастух
 
Регистрация: 16.07.2012
Питер
Сообщений: 318


Цитата:
Сообщение от kp+ Посмотреть сообщение
_Purge отлично справляется с любыми неиспользуемыми блоками, будь они хоть трижды анонимные.
Чепуха!
Еще до того как появился фикс DGN записей, приходилось искать пути решения очистки чертежа от грязи с которым пурга не справлялась. Так вот после самых разных путей решения проблемы, я выяснил, что всякое г%внище хранится как раз таки в этих самых анонимных блоках. И кстати говоря, то что вы здесь называете анонимными блоками, вовсе не является анонимными. После изменения динамических параметров, блок становится Уникальным, а не анонимным. Имена анонимных блоков начинаются с "*A...", а измененные динамические с "*U...".
Тогда я решал проблему просто вычищая эти блоки при помощи вот этого кода.
Код:
[Выделить все]
 (vl-load-com)
(vlax-for v1 (vla-get-blocks
	      (vla-get-activedocument (vlax-get-acad-object))
	     )
 (VL-CATCH-ALL-APPLY 'vla-delete (list v1))
)
__________________
Автоматизация должна быть автоматической.

Последний раз редактировалось ProPeller, 23.11.2015 в 16:07.
ProPeller вне форума  
 
Непрочитано 23.11.2015, 15:49
#7
Кулик Алексей aka kpblc
Moderator

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


ProPeller, вообще-то имена анонимных блоков всегда начинались с *U. *A - это анонимные группы. *D - описания объектов размеров. *T - описания объектов таблиц. Описания неиспользуемых анонимных блоков (*U) гарантированно удаляются из чертежа при его закрытии. Насчет остальных не уверен.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 23.11.2015, 16:03
#8
ProPeller

Пастух
 
Регистрация: 16.07.2012
Питер
Сообщений: 318


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
ProPeller, вообще-то имена анонимных блоков всегда начинались с *U. *A - это анонимные группы. *D - описания объектов размеров. *T - описания объектов таблиц. Описания неиспользуемых анонимных блоков (*U) гарантированно удаляются из чертежа при его закрытии. Насчет остальных не уверен.
Сейчас копнул хелп и понял, что был неправ насчёт имен и их соответствий, но сути дела это не меняет. Описание объектов с именем *A... хранятся в семействе блоков и пурга их не способна удалить, а вот через лисп без проблем.
__________________
Автоматизация должна быть автоматической.
ProPeller вне форума  
 
Непрочитано 23.11.2015, 16:13
#9
Кулик Алексей aka kpblc
Moderator

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


Не совсем так: именно для описываемой ситуации это типы линий из Microstation: http://adn-cis.org/forum/index.php?t...12880#msg12880 (ну и плюс ссылки из темы)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 23.11.2015, 16:16
#10
ProPeller

Пастух
 
Регистрация: 16.07.2012
Питер
Сообщений: 318


Offtop:
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Не совсем так: именно для описываемой ситуации это типы линий из Microstation: http://adn-cis.org/forum/index.php?t...12880#msg12880 (ну и плюс ссылки из темы)
Это я уже все изучил. Я же сначала и написал, что пользовался этим методом до появления фикса DGN записей
__________________
Автоматизация должна быть автоматической.
ProPeller вне форума  
 
Автор темы   Непрочитано 24.11.2015, 09:44
#11
Малюк

проектировщик
 
Регистрация: 03.05.2007
Житомир
Сообщений: 652


Цитата:
Сообщение от ProPeller Посмотреть сообщение
Код:
[Выделить все]
1
(vl-load-com)
2
(vlax-for v1 (vla-get-blocks
3
**********(vla-get-activedocument (vlax-get-acad-object))
4
*********)
5
*(VL-CATCH-ALL-APPLY 'vla-delete (list v1))
6
)
__________________
Это конечно замечательно но как его запустить. Тоесть делаем txt, копируем код, ставим расширения файла lsp, а на запуск какая команда?
Малюк вне форума  
 
Непрочитано 24.11.2015, 09:53
#12
Кулик Алексей aka kpblc
Moderator

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


http://dwg.ru/pub/9
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 24.11.2015, 09:55
#13
ProPeller

Пастух
 
Регистрация: 16.07.2012
Питер
Сообщений: 318


Цитата:
Сообщение от Малюк Посмотреть сообщение
Это конечно замечательно но как его запустить. Тоесть делаем txt, копируем код, ставим расширения файла lsp, а на запуск какая команда?
Файлик прикрепил. Загрузить через команду ЗАГПРИЛ. Запускать через команду PPT_UnUsedBlkDel
Вложения
Тип файла: lsp PPT_UnUsedBlkDel.LSP (195 байт, 228 просмотров)
__________________
Автоматизация должна быть автоматической.
ProPeller вне форума  
 
Непрочитано 24.11.2015, 10:58
#14
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


Малюк, порядковые номера строк удали перед вставкой в комстроку, и будет счастье
Хмурый вне форума  
 
Непрочитано 08.12.2015, 14:31
#15
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,917
<phrase 1=


Дабы не плодить тем.

А можно решить обратную задачу?
Есть файл с описанием кучи анонимных блоков типа *U, *D, *A.
В самом чертеже (модели и листах) они удалены и командой _insert их вставить не получается, требуется как-то их проявить (вставить).
Вопрос в том возможно-ли данное действо?
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 08.12.2015, 16:01
#16
Кулик Алексей aka kpblc
Moderator

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


Руками - нет. Программно - достаточно несложно.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Очистка чертежа от анонимных блоков



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Очистка рисунка от "пустых" блоков Makswell Готовые программы 15 26.10.2022 15:24
Несвойственные Автокаду вещи Vova AutoCAD 49 01.02.2012 19:33
VBA: утечка памяти при вставке блоков Mikha Программирование 13 03.04.2009 09:18
Удаление из чертежа описаний блоков olga87 AutoCAD 3 24.08.2007 13:26
Очистка чертежа от неиспольз. зарегистрированных приложений чайник Программирование 2 11.09.2006 15:03