Cортировка и Суммирование в таблицах A>V>C>

В данной статье я хочу помочь разобраться с настройками сортировки таблиц в программах Таблица Данных, Таблица Напилки и всех прочих табличных командах AVC.


Не многие обращают внимание на маленькое поле с символами А-Я в настройках каждого столбца данных. А от этого поля очень многое зависит. Как расставить строки таблицы в правильном порядке? Как получить сумму площадей одинаковых деталей? Почему разные детали склеились в одну строку? Как расположить строки по именам слоев? Если вас интересуют эти вопросы, то вам придется разобраться, что такое сортировка.

Сортировка

Каждый из столбцов таблицы может использоваться либо для сортировки, либо для суммирования. Не может быть столбца, по которому нет ни сортировки, ни суммирования. С сортировкой все более менее просто. Программа извлекает данные о каждом объекте чертежа, превращая их в строки таблицы. И затем программа переставляет эти строки по возрастанию (от А до Я) или по убыванию (от Я до А). Эта перестановки и называется сортировкой. Вы можете выбрать порядок сортировки в настройках каждого столбца в выпадающем списке.


Тут самое важное понять, что сортировка сначала делается для групп (о которых наверно стоит написать отдельную статью), а затем для самого первого столбца, который будет самым левым в таблице. Только если несколько деталей получились с одинаковым первым столбцом, только тогда вступает в работу сортировка по второму (слева) столбцу. Если опять одинаковые - тогда по третьему. И так далее, пока не будут отсортированы все столбцы. Отсюда можно сделать простой вывод - если важно отсортировать данные, например, по слою, то значит столбец слоя должен быть раньше (левее) других. В таблицах AVC нет никакой возможности сортировать в первую очередь третий или пятый столбец. Только менять порядок столбцов. Если это не устраивает - добро пожаловать в мир полноценных табличных процессоров - копируйте данные в Excel и сортируйте там как угодно, что угодно.

Сумма

А что если все данные во всех столбцах оказались одинаковыми? А вот именно в этом случае программа считает, что нашла две одинаковые детали. Например, два одинаковых солида или две одинаковых полилинии. И оба объекта будут записаны в одну строку. Программа нумерации в этом случае даст обоим объектам один и тот же номер. А если вы переключите какой-нибудь столбец из режима сортировки в режим суммирования, то программа найдет сумму значений для всех деталей, попавших в эту одну строку таблицы. 

Включить режим суммирования можно в том же выпадающем списке, где переключается направление сортировки.

Получается так - если вам нужна, например, площадь одной детали, то вы настраиваете столбец с подстановкой %area% и настраиваете этот столбец на сортировку (по возрастанию или убыванию - это не важно). А если вам нужна сумма площадей всех одинаковых деталей в этой строке, то настраиваете суммирование. В настройках по умолчанию вы увидите в заголовке такого столбца слово Сумма. Ничто не мешает вам вывести в одну таблицу и площадь каждой детали, и суммарную площадь. Это особенно удобно для сметных таблиц с ценами. Вы можете вывести цену материалов одной детали и суммарную цену всех таких деталей. Обычно таки е столбцы называют Цена и Стоимость. В обоих столбцах будет одинаковая подстановка %cost%, но первый будет столбцом сортировки, а второй столбцом суммирования.

Внимание!

Очень важно понять и запомнить, что различаются детали только по столбцам сортировки. Столбцы суммирования не участвуют в идентификации одинаковых деталей. Сложно представить себе детали с одинаковыми размерами, но разной площадью, но теоретические такие могут быть и если настроено суммирование площадей, то все такие детали окажутся в одной строке. И в ячейке Площадь вы увидите общую суммарную их площадь. Вы даже не догадаетесь, что детали-то попались разные!

Как надежно различать детали?

В некоторых случаях вас может устраивать описанное выше поведение программы, но чаще всего хотелось бы избегать "склеивания" разных деталей в одну строку, даже когда все столбцы сортировки случайно оказались одинаковыми, даже когда вы убрали из таблицы столбцы объема и размеров. Обратите внимание на три галочки в настройках стиля таблицы – “Объединять одинаковые”, “Проверять геометрию” и “Проверять внешний вид”. 

Если сбросить галочку “Объединять одинаковые”, то программа вообще никогда и никакие объекты чертежа не запишет в одну строку. Количество всегда будет равно 1, а все суммы равны значению этого свойства у одной детали. Это иногда тоже может быть полезным, но не в таблице напилки. Поэтому оставляем эту галочку включенной, а смотрим на следующую.
"Проверять геометрию" означает, что программа, помимо данных, записываемых в таблицу, произведет полный обмер объекта, извлечет все размеры, объем, площади, количество граней. И потом будет учитывать все эти данные при сравнении деталей. Даже если размеров нет в готовой таблице, все равно две детали с разными размерами попадут в разные строки. Это именно то, что нам обычно и надо. Поэтому галочка установлена по умолчанию. Только не удивляйтесь возникновению одинаковых строк в таблице - раз детали не объединились, значит есть какая-то (хотя бы мизерная) разница.
Аналогично “Проверять внешний вид” означает, что программа должна извлечь цвет, слой, материал, тип линий и проверить их тоже. Даже если в таблице нет столбца Слой, то детали с разных слоев все равно окажутся в разных строках.

Тут есть еще один нюанс. Если в таблице, например, нет столбца Длина, но стоит галочка “Проверять геометрию”, то программа должна разместить две детали с разной диной в разных строках. И программа Нумерации должна дать им разные имена. Но какой детали дать первый номер, а какой второй? И ту  вступает в работу опция "По убыванию размера". Когда эта галочка включена, то номер 1 получит деталь с самой большой длиной и далее детали будут отсортированы по убыванию длины. Когда галочка выключена - сработает сортировка по возрастанию размера. Эта опция имеет смысл только для размеров, которые не выводятся в таблицу или выводятся в вместе с другими подстановками в составном столбце.

Опция "Зеркальные отдельно" срабатывает только на солидах. Если она включена, то зеркальные друг другу детали окажутся в разных строках, хотя все их размеры одинаковые. Зеркальность программа может обнаружить сама, или вы можете поставить галочку Зеркальный в свойствах некоторых солидов. Используйте для этого палитру свойств A>V>C>.

Сумма текстов

Вы можете включить суммирование и в текстовых данных. Например, в столбце Слой или Цвет. В этом случае вместо суммы в столбец будет подставлено перечисление всех вариантов этого свойства, все названия слоев, на которых найдены эти детали. Список разделяется символом дроби. И вы уже наверно поняли что, чтоб получить в одной строке детали с разных слоев, нам надо сбросить галочку «Проверять внешний вид».

Итоги

Если столбец суммарный, то программа дополнительно может подсчитать итоговую сумму по всей группе и по всей таблице. Выбирайте вариант "Сумма + Итог".

Итоги выводятся в последней строке. Никаких подписей не ставится, не ищите, как вставить слово «Итого» - такой возможности нет. И программа умеет только суммировать итоги. Более сложные вычисления (например, Среднее) вы можете подсчитать в Excel.
Итоги для сортированных столбцов подсчитать не возможно. Это не баг - итог в таком столбце всегда будет ложной цифрой, потому что в нем записаны данные одной детали, не помноженные на количество деталей.

Нумерация и количество

Есть все-таки несколько особых столбцов по которым программа не делает ни сортировки, ни суммирования. Это столбцы, которые заполняются в последнюю очередь, когда вся таблица уже готова и отсортирована. Это имя детали, когда включена нумерация и несколько так называемых суммарных "свойств детали". Если включена галочка Нумерация, то имена всех деталей сбрасываются перед сортировкой таблицы. А после сортировки деталям даются новые имена.
Подстановка %row% - это просто номер строки таблицы. Понятно, что он всегда отсортирован по возрастанию и его никак нельзя просуммировать. Именно его и записывает в поле имя программа нумерации.
Подстановки количества (их несколько разных) вычисляются только, когда объединены несколько объектов в одну строку таблицы. Тут невозможна сортировка. Но вы можете написать в свойствах таких столбцов сортировку или суммирование - программа не обратит внимание на эту настройку.
Если столбец номера строки будет первым (левым) в таблице, то сортировка таблицы начнется со второго столбца. Аналогично, если вы вставляете первым столбцом Имя детали и включили Нумерацию - сортировки по имени не произойдет, потому что программа очистила имена деталей перед сортировкой. 

Столбцы без данных

Если в столбце нет никаких подстановок или он вообще пустой, то по нему не будет ни сортировки ни суммирования. Такие бесполезные столбцы иногда приходится создавать, чтобы экспортировать данные во внешние программы. Например, Cutting3, требует целую пачку пустых столбцов, без которых данные из буфера не в вставятся в список деталей.

Столбцы с множеством данных

Если в одном столбце несколько подстановок, то программа сначала преобразует данные в строку, а потом уже будет сортировать их. Это часто вносит бардак в сортировку. Чтоб сортировка по таким столбцам выглядела логичной, старайтесь, чтоб каждая подстановка возвращала строки одинаковой длины, с одинаковым количеством символов. Это называется выравниванием данных (смотри далее). 
Цифры в таких столбцах тоже будут восприниматься как текст. Но для подстановок размеров деталей выравнивания не требуется. Программа не глупая, знает, что подстановки длины и ширины - это размеры и их надо сортировать как цифры, не как текст, даже если они входят в составной столбец с множеством подстановок. Поэтому форматирования для выравнивания не понадобится. Направление сортировки задается опцией  "По убыванию размера". Например, вы создали единый столбец для двух размеров детали %length%x%whidth% (это подстановка длины детали, крестик и подстановка ширины) и назначили сортировку по возрастанию. Вы конечно ожидаете, что детали будут расположены как-то так: 1х5, 9x6, 11x8 и так далее по прядку роста длины. Но вы получите строки в порядке: 11x8, 9x6, 1х5. Упс! Откуда вдруг взялось убывание длины? А вы забыли, что это составной столбец и для него работает сортировка как текста и опция "По убыванию размера".

Выравнивание данных

Для красивой и логичной сортировки текстовых данных необходимо, чтоб тексты имели одинаковую длину, одинаковое количество символов. Этого можно добиться, если дополнять текстовые свойства пробелами до одинаковой длины. Или форматировать числа (которые программа считает тестами) с ведущими нолями. Например, если артикулы материалов 54321, 654321 и 12345678, то лучше запишите их как 00054321, 00654321, 12345678. То есть во всех артикулах по 8 цифр. Программа считает артикул текстом, а не цифрой. И без выравнивания разместит первым артикул, начинающийся на 1.
А, например, имена блоков: 
"Болт М8х15", "Болт М8х35", "Болт М8х100", "Болт М12х120" 
лучше будут сортироваться с пробелами перед маленькими цифрами размеров: 
"Болт М 8х 15", "Болт М 8х 35", "Болт М 8х100", "Болт М12х120" 
Без пробелов вы получите странную сортировку по возрастанию: 
"Болт М12х120", "Болт М8х100", "Болт М8х15", "Болт М8х35"
Почему M12 раньше М8 ?! Да потому, что это просто текст и сначала идут все "слова" с буквой "1", а уже потом с буквой "8" в том же месте строки. А пробел (как и ноль, как и символ подчеркивания _ ) сортируется раньше всех чисел. Поэтому нули и пробелы выравнивают разряды чисел и сортировка становится правильной.
Все атрибуты блоков всегда считаются тестами. В примере с болтами вы наверняка создали у блоков невидимые атрибуты Резьба и Длина. И вы можете разместить эти атрибуты в Таблице Данных левее имени блока. Но что бы эти атрибуты нормально сортировались, вам придется у всех блоков не забывать записывать в атрибут ведущие ноли или пробелы. Не "8", а "08" или " 8".
Форматирование подстановок поможет выровнять разряды чисел в составных столбцах. Например, для сортировки солидов по количеству граней можно использовать подстановку %facecount%. Но чтобы эта подстановка нормально сортировалась в сложном составном столбце "Описание детали" желательно, чтоб всегда выводились два разряда числа. Делаем форматирование так: %facecount:00% и получим такие данные: 06, 09, 55, 83... Нолик слегка мешает, зато все будет отсортировано по порядку.

Если у вас остались вопросы – пишите мне на avc.programming@gmail.com. Ваши вопросы могут стать  темами для новых статей.

И я хочу напомнить о существовании бонусной программы: вы можете превратить ваши видео, комментарии и статьи в лицензии на программы A>V>C>.

Комментарии

Популярные сообщения из этого блога

Методичка инженера-выставочника. Часть 7: Выставочный стенд: подиум, конструктор, 2ой этаж, подвеска.

Тестируем AutoCAD 2022 на ноутбуке с AMD Ryzen7 5800H

В какой папке искать плагины AutoCAD?