|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Регистрация: 24.03.2009
Москва
Сообщений: 223
|
Не силен в зацикливании бондари, но еси это возможно думаю достаточно будет указать достаточно маленький шаг, тогда в результате будет получено очень много дублей одних и тех же областей которые можно будет убить Overkill-лом. А чтоб не было проблем с бондари всегда рабочую область обвожу прямоугольником тогда и нот фаундов не бывает
|
|||
![]() |
|
||||
- Регистрация: 24.07.2005
Москва
Сообщений: 1,335
|
1) запрашиваем ограничивающую область
2) делаем для нее bounding_box и делаем массив точек с приращением шага, который заполняет bounding_box 3) делаем для этих точек проверку на принадлежность ограничивающей области и удаляем все что выходит за пределы. 4) далее ищем функцию аналог boundary - а то тут какие-то траблы насчет видимой области и т.п. высказываются 5) получаем кучу областей в виде полилиний списки точек которых сравниваем на уникальность, удаляем не нужные 6) строим полилинии по оставшимся спискам |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Цитата:
Sleekka написал что-то правдоподобное. А попробуй-ка применить твой алгоритм к простому прикрепленному здесь примеру. А уж потом к континууму, состоящему более, чем из 300 пустот, произвольно расположенных. Кстати, не мешало бы посмотреть и такой пример. Последний раз редактировалось Profan, 24.03.2009 в 14:21. |
|||
![]() |
|
||||
- Регистрация: 24.07.2005
Москва
Сообщений: 1,335
|
Да некогда мне сейчас баловаться - просто я знаю, что если бы у меня был реальный проект по автоматизации, то я бы ее решил, примерно так (ну можно кое-чего оптимизировать я понимаю к чему вы клоните говоря про 300 пустот - опыт какой-никакой имеется).
Интересно бы еще автор темы отписался из какой области эта задача и что решается этим? может быть это деталировка каких либо выкроек и это основной процесс вашего производства? |
|||
![]() |
|
||||
Регистрация: 23.03.2009
Сообщений: 14
|
Это из области аппликации. Необходимо, например, изготовить мозаичное панно и быстро узнать из скольких кусочков оно состоит, ну и заодно узнать какой путь необходимо пройти ножу плоттера.
Я насчитал вручную 112 областей ![]() |
|||
![]() |
|
||||
Регистрация: 23.03.2009
Сообщений: 14
|
Да я видел его посты, но там все как-то очень сложно. У меня все гораздо скромнее и цель получить только цифру-количество областей, а не автоматизировать работу целого отдела в случае паркета.
|
|||
![]() |
|
||||
- Регистрация: 24.07.2005
Москва
Сообщений: 1,335
|
Во-первых на boundary мир клином не сошелся, а во-вторых возьмите это http://forum.dwg.ru/showthread.php?t=18696 - сначала обработайте и boundary будет работать лучше.
|
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Может это подойдет (опубликовал CHEN QING JUN )
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Нет, неоднозначно работает эта программа. Неправильно заданное значение "the minimum distance" приводит к ошибке "Point is outside of boundary" (проверено на приложенном здесь файле primer2.dwg). В русской версии AutoCAD эта программа вообще не работает, автор попросту забыл во многих местах поставить "_" перед опциями команд.
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Честно - я попытался проанализировать код и методику работы. Ничего не понял кроме одного: написано достаточно криво. Вроде на theswamp было объяснение, да и на домашней странице тоже - но я что-то до логики "не допер"
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
идущий по граблям Регистрация: 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. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
совсем запутался в "Атрибутах" | 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 |