Recent Posts

Pages: 1 ... 8 9 [10]
91
Насчет островков - хорошо бы обнаруженные островки сразу со своим общим внешним контуром объединять в группу. Чтобы появилась и была и зрительно видна их логическая связь.
Имеется ввиду объединение в группу всех островков принадлежащих одному владельцу? Не приведёт ли это к некоторому неудобству при дальнейшем редактировании островков? Ведь потребуется "разгруппирование"...
92
Насчет островков - хорошо бы обнаруженные островки сразу со своим общим внешним контуром объединять в группу. Чтобы появилась и была и зрительно видна их логическая связь.

Продолжение по поводу блоков. (Или лучше в теме предыдущей версии, где начали?).
Если бы сделать создание внешних контуров блоков опциональным, то вроде бы ничего не теряется? А пользоваться было бы удобнее.
93
Вроде бы все контуры при отключенной Оптимизировать контуры строятся во всех подробностях.  :)
94
Разместил новую версию программы SuperBoundary v.1.0.1.31. Была добавлена опциональная возможность включения/выключения оптимизации (прополки) вершин результирующих контуров полилиний:



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

P.S.
Не тестировал на платформе x86, в связи с отсутствием таковой возможности. У кого таковая возможность есть просьба, опять же по-возможности, отписаться о результатах теста.
95
Добавил новое видео демонстрирующее производительность программы в плане обнаружения и построения замкнутых областей на достаточно "насыщенном чертеже":



В качестве чертежа использовал один из моих любимых паровозиков скачанного из свободного источника. Сам чертёж состоит из более чем 16000 примитивов, а в результате генерации программа строит более 9000 замкнутых областей за менее чем 5 секунд.
В качестве рабочей платформы использовал AutoCAD 2017, процессор Core i5.
96
SuperBoundary • General Discussion / New version of SuperBoundary v.1.0.1.30
« Last post by Debalance 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;
97
Заодно и примеры для крайних случаев - образование для узких треугольников "полигонов" в одну линию.
Да, вырождение присутствует - факт. Я вовсе не идеализирую оптимизацию... давайте обсуждать эту тему. Но не являются ли подобные построение таких "синтетических объектов" умозрительными экспериментами поиска слабых мест программы? Не оторваны ли эти "ленты Мёбиуса" от жизни?
98
По типу локализации все плоские геометрические объекты делятся на площадные, линейные и точечные.
Интересно...!

Блоки суть точечные объекты, т.к. геометрически характеризуются одной точкой, точкой вставки. Точечные объекты никак не могут определять границы площадных.
По поводу блоков - здесь два момента:
1. Блок - это запись в базе данных чертежа, которая содержит какую-то совокупность примитивов. Собственно говоря все примитивы чертежа принадлежат тому или иному блоку. Даже "свободные" объекты пространства MODEL_SPACE принадлежат одноимённому блоку, только вставить куда-либо вы его не сможете.
2. Вставка блока (Block Reference) - это примитив обладающий определёнными свойствами (масштабом, углом поворота и т.п.), в том числе и соответствующей точкой вставки. Именно этот примитив (видимо) Вы и называете "точечным объектом".
Насколько я понимаю основное назначение блока - облегчить разработчику создание чертежа, особенно там где количество повторяющихся элементов велико. Другое сопутствующее достоинство блока - это уменьшение размера чертежа (иногда правильное применение вставок блоков может существенно сократить его объём).

Что внутри блока - вопрос совсем другой.
Ну почему же? Если блок (или блоки) гармонично дополняет "площадной объект"? Таким образом формируется "комплексный площадной объект". Ну вот пожалуйста хотя бы и пример:

Как видно на примере чертёж состоит из двух вставок одного блока (жёлтые прямоугольники) и двух соединяющих их полилиний. Вместе они образуют весьма неплохой "комплексный площадной объект". Если на данном примере блоки не анализировать с точки зрения построения замкнутых областей, то никаких областей мы не обнаружим ибо контур будет разомкнутым.

Если рассматривать возможность разбивания блока...
Зачем разбивать-то? Как-то это моветон...

Если же стоит задача обнаружения точных габаритов содержания блоков...
Нет... так задача не стоит. У нас - комплексный объект (см. пример выше).

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

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

Заодно и примеры для крайних случаев - образование для узких треугольников "полигонов" в одну линию. Образование выпуклых полигонов или "полигонов"-линий в зависимости от их площадей - см. узкие треугольники. В этих треугольниках изменялась только длинная сторона. Отклонение вершины от длинной стороны одинаковое.
100
Если целью использования программы является создание контуров площадных объектов, то блоки не могут участвовать в создании контуров.
Давайте начнём с догматов: что есть "площадной объект" и почему, например, внутри блоков не может быть "площадных объектов"? Я так понимаю, что в качестве блока может быть что угодно... иными словами блок внутри себя может содержать какой угодно объект. Или я не прав?
Давайте догматы. По типу локализации все плоские геометрические объекты делятся на площадные, линейные и точечные. Блоки суть точечные объекты, т.к. геометрически характеризуются одной точкой, точкой вставки. Точечные объекты никак не могут определять границы площадных.
Что внутри блока - вопрос совсем другой.
Если рассматривать возможность разбивания блока, то ведь после разбивания исчезает этот точечный объект, а появляются иные, его составляющие объекты: площадные/линейные/точечные.
Если для каких-то целей для описания границ площадных объектов использовались блоки (для одинаковых помещений или т.п.), то перед поиском контуров площадных объектов такие блоки естественно разбивать, чтобы получать соответствующие линии границ.
Если же стоит задача обнаружения точных габаритов содержания блоков, то это другая задача, которую и нужно решать отдельно. Пусть и с использованием таких же алгоритмов.
Пример посмотрел. Под указанной на чертеже фиолетовой стрелочкой вижу практически идеально прямую линию. Факт наличия стыковочного узла под ней признаю.
Впрочем если вопрос чрезвычайно важен готов в следующей версии предусмотреть опцию отключения оптимизации контура.
"Практически идеально прямую" - это и есть округление, т.е. искажение. Отклонение узла там 0.0044. Специальный тестовый зубчик на желтой линии 0.0062. Т.е. того же порядка, но он отобразился контуром. Ширина "горлышка" - 0.0058, но тоже не стало препятствием. Хотя оно дает "практически идеально совпадающие вершины".
Сейчас контуры строятся идеально, если не считать этой "оптимизации".
Люди сами налажают. Пусть оптимизациями занимаются специальные программы. Любая программа по-моему должна делать только то, для чего предназначена. И не должна делать ничего сверх.
Pages: 1 ... 8 9 [10]