как узнать количество блоков на чертеже в автокаде
Автоматический подсчет количества блоков в AutoCADe
Благодаря вашим комментариям, замечаниям и предложениям я совершенствую свои навыки проектирования, в том числе и повышаю производительность своей работы. В этой статье я расскажу, как можно быстро посчитать количество блоков в программе AutoCAD.
Когда полезен автоматический подсчет блоков?
Автоматическим подсчетом блоков я начал пользоваться совсем недавно. Я уже вам рассказывал про свои некоторые динамические блоки. Например, выключатели освещения, розетки, светильники.
Если на плане 5-10 розеток, то посчитать их не составит труда. А вот если у вас большой объект, то подсчет выключателей, розеток и светильников может затянуться на десятки минут.
В настоящее время я занимаюсь переработкой всех своих динамических блоков и в скором времени представлю их на блоге. Это будет некий полуфабрикат проекта, который значительно сократит время проектирования. Будут не только блоки, но и некоторые готовые решения, которые можно будет использовать в своем проекте.
Автоматический подсчет блоков идеально подходит для подсчета выключателей и розеток на плане. Для светильников он не очень подходит, т.к. разные светильники могут иметь одинаковое графическое изображения. А делать блок под каждый светильник, считаю, не очень целесообразно.
Пример автоматического подсчета выключателей.
1 Дорабатываем блок.
Заходим в редактор блоков и добавляем скрытый атрибут:
Добавляем скрытый атрибут
Это один из вариантов подсчета. Я изначально считал свои блоки именно через скрытые атрибуты.
Но, можно считать блоки через видимости блока. Это гораздо проще. Не требуется добавлять никаких атрибутов.
Добавленный атрибут (видимость блока) – это идентификационное имя блока, по которому будет выполнен подсчет.
2 Извлечение данных.
Заходим в Сервис->Извлечение данных.
Указываем все нужные настройки и получаем количество блоков.
Экспорт количества блоков можно сделать в виде таблицы в самом файле AutoCADа, но я предпочитаю сохранять в отдельном файле *.xls.
Подробнее смотрите в видео:
А как вы считаете выключатели и розетки на планах?
как узнать сколько блоков в чертеже определенного имени?
Сейчас пользуюсь Quick Select но не очень удобно. возни много
Может кто подскажет как сделать что бы щелкнул на блок и он тебе показал какое их количество имеется в чертеже, или в выделенном фрагментене
или абщий лист блоков с количеством
как сделать что бы щелкнул на блок и он тебе показал какое их количество имеется в чертеже, или в выделенном фрагментене
или абщий лист блоков с количеством
Инженер по системам безопасности
Подсчитывает блоки в выделении с экспортом в txt:
затем в окне свойств посмотреть количество.
P.S. Может быть уважаемые Гуру подправили бы прожку так, чтоб она работала не только во всём чертеже, но и в выделенном фрагменте
LISP, C# (ACAD 200[9,12,13,14])
C Crossing selection. |
CP Cpolygon selection (all objects crossing and inside of the specified polygon).
I Implied selection (objects selected while PICKFIRST is in effect).
L Last visible object added to the database.
P Last selection set created.
W Window selection.
WP WPolygon (all objects within the specified polygon).
X Entire database. If you specify the X selection method and do not provide a filter-list, ssget selects all entities in the database, including entities on layers that are off, frozen, and out of the visible screen.
:E Everything within the cursor’s object selection pickbox.
:N Call ssnamex for additional information on container blocks and transformation matrices for any entities selected during the ssget operation. This additional information is available only for entities selected via graphical selection methods such as Window, Crossing, and point picks.
Unlike the other object selection methods, :N may return multiple entities with the same entity name in the selection set. For example, if the user selects a subentity of a complex entity such as a BlockReference, PolygonMesh, or old style polyline, ssget looks at the subentity that is selected when determining if it has already been selected. However, ssget actually adds the main entity (BlockReference, PolygonMesh, an so on) to the selection set. The result could be multiple entries with the same entity name in the selection set (each will have different subentity information for ssnamex to report).
Подсчет блоков с помощью извлечения данных AutoCAD
Создание атрибутов блоков в Автокаде позволяет хранить полезную информацию в чертеже, экспортировать ее для последующего использования в электронных таблицах или базах данных для генерации различных спецификаций. Как правильно выполнять извлечение данных в Автокаде, рассмотрим далее.
Рациональная работа в Автокаде. Формируем таблицу из атрибутов блоков
Рис. 1. Чертеж AutoCAD, содержащий блоки с атрибутами.
Перейдите на вкладку «Вставка» и в панели «Связывание и извлечение» выберите команду «Извлечь данные». Местоположение данной панели на ленте у вас может отличаться от указанного на рис. 2, т.к. по умолчанию она расположена правее.
Рис. 2. Команда AutoCAD «Извлечь данные».
Появится диалоговое окно, в котором нужно последовательно пройти 8 шагов.
1. Поставить галочку напротив «Создать новое извлечение». Нажать «Далее». Появится диалоговое окно сохранения извлеченных данных, в котором следует указать имя файла и нажать «Сохранить».
2. Указать источник извлечения данных. Это может быть либо весь чертеж, либо отдельные объекты. Рассмотрим пример, где выделены конкретно наши блоки.
3. В параметрах отображения поставим галочку напротив «Отображать только блоки с атрибутами». Вы можете варьировать варианты выбора объектов.
4. В фильтре категорий оставим только значение «Атрибут».
5. На данном шаге следует уточнить данные. Т.е. то, что будет сводиться в таблицу. В нашем случае поменяем местами столбцы, добавим итоговую ячейку «Сумма» для столбца «Количество плитки». Столбец отсортируем по возрастанию. Данные действия можно совершать, нажав ПКМ по табл. и выбрав нужное значение.
На данном этапе можно вставлять собственные формулы.
Рассчитаем, какую площадь занимает определенный вид плитки. У нас есть значение площади одной плитки и их количество. Соответственно, нажимаем ПКМ по табл., выбираем «Вставить столбец с формулой» и в появившемся окне «собираем» нужную формулу.
Рис. 8. Работа с ячейками таблицы извлечения данных AutoCAD.
Рис. 9. Возможные ошибки в AutoCAD из-за некорректного значения атрибута.
6. На следующем этапе нужно определиться, куда извлекать данные: непосредственно в сам чертеж или во внешний файл, например, Excel.
7. Определяем стиль (внешний вид) таблицы по своему усмотрению.
8. Нажимаем «Готово». В графическом пространстве чертежа нужно указать точку вставки табл.
Таким образом можно извлекать нужную информацию прямо с чертежа. Это очень полезное свойство блоков с атрибутами. Можно не только посчитать количество блоков в Автокаде, но и выполнять различные манипуляции с данными.
бесплатный онлайн-курс от Алексея Меркулова
Подсчет количества блоков в чертеже (Страница 1 из 3)
Форумы CADUser → Autodesk → AutoCAD → Подсчет количества блоков в чертеже
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщения с 1 по 25 из 64
#1 Тема от ajlena 11 августа 2004г. 20:11:31
Тема: Подсчет количества блоков в чертеже
Люди помогите!
Необходима программа считающая количество вставок блока определенного имени в modelspace
#2 Ответ от Тютюнников 11 августа 2004г. 21:36:59
Re: Подсчет количества блоков в чертеже
#3 Ответ от Fantmas 11 августа 2004г. 21:51:21
Re: Подсчет количества блоков в чертеже
Вот простенькая функция. Тыкаете в блок и она выводит, его название и количество одноименных блоков на чертеже.
Можно в принципе немного доработать и сделать чтобы выдавала полный список блоков с их количеством.
#4 Ответ от Fantmas 11 августа 2004г. 22:29:35
Re: Подсчет количества блоков в чертеже
Чуть подправил. Так лучше.
#5 Ответ от Vova 12 августа 2004г. 16:10:38
Re: Подсчет количества блоков в чертеже
Есть щтатное средство. Quick select на правой кнопке мыши. Выбери Блок по параметру Name Пoлучишь количество вставок
#6 Ответ от Fantomas 12 августа 2004г. 16:44:05
Re: Подсчет количества блоков в чертеже
> Но
времени это занимает намного больше. Тем более что при выборе опции Block Reference названия блоков к сожалению не появляются в выпадающем меню и их надо набирать вручную.
#7 Ответ от Vova 12 августа 2004г. 20:43:25
Re: Подсчет количества блоков в чертеже
Зачем набивать имя блока? Вызови List и скопируй. Другое штатное средство, покороче, команда Blockreplace. Замени свой блок на любой из списка, прочитай результат и сделай Undo. А то можно подумать, что без Лиспа автокад беспомощный.
#8 Ответ от VK 12 августа 2004г. 21:06:44
Re: Подсчет количества блоков в чертеже
Как то видел программку, которая выводит количество всех вхождений каждого блокоа в чертеж, но не смог сразу найти. Написал свой вариант:
#9 Ответ от VK 12 августа 2004г. 21:08:49
Re: Подсчет количества блоков в чертеже
Мдя.. Маленькое ограничение: имя блока НЕ должно содержать Space
#10 Ответ от Jura 12 августа 2004г. 21:14:25
Re: Подсчет количества блоков в чертеже
А я, тут, застрял между Vova и Fantomas. Неудобно, как-то.
В Acad`е довольно давно, живет Filter, там есть и Выбор блоков из списка(по Fantomas`у), и жизнь без Лисба (по Vova).
Довольно крутой, продвинутый инструмент.
А QuickSelect, мне тоже чего-то не запал, хотя иногда тоже супер. В общем, смотря какая задача.
#11 Ответ от Fantmas 12 августа 2004г. 23:48:29
Re: Подсчет количества блоков в чертеже
> Jura
Filter безусловно хорош, но опять же надо настраивать, а для постоянных задач, типа подсчета количества розеток, выключателей или еще какой ерунды на поэтажном плане это нормальный вариант.
Я сам расширенные данные вношу, и получаю практически сразу почти полную смету по оборудованию и спецификацию. Но когда то такой ерундой пользовался, уже забыл где лежит, пришлось переписать.
> VK
Есть и такая штука, правда там столько «мусора» вылезает, что заколебешься оттуда «полезные» блоки выскребать. Если чертежи относительно «чистые», типа машиностроительных, то еще ничего. А если архтектурные, которые перед этим прошли через 10 субподрядчиков, то с блоками «каша», и Purge не поможет чтобы разобраться. Так что по мне лучше в «свое» тыкнуть и чтобы посчитало.
По просьбе друга написал небольшую программу для подсчёта блоков, указанных пользователем. Программа оказалась полезной, поэтому потом её существенно доработал для подсчёта блоков, входящих в данный; для определения суммы длин линий, имеющих сходные признаки (слой, тип и т.п), в пределах всего чертежа или указанной области; для формирования итоговых спецификаций на основе таблиц из чертежей; для быстрого объединения примитивов в группы; в общем, для автоматизации целой серии рутинных операций. Теперь на этом экономлю часы и дни, чего и вам желаю :).
Демоверсия программы
Базовая постановка задачи: создать инструмент для простого подсчета указанных пользователем блоков и записи результата куда-нибудь. Простейшая реализация: после запуска программы пользователь в ответ на запрос указать объект щёлкает мышкой по нужному блоку, данные о нём (имя и количество таких блоков) тут же заносятся в таблицу, автоматически создаваемую по форме 7 обязательного приложения «К» ГОСТ 21.1101-2009. В принципе ничего сложного, вот короткий ролик, демонстрирующий её работу:
Если после запуска программа находит таблицу перечня оборудования, которую она создала ранее, то новую не создаёт, а работает с найденной. Если таблиц несколько, то данные заносятся в одну из них, как правило, добавленную последней. При этом наличие аналогичных данных в других таблицах не проверяется.
Программа работает с любым автокадом (полной версией, в лайте возможности автоматизации обрезаны), в котором используется примитив «таблица» (если не ошибаюсь, начиная с ACAD2004). Формируемые таблицы используются полной версией программы Mikitkin для получения итоговой спецификации по всему разделу (см. ниже), хотя стандартные средства AutoCAD легко позволяют перенести эти данные в Excel.
Как известно, автокад работает не с абсолютными, а с относительными единицами. Пользователи используют разные методы работы: кто-то чертит в масштабе 1юнит=1мм, кто-то 1юнит=1м, кто-то вообще как получится. Поэтому размер таблицы может оказаться не соответствующим Вашему чертежу. Ничего страшного в этом нет: после выполнения подсчётов просто выполните масштабирование полученной таблицы. В программе Mikitkin для указания масштаба выделено отдельное поле.
Полная версия программы «Счетовод Микиткин»
Окно программы выглядит следующим образом:
Полная версия программы «Счетовод Микиткин» в принципе решает те же задачи, что и демоверсия, но в ней добавлены элементы ускорения выполнения отдельных операций, а также ряд дополнительных возможностей:
1. Подсчёт блоков и длин линий выполняется в пределах (см. панель «Область обработки» на рисунке выше):
— всего текущего чертежа (аналог демоверсии);
— в пределах прямоугольной области, описывающей указанный пользователем объект. В качестве такого объекта может выступать Ваш блок формата, прямоугольник, описывающий Ваш чертёж, или иной объект;
— всех форматных рамок файла (вариант для тех, кто размещает в одном файле в модели сразу несколько чертежей).
Выбор варианта осуществляется установкой переключателя в поле «Область обработки» (см. рисунок выше).
2. В пределах заданной области чертежа выполняется:
— подсчёт указанных пользователем блоков, причём в отличие от описанной выше демоверсии можно выделить не один, а сразу произвольное количество блоков. На практике я выделяю блоки из условных обозначений данного чертежа, а программа формирует заготовку перечня оборудования по данному чертежу;
— подсчёт суммы длин линий и полилиний по образцу. В качестве критериев сравнения с образцом можно использовать слой, тип линии, цвет, толщину, а также произвольную комбинацию этих признаков. При установке переключателя в данном пункте окно программы приобретёт вид в соответствии с рисунком:
Возможный пример использования: короба выделяем линией красного цвета, толщина 0.5 соответствует коробу одного типа, 0.4 другого и т.п. Гофра будет синего цвета, металлорукав зелёного и т.п. Одним словом, простор для Вашей фантазии или требования Вашего стандарта предприятия. Если все эти нюансы отражены в условных обозначениях к данному чертежу, то достаточно выделить находящиеся там образцы линий, и программа определит сумму длин аналогичных линий во всей указанной области чертежа и занесёт сведения о них в таблицу.
Если Вам эти коэффициенты не нужны, оставьте в соответствующих полях единичные значения.
При использовании программы обратите внимание, что выбранные Вами имена блоков и слоёв сохраняются и при последующем запуске будут добавлены в перечень обрабатываемых автоматически.
Разумеется, подобные операции можно совершить и с помощью окна быстрого выбора, но скорость работы при этом несоизмерима. Особенно эффективно сочетание режимов обработки «в пределах каждого блока «Формат « и «использовать имена блоков из перечня» : задав интересующие Вас блоки, запускаете программу и моментально получаете результат по всем находящимся в файле чертежам.
Часто задаваемый вопрос: почему у меня не заполнены поля с именами блоков и слоёв? Ответ: эти поля автоматически заполняются ТОЛЬКО при выборе соответствующего пункта меню в панели «Способ задания образцов. «!
3. Самое полезное (для меня) состоит в возможности выполнять автоматическое формирование итоговой спецификации: на каждом чертеже размещаем подобную таблицу, даже если чертим схему и заносим туда количество плинтов, клеммников или ещё чего угодно. Далее нажимаем кнопку, «Сформировать спецификацию». В зависимости от наличия галочки в поле «Формировать спецификацию с суммированием элементов» спецификация выполняется с суммированием аналогичных позиций по всем чертежам или же простым переносом данных из чертежей (например, иногда необходимо каждый шкаф или этаж расписать в спецификации отдельно). И через несколько секунд или минут, в зависимости от сложности раздела, получаем результат. Несомненное достоинство, кроме скорости работы, состоит в точности работы, ведь пропуск позиций или неверные суммы могут стоить миллионы рублей!
5. По окончании работы программы выполняется зуммирование экрана так, чтобы таблица была по его центру.
6. Назначение переключателей в левой нижней четверти окна программы следующее:
— «Проверять наличие дублирования блоков«. Функция добавлена по просьбе коллег. Иногда в одной точке оказывается два блока, один на одном. Стандартные методы подсчета блоков показывают больше, чем видит пользователь, который не поймёт, в чём дело. Если галочка установлена, то при нахождении дубля дальнейшая обработка прерывается и выполняется зуммирование экрана, чтобы показать дубль. Блоки считаются дублированными, если совпадают точки вставки у одноименных блоков. Если для Вас это не актуально, снимите галочку в данном поле.
— «Не обрабатывать динамические блоки«. Включение в обработку динамических блоков занимает относительно много дополнительного времени, поэтому если Вы такие блоки не используете, установите галочку в данном поле.
Деморолики работы программы «Счетовод Микиткин»:
Для чего нужен весь этот сыр-бор, или итоговый результат:
В ролике демонстрируется два варианта получения итоговой спецификации по оборудованию шкафов за три минуты (по минуте на вариант плюс показ работы с программой) путём обработки пятнадцати файлов, содержащих перечни оборудования примерно четырёх десятков шкафов. Разумеется, это можно посчитать и вручную. А если перечней оборудования сотня? А если в каждом по два-три десятка позиций?
С чего всё начинается: демонстрация работы с простыми блоками.
Разумеется, я не изобрёл велосипед. Если поискать на dwg.ru, можно найти советы о том, как сделать часть того, что выполняет программа «Счетовод Микиткин» :). Поделюсь «секретом»: есть хитрая команда bcount, набрав которую в командной строке автокада, Вы можете попробовать подсчитать блоки в выделенном наборе. Как это выглядит и чем отличается от возможностей Микиткина, и показано в данном ролике.
А если блоки сложные? Если блок соответствует некоторому набору деталей и/или узлов, которые тоже хотелось бы подсчитать и занести в заготовку спецификации? Скажу честно, я таких задач изначально не ставил, но было пожелание одного из пользователей (висит внизу этой страницы), и я его реализовал. Результат демонстрируется в следующем ролике:
В заключении демонстрируется возможность переноса полученных данных из сформированных в предыдущих роликах перечней оборудования в спецификацию, которую удобнее выполнять в WORD: