Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - Debalance

Pages: [1]
1
General Discussion / SuperBoundary is now available for BricsCAD
« on: January 07, 2018, 10:13:46 PM »

Recently, the BricsCAD platform is becoming more and more popular for a developers in world wide. Thanks to the high compatibility of the BricsCAD API with AutoCAD, porting even complex applications is not such a difficult task.
We are also not lagging behind this trend. We bring to your attention the popular SuperBoundary application now on the BricsCAD platform. The SuperBoundary application, being a powerful alternative of the standard BOUNDARY (BPOLY) command, will allows you to easily build closed boundaries (contours) on drawings of varying complexity. This video shows a step-by-step instruction for using SuperBoundary on the latest version of BricsCAD Platinum V18.

2
Разместил новую версию программы SuperBoundary v.2.0.0.23.

Начальный индекс "2" в версии свидетельствует о глубокой модернизации движка программы. Уклон сделан на ускорение вычислений связанных с поиском точек взаимных пересечений примитивов, а также на усиление надёжности работы программы с большим количеством примитивов.

Основной перечень некоторых обновлений:
1. Улучшена работа программы с примитивом типа "ЭЛЛИПС". Ранее эллипсы перед процессом обработки трансформировались (методом кусочно-линейной аппроксимации) в последовательный набор отрезков. Теперь же данный примитив обрабатывается целиком, что ускоряет работу программы.

2. В настройках программы добавлена опция "Обработка Сплайнов":

Здесь можно выбрать один из режимов, спомощью которого программа будет осуществлять предварительную обработку сплайнов:
- Стандартный режим - предварительное преобразование сплайна методом кусочно-линейной аппроксимации в цепочку отрезков.
- Ускоренный режим - как и в случае с эллипсом оперирование примитивом осуществляется целиком, без предварительных промежуточных преобразований.

Ускоренный режим существенно (в разы) сокращает время работы программы при наличии большого количества сплайнов в выбранном фрагменте чертежа. Однако (как выяснилось после многочисленных тестирований), в этом методе обработки в случае сложных сплайнов могут присутствовать некоторые неточности построения, при обнаружении замкнутых областей образованных пересечением таких сплайнов с другими примитивами. К сожалению, это обусловлено неточностью в работе математического движка самого AutoCAD. Поэтому для построения гарантированно правильных контуров рекомендуется использовать Стандартный режим.

3. Устранён ряд критических ошибок, вызывавших переполнение стека при работе со сложными контурами.

4. Добавлена поддержка AutoCAD 2018.

5. Теперь помимо классического способа инсталляции программы можно использовать portable-режим ручной загрузки программных ARX-файлов. По этой ссылке можно загрузить весь набор файлов для portable-загрузки.

3
Разместил новую версию программы TotalPurge v.5.1.0.73. Качаем по этой ссылке.
Добавлено:
- поддержка AutoCAD 2016.
- поддержка AutoCAD 2017.
- поддержка AutoCAD 2018.

Переработано:
- полностью переписан инсталлятор программы. Теперь в одном дистрибутиве собраны два исполнения программы (x86, x64). Выбор платформы осуществляется автоматически.

Удалено из дистрибутива:
- поддержка AutoCAD 2008.
- поддержка AutoCAD 2009.

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

6
В данном посте рассматривается решение задачи обнаружения и построения контуров всех замкнутых областей сложного (насыщенного) чертежа с использованием плагина SuperBoundary. Я хотел бы сразу оговориться, что это решение не более чем тест, так сказать проверка на прочность возможностей программы SuperBoundary. Поэтому я бы попросил все Пытливые Умы относиться к подобному тесту и его целесообразности с долей снисхождения.

На самом деле вопрос о "сложности" чертежа в некоторой степени риторичен, а в некоторой требует определённого уточнения. КТО-НИБУДЬ из сторонников абсолютных цифр считает, что "навороченный" чертёж может содержать десятки тысяч объектов, а ,например, НЕКТО мыслит категориями большего масштаба - разумно полагая, что такой чертёж должен вмещать ни как не меньше сотни тысяч примитивов.
Я же являюсь приверженцем относительной шкалы ценностей. На мой взгляд сложность чертежа должна определяться в первую очередь "железом" т.е. рабочим местом, на котором с ним производят те или иные манипуляции. Ведь давно известно, что несколько миллионов примитивов открытых в среде AutoCAD легко "убивает" комп с 64 гигами памяти. Поэтому здесь (размышляя о степени сложности чертежа) я буду отталкиваться от конфигурации своей тестовой машины.
А конфигурация её такова:
- процессор Core i5, 3,3 ГГц;
- оперативная память 32 Гб;
- операционная система Windows 8.1;
- графическая среда AutoCAD 2016.

Согласен - не густо, но что имеем тем и дорожим. Поэтому (отталкиваясь от опыта общения с AutoCAD'ом) приходим к выводу, что комфортная работа на такой конфигурации должна быть с чертежом, занимаемый объём которого в оперативной памяти не будет превышать 25 Гб. Именно такой чертёж в данном контексте мы и будем называть "сложным". Причем важно учитывать следующее условие: в обозначенные 25 ГБ памяти должны "влезать" созданные нами многочисленные контуры. Т.е. реальный исходный чертёж должен быть, примерно, в 2,5 раза более компактным.
Такой чертёж мне удалось раздобыть, точнее сказать он мне был любезно предоставлен одним из "Активнейших Членов" геодезического сообщества, за что выражаю Ему благодарность.
Итак предоставленный в моё полное распоряжение тестовый чертёж содержит порядка 245 000 объектов. Здесь стоит отметить - этот чертёж несёт в себе весьма объёмное количество полилиний с достаточно большим содержание вершин. Поэтому реальный вес таких объектов в памяти существенен по сравнению с элементарными примитивами типа ОТРЕЗОК или ДУГА.
Для желающих повторить описанные ниже тестовые манипуляции предоставляю ссылку на исходный чертёж. Размер чертежа - чуть больше 60 МБ.

Переходим, собственно, к тесту. Будем действовать по-порядку:
1. Откываем чертёж:


2. Запускаем SuperBoundary и выделяем все объекты:


Как видно из данного рисунка количество объектов попавших в рассмотрение программы составляет порядка 160 000 примитивов.

3. Лезем в настройки и устанавливаем следующие параметры:


Здесь для меня важными опциями с точки зрения визуализации будут:
- генерация заливок (Generate solid filled shape);
- цвет примитивов - произвольный (Use random color).
Для усложнения задачи активируем "Решение островков" (Island detection).

4. Запускаем процесс, нажав кнопку "START". Собственно сам процесс выявления контуров занял у нас примерно 34 минуты, что видно по часам таймера на следующем скриншоте:


Как видно из этого скриншота в результате работы программы было обнаружено чуть больше 218 000 контуров.
Также на этом этапе я хотел бы отметить максимальный расход памяти зафиксированный при генерации контуров. Он составил в районе 16 ГБ, о чём свидетельствует ниже скриншот диспетчера задач:


5. Преобразуем все выявленные контуры в конкретные примитивы среды AutoCAD и добавляем их в базу чертежа. Для этого жмём появившуюся кнопку "BUILD ALL" (СТРОИТЬ ВСЁ). Итоговый скриншот диалогового окошка SuperBoundary привожу ниже:


Из рисунка видно что на данную процедуру мы потратили всего лишь треть секунды времени.

6. Ну и наконец закрываем окно программы и наслаждаемся полученными результатами:


Или вот, некий приближённый фрагмент чертежа:


Как видите качество созданных созданных контуров "на высоте".

Ну и в заключение привожу скриншот диспетчера задач с итоговым потребляемым расходом памяти, необходимым для открытия и дальнейшей работы с нашим новым чертежом:


Цифра в 20,5 Гб хоть и большая но вполне комфортная для данной конфигурации системы. Размер обновлённого чертежа после сохранения составил чуть более 207 МБ.

7
Разместил новую версию программы SuperBoundary v.1.0.1.40.
Перечень обновлений:
1. Исправлена некорректность работы программы при генерации контуров с внутренними островками, образованными двумя и более совпадающими окружностями.

2. Добавлена поддержка работы с внешними ссылками (XREF).

3. В настройках программы добавлен параметр Combine polylines into groups (Объединять полилинии в группы):


Данная опция становится доступной после активации функции Island detection (Решение островков). Таким образом все обнаруженные островки-полилинии будут объединяться в группу вместе с содержажей их родительской полилинией. На рисунке ниже показан пример такой группы, в котором родительская полилиния объединена с двумя окружностями-островками:


4. Добавлен вывод информации о генерируемых контурах в текстовое окно AutoCAD в режиме указания точки:


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

8
Разместил видео, которое демонстрирует возможности SuperBoundary при построении контуров среди объектов расположенных на чертеже с большими зазорами друг по отношению к другу:



Как видно из видео, самое главное при построении подобных контуров это - правильное указание величины допуска. При этом необходимо помнить, что все примитивы, размер которых меньше заданной величины допуска будут пренебрегаться программой и приравниваться к точечным объектам. Таким образом произойдёт "загрубление" чертежа.
Поэтому желательно стремиться к умеренной минимизации значения допуска во избежание утраты малых элементов, учитываемых при построении контура.

9
Разместил новое видео, которое демонстрирует возможности создания внешнего контура чертежа средствами SuperBoundary:



Собственно это есть "классический" метод, при помощи которого, используя стандартную команду _BOUNDARY (_BPOLY) в AutoCAD можно "попытаться" построить контуры чертежей. Классичность этого метода заключается в предварительном построении ограничивающего прямоугольника вокруг фрагментов чертежа, для которых мы планируем построить внешние контуры, с последующим указанием точки в произвольной пустой области между фрагментами и прямоугольником.

Добавлю небольшое пояснение... Как вы, друзья, сами понимаете такие "попытки" построить внешний контур именно этого чертежа с помощью BPOLY ни к чему не приведут (вернее они приведут исключительно к зависанию этой самой BPOLY даже при работе на последних версиях AutoCAD). Иными словами BPOLY "захлебнётся" уже на первых секундах построения. И это понятно, ибо примитивов в данном чертеже более десятка тысяч!
Тем не менее, как вы видите из видео, SuperBoundary прекрасно справляется с поставленной задачей, расходуя на анализ чертежа менее пяти секунд!

Резюмируя вышесказанное хочется процитировать одного моего западноевропейского приятеля, который вволю "накувыркавшись" с BPOLY заявил: BLOODY COMMAND! Как говориться добавить нечего... :)

10
Разместил новую версию программы SuperBoundary v.1.0.1.31. Была добавлена опциональная возможность включения/выключения оптимизации (прополки) вершин результирующих контуров полилиний:



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

P.S.
Не тестировал на платформе x86, в связи с отсутствием таковой возможности. У кого таковая возможность есть просьба, опять же по-возможности, отписаться о результатах теста.

11
Добавил новое видео демонстрирующее производительность программы в плане обнаружения и построения замкнутых областей на достаточно "насыщенном чертеже":



В качестве чертежа использовал один из моих любимых паровозиков скачанного из свободного источника. Сам чертёж состоит из более чем 16000 примитивов, а в результате генерации программа строит более 9000 замкнутых областей за менее чем 5 секунд.
В качестве рабочей платформы использовал AutoCAD 2017, процессор Core i5.

12
General Discussion / New version of SuperBoundary v.1.0.1.30
« on: January 18, 2017, 09:38:20 PM »
I have released new version of SuperBoundary v.1.0.1.30. The following work has been done:

- A critical error has been fixed. This error occured when using the program with a large value of the tolerance factor.

- The program has been carefully tested in CIVIL 3D environment. The detected errors were fixed.

- The program settings have been extended. In particular, the ability of selecting layer has been added. The option of selecting current layer and current color was added too.


- The list of supported objects has been extended. The following objects were added:
   Multilines;
   Multipolygons;
   Regions;
   Tables;
   
- Added support for the following entities specific to CIVIL 3D:
   Parcel Segment;
   Featured Line;
   Alignment;
   Tin Surface;

13
Разместил новую версию программы SuperBoundary v.1.0.1.30. Было устранено и добавлено:
- Устранена критическая ошибка при работе с большим значением коэффициента допуска.

- Тщательно протестирована работа программы в CIVIL 3D, выявлено и устранено некоторое количество ошибок при работе в этой среде.

- Расширены настройки программы. В частности добавлена возможность выбора слоя, в котором будут создаваться полилинии. Добавлена опция выбора текущего слоя и текущего цвета.



- Расширен список поддерживаемых программой примитивов. Добавлены следующие примитивы:
   Мультилинии (MLINE);
   Мультиполигоны (MPOLYGON);
   Регионы (REGION);
   Таблицы (TABLE);

- Добавлена поддержка следующих примитивов, характерных для CIVIL 3D:
   Parcel Segment;
   Featured Line;
   Alignment;
   Tin Surface;

Pages: [1]