(изменено: Александр Ривилис, 15 апреля 2016г. 12:29:41)

Тема: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

Площадь, длина и объем выбранных примитивов в панели свойств. Добавляется новая группа свойств Геометрические свойства с полями Площадь(сумма), Длина(сумма), Объем(сумма). Необходимо однократно загрузить arx-файл (который можно взять >>>здесь<<<) при помощи команды _APPLOAD (или _ARX)
GeomProps2006.arx - для AutoCAD 2006, GeomProps2007.arx - для AutoCAD 2007...2009, GeomProps2010x32.arx и GeomProps2010x64.arx для AutoCAD 2010...2012,  GeomProps2013x32.arx и GeomProps2013x64.arx для AutoCAD 2013...2014, GeomProps2015x32.arx и GeomProps2015x64.arx для AutoCAD 2015 и 2016, GeomProps2017x32.arx и GeomProps2017x64.arx  для AutoCAD 2017

Для версий AutoCAD до 2005 включительно - не работает (сразу предупреждаю, что для них делать не буду - хлопотно это).

P.S.:
1. Это приложение нельзя выгружать из AutoCAD и загружать его повторно.
2. Радикальный метод избавится от GeomProps - удалить или переименовать его arx-файл.
3. Если открыт Design Center (команда _adcenter) и загружен GeomProps при выходе из AutoCAD возникает ошибка (необрабатываемое исключение в AcObjClassImp.arx). При этом нет потери данных в dwg-файлах, которые были открыты, т.к. к этому моменту они уже сохранены.
4. Замечена некорректная работа GeomProps с вертикальными продуктами (в частности, с Autodesk Architecture). Если перетаскивать с панели инструментов стены, окна и т.д. в чертеж - AutoCAD завершается аварийно (FATAL Error). В тоже время если эти же команды запускать из командной строки, выбирать из ленты или из меню - всё нормально. Причина такого поведения пока не установлена.

Спасибо сказали: sagitovarina91, Valery Brelovsky, DVI, Serg Murz, aloepepsi5

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

Отличная работа.
Спасибо!

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

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

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

> Денис Флюстиков
У меня все работает. Но:
1) Закладка называется не Геометрия, а Геометрические свойства
2) Если среди выбранных есть примитивы, которые не поддерживают длину, площадь или объем, то в этой группе ничего отображаться не будет и нужно из выбранного выбрать только те примитивы, которые эти свойства имеют. Например, если выбраны полилинии и тексты, то для всего этого набора не будет вкладки Геометрические свойства, а только для полилиний будут.

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

> Александр Ривилис
Я говорю о стандартной закладке «ГЕОМЕТРИЯ» (центр, радиус, диаметр и пр.), да и в свойствах, уже полученная дуга  прописывается как «Круг». Акад 2006 русский.

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

P.S.: Изменил алгоритм и перезалил на то же место. Теперь пункт 2) следует читать так:
Закладка появляется всегда если что-то выбрано - суммарные значения длин площадей и объемов выводятся для всех выбранных примитивов. Если примитивы не поддерживают эти свойства, то к значению поля прибавляется 0 (полилиния не имеет объема, отрезок - площади, ящик - длины, а текст ни то, ни другое, ни третье).

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

> Денис Флюстиков
У меня все нормально - боюсь, что это глюк твоего AutoCAD - только что проверил AutoCAD 2006 Russian SP1. Более того моя программа не в состоянии изменить эти поля...

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

> Александр Ривилис
Проверил дома (ACAD 2006 офиц.русский SP1 и 2007 офиц.русский из «Autodesk Inventor Series 11»), сначала все OK, а затем снова пустые значения в закладке «Геометрия». И еще, рисуем окружность, меняем ручками радиус, далее откат, и в закладке «Геометрические свойства» свойств «Круга» все значения нулевые. Очень жаль.

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

> Денис Флюстиков
Последнее (с откатом) - подтверждаю. С дугой один раз столкнулся с такой ситуацией. Если с откатом я думаю удастся разобраться, то с дугой - совершенно непонятно и скорее всего глюк AutoCAD. Тем не менее еще поэкспериментирую на досуге.

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

Уважаемый тезка!
Все очень хорошо и полезно.
Но! При выборе нескольких объектов не мешало бы указать количество подсчитанных объектов для данного свойства, пусть пользователь анализирует общее количество выбранных объектов и подсчитанных.
Например (для трех выбранных полилиний, одна из которых состоит из 2х узлов):
Площадь (сумма 2)
Длина (сумма 3)
Без этого можно ввести пользователя в заблуждение и, как следствие, это будет приводить к весьма серьезным ошибкам в проектах.
В этом случае можно показывать вкладку 'Геометрические свойства' для любых наборов, если хотя бы один объект из набора будет иметь это(и) свойства.
p.s. В ACADVER = "17.1s (LMS Tech)" проблема отката тоже присутствует.

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

> KAI
Спасибо за конструктивную критику. Боюсь, что текст типа Площадь (сумма N) принципиально невозможен, т.к. AutoCAD сначала запрашивает у моей программы строку заголовка, а лишь затем передает мне массив выбранных пользователем примитивов. Это не обязательно набор предварительного выбора, т.е. pickfirst - это может быть подмножество предварительного выбора (например, все полилинии из набора).
С откатом проблема существует во всех версиях AutoCAD - буду бороться.

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

Исправил ошибку с откатом. Вроде бы удалось победить "превращение" ARC в CIRCLE. Во всяком случае мне не удалось больше повторить этот баг.

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

Важно: Не пытайтесь дважды загружать этот arx-файл в AutoCAD и выгружать его из AutoCAD - развал AutoCAD обеспечен (это ограничение AutoCAD).  Если по каким-то причинам вам нужно чтобы этот файл не загружался - удалите/переименуйте его - AutoCAD при следующем запуске его не найдет и не загрузит без никаких сообщений.

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

> Александр Ривилис
Глюк с пустыми значениями в закладке "Геометрия", к сожалению, повторяется.
Рисуем круг, разворачиваем панель "Свойства", все ОК. Далее режем, например отрезком, круг, получаем дугу, снова разворачиваем "Свойства" и далее как ранее. Если предварительно не смотреть свойсва круга, то все отлично.

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

> Денис Флюстиков
Подтвердаю. Буду думать.

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

> Александр Ривилис
Очень надеюсь на решение, удачи.

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

Для штриховки в Свойствах AutoCAD тоже показывает площадь, НО! столкнулись с некоторым казусом (AutoCAD 2006 Rus). Стоило отредактировать штриховку, а именно, добавить к ее контуру (или убрать из ее контура - точно не помню) островки, и AutoCAD перестает показывать для такой штриховки в Свойствах площадь.
Узнали О Вашей GeomProps и обрадовались. Решили применить, но недолгой была радость. GeomProps для таких штриховок в графе "Площадь" выдает 0.

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

> kserg
Подтвердаю. Судя по всему и это глюк AutoCAD.

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

> kserg
P.S.: В AutoCAD 2008 это работает корректно.

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

Александр Ривилис пишет:

P.S.: В AutoCAD 2008 это работает корректно.

Под словом "это" Вы имели в виду GeomProps или стандартное AutoCAD-овское..?

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

> kserg
Я имел в виду удаление отстровков в штриховке и соответствующие значения  и в GeomProps, и в стандартном AutoCAD-овском. Впрочем возможно в вашем чертеже работать не будет. Так что шлите на e-mail.
P.S.: Внес еще косметические исправления и выложил на старое место.

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

> Денис Флюстиков
Отправил запрос в Autodesk - подождем. Может чего и подскажут.

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

Ждем

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

> Александр Ривилис
Выслал на e-mail файлик с штриховкой...

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

Боюсь, что текст типа Площадь (сумма N) принципиально невозможен, т.к. AutoCAD сначала запрашивает у моей программы строку заголовка, а лишь затем передает мне массив выбранных пользователем примитивов.

Прискорбно.
Я конечно 0 в Arx, но а если еще раз спросить у Acad эту строку, уже зная массив? И уж потом передавать строку заголовка с количеством подсчитанных объектов?
А для 3DPoly площадь считается спроецированной в текущую UCS?