Recent Posts

Pages: 1 ... 8 9 [10]
91
К предыдущему:
В режиме Создать все для всех блоков будут созданы отдельные штриховки/контуры. Какой в них смысл, кроме достаточно редких случаев? Пользоваться ими неудобно. Признака для выделения именно таких штриховок/контуров нет. Разве что площадь? У каждого описания блока она своя. И т.д.
92
Таки не забыть бы об опциональности учета блоков.
Без блоков, очевидно, делаться будет еще быстрее. И блоки в случае создания контуров, по-моему, вообще учитывать не нужно.
Кстати, пришло в голову сейчас, что и со штриховками-заливками блоки учитывать не особо-то и нужно. Или вообще не нужно. Если блоки без масок внутри, то, значит, их вырезать из штриховок-заливок не нужно. Если блоки со своими масками, то просто положить их сверху.
То же и с однострочными текстами (под многострочными можно свой фон просто включить). Если уж нужно, то можно маски с помощью Express Tools сделать. Такие тексты с масками сразу в группы объединены - легче сдвигать, поворачивать и т.п.
Но далеко не всегда и нужно вокруг текстов вырезать заливки-штриховки. Опять-таки, насколько широко обрезать относительно текстов?
Да и после вырезания блоков и/или текстов нельзя по штриховкам-заливкам подсчитывать правильно площадь; при сдвигании-разворотах блоков/текстов нужно сдвигать-разворачивать и заливки-штриховки или их созданный контур.
Т.е. сделать бы учет блоков опциональным, и по-умолчанияю выключенным.
93
В данном посте рассматривается решение задачи обнаружения и построения контуров всех замкнутых областей сложного (насыщенного) чертежа с использованием плагина 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 МБ.
94
До меня дошло: общий контур с отверстиями и отдельно контуры самих отверстий.
С этим все в порядке!
95
... Они создаются дважды - и в составе группы с общим их контуром, и еще и для каждого отверстия.
Если вы говорите про режим BUILD ALL - то это естественно: ведь программа условно "тыкает" в область каждого контура. И если у Вас островок является простым отверстием - то такой "эффект" неизбежен. Если же и островок у вас "комплексный" т.е. состоящий из подостровков или разделённый на несколько частей - то программа в таком режиме пробежится по каждому из них, предварително создав внешний контур "комплексного" островка.
В случае если у Вас в чертеже много подобных простых островков - просто отключайте опцию "Решение островков".
96
Сейчас в этой новой версии при создании отверстий ("островов") создаются лишние их контуры. Они создаются дважды - и в составе группы с общим их контуром, и еще и для каждого отверстия.
97
Разместил новую версию программы SuperBoundary v.1.0.1.40.
Перечень обновлений:
1. Исправлена некорректность работы программы при генерации контуров с внутренними островками, образованными двумя и более совпадающими окружностями.

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

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


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


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


Помимо сообщения об успешном/неуспешном создании контура вывоится информация о его результирующей площади и количестве обнаруженных островков. При этом отображаемое значение площади содержит в себе площадь родительского контура за вычетом площади всех островков (в случае их наличия).
98
...и штатная BOUNDARY штриховки не учитывает.
99
Мне кажется подобной задачей должна заниматься отдельная программа (тем более Вы утверждаете, что она уже есть). Я так понимаю, что отсутствие контура у штиховки - это в какой-то степени форс-мажор (контур либо утратился под воздействием "внешних факторов", либо намеренно был удалён пользователем).

Теперь представьте себе ситуацию, когда в чертеже имеется масса штриховок где лишь у некоторых отсутствую контуры. Достраивание контуров ко всем штриховкам отразится (может и не столь существенно) на работе программы. Ведь контуры будут достроены и к штриховкам, у которых с контурами всё в порядке. Т.е. программе надо будет потратить дополнительное машинное время на построение и удаление дубликатов (т.е. взаимно перекрываемых примитивов) образующих контуры. А оно нам надо? По-моему нет...
100
Может быть создать штриховку без контура нельзя, но после этого можно его утратить.  :)  Регулярно встречается вопрос, как восстанавливать контуры штриховок. И фирменные средства для их восстановления тоже есть...
Вообще-то про штриховки было предположение. У меня за их учет 60х40 или даже 50х50.
Pages: 1 ... 8 9 [10]