В данной статье я расскажу подробно на примере, как сделать автоматический подсчет длин линий в СПДС GraphiCS и создать их ведомость в табличной форме.
Конечный результат будет иметь следующий вид:
В качестве примера возьмем чертеж с линиями, которые для наглядности образмерим.
Как видим, на чертеже:- 5 линий длиной 5000мм;
- 3 линии длиной 2500мм;
- 1 линия длиной 2100мм;
- 2 линии длиной 3000мм.
Понятно, что если на чертеже линий небольшое количество, то подсчитать их количество можно и вручную, но когда на чертеже их очень много и к тому же разных размеров - вручную это сделать будет очень непросто и очень долго. Подсчитать их количество можно с помощью функции Извлечение данных... (об этом я упоминал в статье: Подсчет длин линий в AutoCAD или новые возможности СПДС GraphiCS 9), но данный урок касается СПДС GraphiCS.
Подсчет длин линий и создание ведомости в СПДС GraphiCS
- Переходим на вкладку Форматы, таблицы и выбираем инструмент Таблицы (можно также воспользоваться: панелью СПДС - Таблицы, строка меню СПДС - Форматы, таблицы - Таблицы, ввести команду sptable).
- Создаем таблицу, заполняем наименование, указываем размеры и количество строк и колонок.
- Жмем кнопку ОК и вставляем таблицу на чертеж.
- Переходим в редактор таблиц (два раза кликнуть левой кнопкой мыши по таблице).
- В окне Редактирование таблицы в группе Данные заполняем наши ячейки (например: № п./п.; Наименование; длина, мм; кол-во, шт.).
- Переходим на вкладку Разделы и выбираем пункт Вставить раздел отчета.
- Появится Шаблон отчета в котором кликаем на иконку Выбрать исходные объекты.
- В появлявшемся окне Быстрый выбор выбираем возле Объект выбираем требуемый объект, в нашем примере это - отрезок.
- Там где Условие, напротив пункта Слой выбираем условие Содержит, а где Значение - слой, на котором наши отрезки. Это делается для того чтобы ведомость не считала все остальные отрезки, которые есть на чертеже!
- Жмем кнопку ОК и попадаем снова в диалоговое окно Редактирование таблицы. Как видим, у нас появился раздел Отчет.
- Теперь основное - заполняем шаблон отчета. Для этого кликаем правой кнопкой мышки по ячейке и выбираем нужный нам параметр. Для столбика № п./п. выбираем параметр Row. Это номер строки, но так как у нас первая строка это Данные, то значение параметра Row необходимо отредактировать вручную, написав формулу: =Row-1
- В столбике Наименование в шаблоне отчета можно написать свое значение, которое будет отображаться во всех строчках ведомости, например Линии для примера. Это можно сделать следующими способами: два раза кликнуть по ячейке; написать требуемое значение в строке формул; правой кнопкой мышки по ячейке и выбрать пункт Выражение (или сочетание клавиш Shift+F2). Значение пишем обязательно в кавычках!: ="Линии для примера"
- В столбике Длина в Шаблоне отчета выбираем параметр Object.Length.
- В столбике, где у нас будет количество, кликаем правой кнопкой мышки по ячейке и выбираем пункт Выражение (или сочетание клавиш Shift+F2), выбираем параметр count() или вписываем значение в ячейку, или в строку формул.
- Теперь нам надо настроить группировку/объединение строк с одинаковыми значениями. Для этого кликаем в Шаблоне отчета по иконке Группировать и объединять.
- В окне Группировка и объединение кликаем на пункт Добавить правило и выбираем необходимо нам правило (будем группировать строки).
- В окне Группировка и объединение справа есть номера столбцов нашей таблицы, по которым можно группировать значения. Мы будем группировать по длинам, поэтому выбираем номер столбца С. Для этого необходимо зажать мышкой номер столбца и перетянуть его в группу, где идет выбор правил.
- Можно сразу настроить и сортировку. Кликаем мышкой и выбираем тип сортировки. Будем сортировать по убыванию.
- Жмем кнопку ОК и видим, что длины наших отрезков в таблице отсортированы о объедены.
- Закрываем редактор таблиц. Таблица имеет следующий вид.
- Как видите, длины отрезков и их количество в таблице указаны и посчитаны правильно.
Прочитав данную статью, Вы не только узнали, как с помощью СПДС GraphiCS можно подсчитать длины линий и создать ведомость, но и вообще научиться создавать таблицы с отчетами.
Установил пробник СПДС9.
ОтветитьУдалитьПри рисовании новой линии, копировании - в таблице не изменяется значение суммы.
Без функции группировки не добавляется новая строка (под новую линию).
При изменении длины линии (нарисованой до создания таблицы) значение суммы часто не изменяется.
Что можно предпринять ?
Выбор элементов "Во всем документе" или "В прямоугольнике"?
УдалитьТаблицу обновляли (кнопка "Обновить отчет")?
Выбор "в текущем листе".
ОтветитьУдалитьКнопка, которая в редакторе? Нажимал. Когда клинит обновление (на изменение длины и добавление линий) от нее толку нет.
Но у меня ведь нажата соседняя - автом.обновление.
Пришлите файл на почту, так будет проще понять что не так и внести корректировки: pm.martynyuk@gmail.com
УдалитьВиноват, не ту кнопку нажимал :( (нажимал пересчет).
ОтветитьУдалитьПочему нет возможности включить автом.обновление ?
Почему нет, есть. Поставьте галочку "Автоматическое обновление отчета". Правда, при тяжелом файле, может немного подвисать программа (так как после каждого действия будет обновлять отчет).
УдалитьВ меню Правка Автоотчет галочка стоит, возможности вкл/выкл нет - бледная, серенькая подпись и значок тоже. Пиктограммка автом.обновление отчета не нажимается. Файл - из 6 линий и таблички.
ОтветитьУдалитьТеперь понятно в чем проблема - таблица без отчета. Необходимо добавить в таблицу - см. пункт 6 урока.
УдалитьРаздел Отчет есть. Файл выслал.
УдалитьДействительно, кнопка становится не активной. Получается, что это баг.
УдалитьНаписал в поддержку СПДС - как будет ответ, дам знать.
Придется обновлять отчеты в ручную.
"Становится.." А у Вас (в своих файлах) кнопка активна ?
УдалитьКак быстро отвечает поддержка? Пробник на 15 дней.
Возможность брать отчеты из примитивов (линий, полилиний,..) появилась только в 9-й версии. С блоками и деталями всегда работала таблица без сбоев.
УдалитьБудем надеяться, что в новой сборке этот баг устранят.
Пользуйтесь пока ручным обновлением.
"С блоками и деталями всегда работала таблица без сбоев"
УдалитьСбои появлялись на блоках с параметром "видимость".
Будем ждать пока исправят, в новых сборках надеюсь будет все хорошо.
Удалить"Будем надеяться, что в новой сборке этот баг устранят.
УдалитьПользуйтесь пока ручным обновлением."
За 30т.р. продукт и искать бубен ?
Лучше уж старыми проверенными лиспами.
Спасибо за ответы.
Обращайтесь, если что.
УдалитьЗдравствуйте Павел. В СПДС 8,0 в меню "Быстрая селекция" во вкладке "Тип объекта" не высвечиваются примитивы, т.е. отрезки. Это добавилось в СПДС 9?
ОтветитьУдалитьЗдравствуйте, Сергей!
УдалитьВсе верно, возможность работы (выбор) с примитивами AutoCAD появилась только в СПДС 9.
Добрый день. такая вот задача, на уме крутится, а решить не могу. Нужна сводная спецификация окон. т.е. сколько каких типов окон на каждом этаже. Таблицу создал благодаря вашему уроку. Как вычленить данные по каждому этажу и разбить по типу окон. Все поэтажныепланы в одном файле.
ОтветитьУдалитьДобрый день!
ОтветитьУдалитьВ диалоговом окне Быстрый выбор указываем нужные параметры (не содержит, равно,...) слой, атрибут блока,... по которым будет происходить выбор блоков.
По каждому этажу сделать с помощью Выбор объектов в прямоугольнике (не Во всем документе и не В текущем листе).
Будут вопросы - пишите.
Этот комментарий был удален администратором блога.
ОтветитьУдалитьспасибо, очень хороший урок!
ОтветитьУдалитьС помощью таких таблиц сейчас считаю очень много элементов (отказался от некоторых блоков, которые утяжеляют файл).
Удалитьне получается сделать сумму длин всех линий в одну строку(длина кабеля) можно ли так сделать без дополнительных таблиц? Например сразу в спецификацию?
ОтветитьУдалитьВключаем группировку и пишем формулу =Sum(Object.Length)
УдалитьИли что имеется ввиду под "без дополнительных таблиц"?
Да, так и делал. Только выдает:
УдалитьСинтаксическая ошибка в выражении "S<"
Напишите сюда полностью формулу.
УдалитьПосмотрю где ошибка.
Создал новую таблицу, сделал все заново - получилось. Большое спасибо за помощь!
ОтветитьУдалитьПавел,здравствуйте!
ОтветитьУдалитьИнтересует подсчет мультилиний с группировкой по длине/количеству.
Стандартные методы автокад и СПДС не позволяют этого сделать.
Добрый день!
УдалитьШтатными методами получить ведомость не получится, только программирование (нужен lisp).