Debalance Research Group • Forum

SuperBoundary • Superior replacement for the BOUNDARY (BPOLY) command => SuperBoundary • Русскоязычный форум => Topic started by: Debalance on February 27, 2017, 11:08:27 AM

Title: Новая версия SuperBoundary v.1.0.1.40
Post by: Debalance on February 27, 2017, 11:08:27 AM
Разместил новую версию программы SuperBoundary v.1.0.1.40 (http://superboundary.com/rus/download.html).
Перечень обновлений:
1. Исправлена некорректность работы программы при генерации контуров с внутренними островками, образованными двумя и более совпадающими окружностями.

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

3. В настройках программы добавлен параметр Combine polylines into groups (Объединять полилинии в группы):
(http://img-fotki.yandex.ru/get/93500/105409719.1/0_155bd1_75bf86cb_orig.png)

Данная опция становится доступной после активации функции Island detection (Решение островков). Таким образом все обнаруженные островки-полилинии будут объединяться в группу вместе с содержажей их родительской полилинией. На рисунке ниже показан пример такой группы, в котором родительская полилиния объединена с двумя окружностями-островками:
(http://img-fotki.yandex.ru/get/60881/105409719.1/0_155c55_852cc0f5_orig.png)

4. Добавлен вывод информации о генерируемых контурах в текстовое окно AutoCAD в режиме указания точки:
(http://img-fotki.yandex.ru/get/108697/105409719.1/0_155bd0_86867619_orig.png)

Помимо сообщения об успешном/неуспешном создании контура вывоится информация о его результирующей площади и количестве обнаруженных островков. При этом отображаемое значение площади содержит в себе площадь родительского контура за вычетом площади всех островков (в случае их наличия).
Title: Re: Новая версия SuperBoundary v.1.0.1.40
Post by: АлексЮстасу on February 28, 2017, 05:22:05 PM
Сейчас в этой новой версии при создании отверстий ("островов") создаются лишние их контуры. Они создаются дважды - и в составе группы с общим их контуром, и еще и для каждого отверстия.
Title: Re: Новая версия SuperBoundary v.1.0.1.40
Post by: Debalance on February 28, 2017, 07:25:37 PM
... Они создаются дважды - и в составе группы с общим их контуром, и еще и для каждого отверстия.
Если вы говорите про режим BUILD ALL - то это естественно: ведь программа условно "тыкает" в область каждого контура. И если у Вас островок является простым отверстием - то такой "эффект" неизбежен. Если же и островок у вас "комплексный" т.е. состоящий из подостровков или разделённый на несколько частей - то программа в таком режиме пробежится по каждому из них, предварително создав внешний контур "комплексного" островка.
В случае если у Вас в чертеже много подобных простых островков - просто отключайте опцию "Решение островков".
Title: Re: Новая версия SuperBoundary v.1.0.1.40
Post by: АлексЮстасу on February 28, 2017, 08:14:47 PM
До меня дошло: общий контур с отверстиями и отдельно контуры самих отверстий.
С этим все в порядке!
Title: Re: Новая версия SuperBoundary v.1.0.1.40
Post by: АлексЮстасу on March 08, 2017, 03:47:22 AM
Таки не забыть бы об опциональности учета блоков.
Без блоков, очевидно, делаться будет еще быстрее. И блоки в случае создания контуров, по-моему, вообще учитывать не нужно.
Кстати, пришло в голову сейчас, что и со штриховками-заливками блоки учитывать не особо-то и нужно. Или вообще не нужно. Если блоки без масок внутри, то, значит, их вырезать из штриховок-заливок не нужно. Если блоки со своими масками, то просто положить их сверху.
То же и с однострочными текстами (под многострочными можно свой фон просто включить). Если уж нужно, то можно маски с помощью Express Tools сделать. Такие тексты с масками сразу в группы объединены - легче сдвигать, поворачивать и т.п.
Но далеко не всегда и нужно вокруг текстов вырезать заливки-штриховки. Опять-таки, насколько широко обрезать относительно текстов?
Да и после вырезания блоков и/или текстов нельзя по штриховкам-заливкам подсчитывать правильно площадь; при сдвигании-разворотах блоков/текстов нужно сдвигать-разворачивать и заливки-штриховки или их созданный контур.
Т.е. сделать бы учет блоков опциональным, и по-умолчанияю выключенным.
Title: Re: Новая версия SuperBoundary v.1.0.1.40
Post by: АлексЮстасу on March 08, 2017, 05:04:59 PM
К предыдущему:
В режиме Создать все для всех блоков будут созданы отдельные штриховки/контуры. Какой в них смысл, кроме достаточно редких случаев? Пользоваться ими неудобно. Признака для выделения именно таких штриховок/контуров нет. Разве что площадь? У каждого описания блока она своя. И т.д.
Title: Re: Новая версия SuperBoundary v.1.0.1.40
Post by: Debalance on March 09, 2017, 03:48:51 PM
Вот, например, фрагменте чертежа из предыдущего топика (http://debalance.com/forum/index.php?topic=10.0):

(http://img-fotki.yandex.ru/get/28561/105409719.1/0_15712a_6c7664ab_orig.png)

На нём маленькие кружки - это блоки. Если их игнорировать, то чертёж сильно измениться (ибо кружков много). Это будет хорошо?
Title: Re: Новая версия SuperBoundary v.1.0.1.40
Post by: АлексЮстасу on March 09, 2017, 04:50:03 PM
Ну, да, изменится - не будет этих не нужных практически "кружков". Т.е. в лучшую сторону. :)
Не нужно терять возможность обводить контурами блоки или заливать площади блоков, раз такая уже есть. Но нужно это, по-моему, только в редких экзотических случаях. Т.е. опционально.
Title: Re: Новая версия SuperBoundary v.1.0.1.40
Post by: Debalance on March 09, 2017, 08:59:39 PM
Вы тут давеча сказали:
... Если блоки со своими масками, то просто положить их сверху.
Что такое "маски"? Поясните. Возможно я не всё знаю в Акаде...

Т.е. в лучшую сторону.
Не совсем понимаю Вашу тезу. Если "кружки" это своего рода аппендикс в чертеже, то зачем их вообще наносить? Ибо их много - целая "Палестина"! А ведь это серьёзный труд - нанесение "кружков"!
Title: Re: Новая версия SuperBoundary v.1.0.1.40
Post by: АлексЮстасу on March 09, 2017, 09:20:42 PM
Что такое "маски"?
Маски == маскировка == wipeout. Если люди хотят, чтобы их блоки вырезались из фона, скрывали линии под собой, то внутрь блоков делают нужной площади маски. Чаще бесцветные, т.е. цвет 255.
Не совсем понимаю Вашу тезу. Если "кружки" это своего рода аппендикс в чертеже, то зачем их вообще наносить? Ибо их много - целая "Палестина"! А ведь это серьёзный труд - нанесение "кружков"!
Моя теза все та же - в большинстве случаев создавать контуры/заливки в площадях блоков не нужно. Т.е. нужна опциональность этой возможности. Причем, по умолчанию выключенной.
А на эту не оч. нужную возможность тратится, очевидно, море ресурсов и времени. Может быть на тот тяжелый файл-пример в 60 Мб без учета блоков потребуется не 36, а 6 минут работы? :)

Title: Re: Новая версия SuperBoundary v.1.0.1.40
Post by: Debalance on March 09, 2017, 09:30:18 PM
Маски == маскировка == wipeout...

A, Вайпауты! Ну это грубоватое изделие... Насколько я помню контур вайпаута может состоять только из ломаной линии без скруглений (дуг). Может ли он повторить в точности контур блока? По-моему нет...
Title: Re: Новая версия SuperBoundary v.1.0.1.40
Post by: АлексЮстасу on March 09, 2017, 09:38:07 PM
A, Вайпауты! Ну это грубоватое изделие... Насколько я помню контур вайпаута может состоять только из ломаной линии без скруглений (дуг). Может ли он повторить в точности контур блока? По-моему нет...
Ничего страшного - кому нужно, те делают.
В том тестовом тяжелом файле на 60 Мб есть блоки с масками. Например, 108(1), 213 и пр.
А кто не сделал, тот... Тот пусть пользуется опциональной возможностью. И мучается, выбирая штриховки на таких блоках. Перемещая-вращая такие штриховки вслед за своими блоками.
Да еще и затягивая дыры во внешних штриховках после таких перемещений-вращений.

Title: Re: Новая версия SuperBoundary v.1.0.1.40
Post by: Debalance on March 09, 2017, 10:11:33 PM
В принципе для того, чтобы исключить из выбора (селекшнсета) блоки или какие-либо примитивы можно воспользоваться стандартным Акадовским функционалом "Quick Select". Вот например окно с настройками для исключения блоков:

(http://img-fotki.yandex.ru/get/61248/105409719.1/0_1571bf_32926021_orig.png)

А далее жмём ОК и запускаем SuperBoundary, которая подцепит текущий выбор и спокойно работаем без блоков... Вас не устраивает такой подход?
Title: Re: Новая версия SuperBoundary v.1.0.1.40
Post by: АлексЮстасу on March 10, 2017, 03:20:00 AM
Насколько я помню контур вайпаута может состоять только из ломаной линии без скруглений (дуг). Может ли он повторить в точности контур блока? По-моему нет...
Никто не мешает в блоках использовать в качестве масок вместо вайпаутов штриховки. Мы сначала так и делали, и многие так делали.
В принципе для того, чтобы исключить из выбора (селекшнсета) блоки или какие-либо примитивы можно воспользоваться стандартным Акадовским функционалом "Quick Select". А далее жмём ОК и запускаем SuperBoundary, которая подцепит текущий выбор и спокойно работаем без блоков... Вас не устраивает такой подход?
Можно и так.
Один недостаток в том, что для тяжелых файлов процесс выбора может быть очень долгим - многие минуты и десятки минут. А второй в том, что не самое нужное и целесообразное действие выполняется априори, что будет требовать от пользователей лишних действий, и приводить к регулярным несуразностям. Представьте себе, например, что команда MOVE (любая другая) всегда двигает и блоки. Да, можно предварительно блоки qselect'ом исключать. Но зачем такое надо?

О выборе раньше уже раза два начинали обсуждать. Я все еще надеюсь, что Вы рассмотрите вариант при запуске выполнения программы <Выбрать все> по умолчанию. Чтобы Автокад впустую не загружать этим процессом.
Title: Re: Новая версия SuperBoundary v.1.0.1.40
Post by: АлексЮстасу on June 21, 2017, 05:39:51 PM
Пытался создать внешний контур при возможных больших расстояниях между элементами. Получилась линия, пересекающая линии чертежа, и не захватывающая некоторые объекты.
На скринах созданный контур - белая линия.

В файле много 3д полилиний, и может быть из-за этого?
Title: Re: Новая версия SuperBoundary v.1.0.1.40
Post by: Debalance on June 22, 2017, 08:50:53 AM
Трудно сказать. Надо детально разбираться с чертежом. Возможно заданное значение допуска слишком велико.
Title: Re: Новая версия SuperBoundary v.1.0.1.40
Post by: АлексЮстасу on June 22, 2017, 08:02:58 PM
Да, возможно, что дело именно в большом допуске...
Но даже если допуск велик, то ведь это не дает возможности пересекать создаваемым контуром линии, и не учитывать ряд объектов?
Title: Re: Новая версия SuperBoundary v.1.0.1.40
Post by: Debalance on June 23, 2017, 09:27:30 AM
Но даже если допуск велик, то ведь это не дает возможности пересекать создаваемым контуром линии, и не учитывать ряд объектов?
Это всё в теории. А на практике реализация может быть различной (тем более если мы ставим во главу угла производительность).
На Вашем рисунке (я вижу) величина допуска существенно превышает размер некоторых элементов. В нашем случае программа преобразует все элементы размер которых меньше допуска в точечные объекты. Оптимизирует их расположение и группирует в полигоны (convex hull), размеры которых не превышают двух величин допуска. Дальше полигоны группируются между собой, опять же оптимизируются, объединяются с остальными объектами, после чего формируется финальная замкнутая область.

Итого: чем больше значение величины допуска - тем больше искажение финального контура.