Boundary, но не совсем - Страница 2
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Boundary, но не совсем

Boundary, но не совсем

Ответ
Поиск в этой теме
Непрочитано 23.03.2009, 11:39
Boundary, но не совсем
Circle
 
Регистрация: 23.03.2009
Сообщений: 14

Приветствую.
Имеею множество линий и дуг которые пересекаясь образуют замкнутые области. Нужно получить контуры этих областей в полилиниях. Неплохо с этим справляется команда boundary, но минус в том что приходится тыкать вручную в каждую область, а если их 100 или больше. Вопрос как можно сделать так чтобы можно было выделять например обычным способом справа налево все сразу , при этом находились бы замкнутые области и обводились полилиниями

Вложения
Тип файла: dwg
DWG 2004
Primer.dwg (31.8 Кб, 5366 просмотров)

Просмотров: 24809
 
Непрочитано 24.03.2009, 14:07
#21
Monolit-aga


 
Регистрация: 24.03.2009
Москва
Сообщений: 223


Не силен в зацикливании бондари, но еси это возможно думаю достаточно будет указать достаточно маленький шаг, тогда в результате будет получено очень много дублей одних и тех же областей которые можно будет убить Overkill-лом. А чтоб не было проблем с бондари всегда рабочую область обвожу прямоугольником тогда и нот фаундов не бывает
Monolit-aga вне форума  
 
Непрочитано 24.03.2009, 14:13
#22
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


1) запрашиваем ограничивающую область
2) делаем для нее bounding_box и делаем массив точек с приращением шага, который заполняет bounding_box
3) делаем для этих точек проверку на принадлежность ограничивающей области и удаляем все что выходит за пределы.
4) далее ищем функцию аналог boundary - а то тут какие-то траблы насчет видимой области и т.п. высказываются
5) получаем кучу областей в виде полилиний списки точек которых сравниваем на уникальность, удаляем не нужные
6) строим полилинии по оставшимся спискам
Sleekka вне форума  
 
Непрочитано 24.03.2009, 14:14
#23
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Цитата:
Сообщение от sasha_lif Посмотреть сообщение
> Profan т.е Вы переживаете, что мы можем не попасть опорной точкой в какую-то область?, так уменьшить дискретность , или что не так?
объясните :
Прикрепленный пример показывает, что регулярности или какой-либо закономерности в распределении пустот нет. А раз так - то извольте ручками поработать.
Sleekka написал что-то правдоподобное. А попробуй-ка применить твой алгоритм к простому прикрепленному здесь примеру.
А уж потом к континууму, состоящему более, чем из 300 пустот, произвольно расположенных. Кстати, не мешало бы посмотреть и такой пример.

Последний раз редактировалось Profan, 24.03.2009 в 14:21.
Profan вне форума  
 
Непрочитано 24.03.2009, 14:37
#24
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


Да некогда мне сейчас баловаться - просто я знаю, что если бы у меня был реальный проект по автоматизации, то я бы ее решил, примерно так (ну можно кое-чего оптимизировать я понимаю к чему вы клоните говоря про 300 пустот - опыт какой-никакой имеется).
Интересно бы еще автор темы отписался из какой области эта задача и что решается этим? может быть это деталировка каких либо выкроек и это основной процесс вашего производства?
Sleekka вне форума  
 
Автор темы   Непрочитано 24.03.2009, 15:08
#25
Circle


 
Регистрация: 23.03.2009
Сообщений: 14


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

Цитата:
Сообщение от Profan Посмотреть сообщение
Кстати, не мешало бы посмотреть и такой пример.
Я насчитал вручную 112 областей
Вложения
Тип файла: dwg
DWG 2004
Primer2.dwg (31.1 Кб, 1065 просмотров)
Circle вне форума  
 
Непрочитано 24.03.2009, 15:21
#26
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


Есть такой Евгений Елпанов, который полностью автоматизировал раскрой паркета - там примерно тоже самое, что и у вас с мозаичным полотном.
Забавно.
Sleekka вне форума  
 
Непрочитано 24.03.2009, 15:30
#27
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Решил я попробовать вручную создать контуры, но заткнулся:
Код:
[Выделить все]
 
Команда: -контур
Укажите внутреннюю точку или [Дополнительные опции]: Выбор всех объектов...
Выбираются все видимые объекты...
Анализ выбранных данных...
Анализ внутренних островков...
Укажите внутреннюю точку или [Дополнительные опции]:
Анализ внутренних островков...
Укажите внутреннюю точку или [Дополнительные опции]:
Анализ внутренних островков...
Укажите внутреннюю точку или [Дополнительные опции]:
Анализ внутренних островков...
Укажите внутреннюю точку или [Дополнительные опции]:
Анализ внутренних островков...
Укажите внутреннюю точку или [Дополнительные опции]:
Анализ внутренних островков...
Укажите внутреннюю точку или [Дополнительные опции]:
Анализ внутренних островков...
Укажите внутреннюю точку или [Дополнительные опции]:
Анализ внутренних островков...
Укажите внутреннюю точку или [Дополнительные опции]:
Анализ внутренних островков...
Укажите внутреннюю точку или [Дополнительные опции]:
Не найден допустимый контур штриховки.
Укажите внутреннюю точку или [Дополнительные опции]:
КОНТУР: создано объектов - 9 полилинии(й)
Команда
А если в программе выскочит такое сообщение?
Profan вне форума  
 
Автор темы   Непрочитано 24.03.2009, 15:41
#28
Circle


 
Регистрация: 23.03.2009
Сообщений: 14


Цитата:
Сообщение от Sleekka Посмотреть сообщение
Есть такой Евгений Елпанов, который полностью автоматизировал раскрой паркета - там примерно тоже самое, что и у вас с мозаичным полотном
Да я видел его посты, но там все как-то очень сложно. У меня все гораздо скромнее и цель получить только цифру-количество областей, а не автоматизировать работу целого отдела в случае паркета.
Circle вне форума  
 
Непрочитано 24.03.2009, 16:06
#29
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Прощелкал я primer2. Это заняло не более 3 минут. Контуры создавались на отдельном слое. Но вот что получилось (это я вынес наружу парочку образованных контуров). Думаю, что такие контуры совсем ни к чему.
Миниатюры
Нажмите на изображение для увеличения
Название: primer2.jpg
Просмотров: 123
Размер:	28.4 Кб
ID:	17814  
Profan вне форума  
 
Автор темы   Непрочитано 24.03.2009, 16:16
#30
Circle


 
Регистрация: 23.03.2009
Сообщений: 14


Цитата:
Сообщение от Profan Посмотреть сообщение
Но вот что получилось
Да не совсем правдоподобно получилось
Я и говорю что зациклить boundary не получится т.к. команда эта очень часто делает так как ей, непонятно почему, хочется.
Circle вне форума  
 
Непрочитано 24.03.2009, 19:02
#31
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


Во-первых на boundary мир клином не сошелся, а во-вторых возьмите это http://forum.dwg.ru/showthread.php?t=18696 - сначала обработайте и boundary будет работать лучше.
Sleekka вне форума  
 
Автор темы   Непрочитано 24.03.2009, 22:28
#32
Circle


 
Регистрация: 23.03.2009
Сообщений: 14


Sleekka Очень дельная программка, спасибо
Circle вне форума  
 
Непрочитано 24.03.2009, 22:49
#33
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Может это подойдет (опубликовал CHEN QING JUN )

Цитата:
Today I post a Lisp in theswamp.org: to find each closed boundary of selected object

http://www.theswamp.org/index.php?topic=10371.0

The code locate here
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 24.03.2009, 23:23
#34
Circle


 
Регистрация: 23.03.2009
Сообщений: 14


VVA
Ура, это именно то, что надо. СПАСИБО, а также автору QJCHENу
Все работает замечательно
Circle вне форума  
 
Непрочитано 25.03.2009, 06:12
#35
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Нет, неоднозначно работает эта программа. Неправильно заданное значение "the minimum distance" приводит к ошибке "Point is outside of boundary" (проверено на приложенном здесь файле primer2.dwg). В русской версии AutoCAD эта программа вообще не работает, автор попросту забыл во многих местах поставить "_" перед опциями команд.
Profan вне форума  
 
Автор темы   Непрочитано 25.03.2009, 10:31
#36
Circle


 
Регистрация: 23.03.2009
Сообщений: 14


У меня все работает, использовал тоже приложенный файл. На предлог "the minimum distance" ставил 1 нашлись все замкнутые области.
Circle вне форума  
 
Непрочитано 25.03.2009, 11:04
#37
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Ну, с единицей получилось, однако очень долго. Подобный пример вручную быстрее прощелкать. Попробовал я растащить контуры и обнаружил в верхнем правом квадранте изуродованный контур...
Profan вне форума  
 
Автор темы   Непрочитано 25.03.2009, 11:14
#38
Circle


 
Регистрация: 23.03.2009
Сообщений: 14


Тэкс рано я порадовался. В 2009 акаде на мощной машине все нормально, а вот в 2006 на слабенькой долго но главное, что много дублекатов и, кстати, тоже нашел в правом верхнем углу изуродованный контур. Вместо 112 оказалось 129 контуров
Circle вне форума  
 
Непрочитано 25.03.2009, 19:50
#39
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406


Честно - я попытался проанализировать код и методику работы. Ничего не понял кроме одного: написано достаточно криво. Вроде на theswamp было объяснение, да и на домашней странице тоже - но я что-то до логики "не допер"
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 17.05.2015, 23:25
#40
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,171


Подниму древнюю тему.
Если кто в курсе, подскажите, не создал ли программерский гений за 6 лет чего-то нового в направлении альтернативы команде boundary.
Как известно, стандартная boundary неудовлетворительно работает при большом количестве деталей, категорически требует видимости всех обрабатываемых примитивов на экране и... достаточно крупного масштаба отображения Как будто каким-то образом использует скриншот
поэтому интересуют решения на базе ARX/.Net без обращения к стандартной команде, свободные от вышеупомянутых недостатков.
Пока нашел TotalBoundary Lite от Debalance, но она решает только "прямую" задачу - поиск и отрисовка общего внешнего контура выбранных примитивов.
Мне же нужно решение "обратной" задачи - поиск контура по заданной внутренней точке. Возможно, это будет сделано в полной платной версии TotalBoundary, если таковая вообще будет. Связаться с автором не удалось, контакты на сайте не указаны
Offtop: http://forum.dwg.ru/forumdisplay.php?f=33 не предлагать

Последний раз редактировалось kp+, 17.05.2015 в 23:40.
kp+ вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Boundary, но не совсем



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
совсем запутался в "Атрибутах" slooter AutoCAD 8 21.10.2010 18:09
Связь результата команды BOUNDARY с масштабом изображения. M_A_X Программирование 15 11.05.2009 11:21
Не делается Boundary для контура из Spline... RasSvet AutoCAD 4 17.01.2009 22:06
команда boundary не работает со сплайнами? Jоhnny AutoCAD 9 14.05.2008 14:32
_xclip. Как clipping boundary сделать с непрямыми участками? k911 AutoCAD 2 21.08.2007 21:35