|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
21.09.2010, 15:23 | #1 | |
объединение замкнутых контуров
топограф, технолог
Москва
Регистрация: 24.05.2009
Сообщений: 3,031
|
||
Просмотров: 11190
|
|
||||
|
||||
|
||||
Если есть команда создать из полилиний регионы, то неужто нет команды обратной - из регионов делать полилинии?
_boundary использовать не могу - она гарантированно испортит сложные и большие полигоны (см. http://forum.dwg.ru/showthread.php?t=49256). Да и не очень это удобно - сначала создать границу, потом из под нее выуживать регионы. Еще, конечно, неудобно, что теряются свойства исходных полилиний при создании регионов. |
||||
|
||||
Регистрация: 29.10.2004
СПб
Сообщений: 16,337
|
Цитата:
|
|||
|
||||
Цитата:
Объединять после взрывания - замучаешься искать фрагменты. А потом еще возвращать необходимые свойства - слои, цвета и т.п. Тяжеловато в сумме. Начиная с применения 1. _region, 2. _union, в сумме не хуже ли получится, чем вручную порезать, поудалять общие границы, а потом вручную же объединить? |
||||
|
||||
Регистрация: 17.10.2009
Сообщений: 1,108
|
Цитата:
Свойства полилинии вы потеряете еще в момент создания области а не при взрывании. Часть свойств (например разный цвет) - даже при ручном объединнии. Хуже или нет зависит от объема работы. Если у вас много этих контуров то я бы ручками постарался не делать. Хотя конечно "нет ничего невозможного, если делать это будет кто-то другой". |
|||
|
||||
Регистрация: 29.10.2004
СПб
Сообщений: 16,337
|
АлексЮстасу, посмотри тему Region -> closed polyline
|
|||
|
||||
Цитата:
Не все исходные контуры будут на одном слое. Таких слоев у меня 15-ть. Объединять - да, только одинослойные контуры, но полигоны идут вперемежку. Т.е. замучаешься включать-выключать нужные слои. И контуров много... Хороших, и, главное, разных |
||||
|
||||
Регистрация: 29.10.2004
СПб
Сообщений: 16,337
|
Startrek, BOUNDARY не всегда корректно работает со сложными контурами. В ней где-то зашита точность определения контура. И, бывает, она гадит.
Так что, лучший вариант решения проблемы- программный. Fantomas написал программу, которая расчленяя область с запоминанием объектов, из которых она состояла, и из них собирает замкнутую полилинию. |
|||
|
||||
Цитата:
И углубился как раз в изучение ссылки из #11 и в пробы. Мерси большое! Попробую все уложить по порядку. Был бы у меня еще ToolPack... Fantomas - это кто? VVA или Smirnoff? Startrek - чтобы не было иллюзий по поводу BOUNDARY, см., например, http://forum.dwg.ru/showthread.php?t=49256 |
||||
|
||||
AutoCAD/AutoLISP Регистрация: 27.08.2003
Seattle/USA
Сообщений: 1,133
|
Хмурый,АлексЮстасу, согласен но не совсем... в сложных случаях создаем регион (даже SPLINE) сливаем с другим (другими) ДЕЛАЕМ HATCH, удаляем региом, двойной клик по HATCH и воссоздаем BOUNDARY, убираем HATCH.
А то ведь не всегда програмка под рукой, да и Fantomas из када ушел
__________________
Сквозь тернии к звездам.... и обратно :yes: |
|||
|
||||
Пока получаются следующие слабые места:
1. сейчас нужно сделать пять действий (регион, юнион, конвертация в полилинии, удаление регионов, возвращение положенных свойств). 2. регионы нужно вытаскивать из-под полилиний. 3. нужно запоминать исходные свойства полилиний. Ручная альтернатива: действий как бы четыре (разрезать общую границу, удаление остатков общих границ, сшивание в одну полилинию, присвоение Closed). При этом свойства полилиний сохраняются. Так что пока фифти-фифти. Конечно, лучше всего была бы программка типа _union, но для полилиний. Startrek - HATCH использует как раз команду BOUNDARY. И новая граница с помощью BOUNDARY в каких-то случаях окажется неточной, в каких-то неполной, а в каких-то ждать ее придется неизвестно сколько часов. |
||||
|
||||
|
||||
|
||||
В результате действия тех программ будут созданы полилинии, повторяющие границы регионов. Первая программа {Smirnoff} действует только для одного указанного региона. Два или несколько указать нельзя. Вторая программа {VVA} сразу сработает для всех регионов файла. И после первой, и после второй программы сами регионы сохранятся.
|
||||
|
||||
Гораздо проще и правильнее было бы сразу написать саму _union для полилиний. Повторить внешнюю границу двух полилиний новой замкнутой полилинией. Присвоить ей свойства первой из них (как при join). А исходные полилинии удалить (или опционально сохранить).
|
||||
|
||||
Регистрация: 29.10.2004
СПб
Сообщений: 16,337
|
ну вот и обратись к VVA с этой темой.
Последний раз редактировалось Хмурый, 21.09.2010 в 21:53. |
|||
|
||||
Мне как-то неудобно обращаться здесь с просьбой к человеку, если он сам не счел нужным поучаствовать.
Startrek - чем поможет в данном случае MPEDIT? Пытался написать макрос для цепочки регион-юнион-взорвать-объединить, но поле региона почему-то прекращается его действие. Я совсем не опытен в макросах, может быть поможете? ^C^C_.region;\_.union;\ Последний раз редактировалось АлексЮстасу, 27.09.2010 в 17:26. |
||||
|
||||
Есть ли новости?
Не появилось ли программ, позволяющих сшивать/сводить замкнутые полилинии друг с другом, чтобы образовывались единые полигоны (сшивать) или смыкались друг с другом (сводить). Т.е. задачу хотелось бы решить расширенно - с учетом возможных наложений или разрывов контуров. Т.е. с указанием допуска для обрабатываемых разрывов-наложений. |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
АлексЮстасу, А этот вариант пробовал? Там в #27 есть последний вариант
PS. Вспомнил, что размещал еще на болоте Там много интересного добавили PPS Как вариант (опять же из болота) Связка SelectionSet Bounding Box и ECO
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 27.04.2013 в 14:33. Причина: поправил ссылки |
|||
|
||||
Цитата:
А картинка обнадеживающая |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
АлексЮстасу, Ссылки поправил
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Цитата:
|
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
АлексЮстасу, это полезно
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Цитата:
Начертил простейшие контуры. 2012. Попробовал этот вариант из #27. Пишет: Цитата:
А на болоте еще тогда не смог зарегистрироваться. Но стеснялся признаться |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Вот вариант с болота. Я правда его не тестировал
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Этот вариант сработал.
Но создалась одна внешняя граница (объединились контуры) только для множества прямоугольных полигонов. А второе множество осталось как было. Гипотеза: программа завершает работу после обработки одного множества смыкающихся контуров. Допустим, первого по порядку появления в файле. И допуск не несомкнутость контуров в программе не предусмотрен? |
||||
|
||||
Регистрация: 10.07.2012
Сообщений: 35
|
Цитата:
|
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Оставлю ссылку на стороннюю разработку SuperBoundary и TotalBoundary от Debalance Research Group
TotalBoundary SuperBoundary
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Регистрация: 20.04.2011
Сообщений: 402
|
Вот же, есть у Lee Mac'а: http://www.lee-mac.com/outlineobjects.html
Анимация: http://www.lee-mac.com/lisp/gifs/outlineobjects.gif upd. Исходные объекты это не обязательно замкнутый контур. Могут быть линии, блоки и т.п. Похоже что алгоритм работает с долей погрешности (см. _boundary) Последний раз редактировалось gumel, 25.10.2022 в 09:05. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
заполнение контуров условными знаками | АлексЮстасу | AutoCAD | 34 | 03.01.2024 14:13 |
Excel: объединение ячеек по столбцам | kp+ | Прочее. Программное обеспечение | 26 | 16.12.2022 10:19 |
Объединение перемещений Лира 9.6 (ферма и сендвич-панель) | РастОК | Лира / Лира-САПР | 7 | 06.07.2010 10:26 |
Чертеж в 3В. объединение детали | Dimmitriy | AutoCAD | 15 | 13.01.2010 10:55 |
Для чего задается объединение перемещений в ПК Лира? | Alexsus | Лира / Лира-САПР | 30 | 27.10.2009 10:35 |