Сумма длин линий и площадей в Автокаде

Сумма длинн линий по типу линий АвтокадИтак, представим себе тривиальную задачу — надо посчитать длину к примеру трубопроводов, или электрических кабелей, или дорожной разметки, в общем любых линейных объектов на плане.

Можно взять отдельные элементы на плане и, заглядывая в их свойства, последовательно сложить длины. Но согласитесь это утомительно, однообразно, и как-то неэффективно.

Можно воспользоваться стандартным инструментом _dataextraction, хотя он настолько универсален, что для решения такой простой задачи пусть и подходит, но результат вы получите не намного быстрее чем складывая вручную.  Проще потратить пару минут, и раз и навсегда установить GeomProps.

В целом же, для решения подобных задач я использую прием  суммирования длин линий по типу линий. Работает это следующим образом:

  1.  Создать типы линий для каждого типа линейных объектов, с которыми будем работать. Это позволяет, во-первых, контролировать параметры отображения линии на плане, и быстро изменять его при необходимости, переписывая файл с линиями. Во вторых позволяет отфильтровать одни объекты от других, без использования слоёв. После чего с помощью SelSim мы сможем в один клик выбирать все аналогичные объекты на плане.
  2. Посчитаем сумму длин линий линейных объектов в AutoCAD, обратимся за помощью к GeomProps.
  3. И наконец,  добавим небольшую ведомость с суммами длин в виде таблицы по типу линий с помощью небольшой лисп утилиты от Mac Lee —  LenCal.
Сумма линий и площадей в автокаде
Сумма длин линий и площадей объектов Автокад с помощью GeomProps

Теперь разберемся с каждым пунктом немного подробнее:

1. Как создать свой тип линий в Автокаде?

Это необязательно, но знать полезно.

Типы линий в автокаде создаются с помощью простого текстового файла с расширением .lin, синтаксис которого весьма незамысловат. В простейшем случае:

*1.1,razmetka_1.1-----------------
A,1.0,1.0

Где в первой строке, после звездочки идет название типа линии и через запятую его текстовое превью, оно должно подсказать пользователю как примерно будет выглядеть тип линии. Вторая строка начинается с буквы A, её смысл в описании синтаксиса заключается в том, что она обозначает тип генерации линии. В Автокаде, он всего один (хотя может быть что-то и поменялось в последних версиях?). А – сообщает автокаду о том что линия должна начинаться и заканчиваться сплошной линией. Т.е. на концы любого линейного объекта у вас всегда будут заштрихованны, а параметры штриховки будут игнорироваться на концах и началах линий. Потом через запятую идёт собственно описание штриховки,  1 – сплошная линия длинной в одну условную единицу чертежа, -1 – пропуск в ту же единицу. В описании могут использоваться так же буквы и символы в формате .shx

Тут можно посмотреть небольшой пример с несколькими типами линий для автокада.

2. Как получить сумму длин линий

Скачиваем GeomProps, распаковываем, добавляем в автокад с помощью команды _appload, выбрав подходящую версию плагина. Делается это один раз, после чего GeomProps загружается автокадом автоматически. Теперь в стандартных свойствах автокада (ctrl+1) у вас появится новая группа для всех линейных объектов:

Geometrical properties:

geomprops - свойства

Area (total) — сумма площадей выбраных объектов.

Volume (total) — сумма объемов выбраных объектов

Length (total) — сумма длинн выбраных объектов

И еще одно свойство — Linear scale Factor — множитель для всех трёх свойств выше. Т.е. можно домножить например на 0.001 чтобы получить длину в метрах если вы работаете на чертеже в масштабе 1:1.

3. Создадим небольшую ведомость с суммами длин в виде таблицы по типу линий

В этом нам поможет небольшая LISP утилита от Lee-Mac —  LenCal калькулятор сумм длин линий.

Таблица сумм длин линий по типу линий, АвтокадЗагружаем утилиту, с помощью команды _appload добавляем её в автокад. Теперь нам доступна новая команда — LenCal, запускаем её, выбираем в меню типы линий, из которых нам хотелось бы получить ведомость. И добавляем в чертёж таблицу в которой в одной колонке будут названия типов линий (именно поэтому имеет смысл создать линии с нормальным названием) а в другой их общая длинна на чертеже.

Другие материалы по теме Автокад