|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
![]() |
Поиск в этой теме |
![]() |
#1 | |
Востановить взорваные блоки. Создать блоки из одинаковых груп объектов. Задача обратная взрыву блока.
Регистрация: 14.11.2011
Сообщений: 21
|
||
Просмотров: 6470
|
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611
|
Очевидный ответ: или руками или с помощью программы.
И раз уж тема создана в разделе форума, который посвящен программированию, то: Хендлы этих Ваших кружков должны идти подряд, если это действительно взорванные блоки, т.е. выбрав все эти кружки и отсортировав их по возрастанию хендла легко воссоздать взорванные блоки. В чем затруднение не вижу... |
|||
![]() |
|
||||
Регистрация: 14.11.2011
Сообщений: 21
|
На лиспе не програмирую? возможно есть готовое решение, оно должно быть? кружочки привел для примера, на самом деле есть чертеж типа генплана где все блоки взорваны. Что такое хендл понимаю, спасибо за подсказку.
По идее должен быть готовый функционал - выделил повторяющиеся простые групы объектов на чертеже, а тебе команда нашла их все и содала из них блоки. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Boxa, сначала тема была вообще в "Готовых программах".
Ой ли? https://dwg.ru/cse?q=%D0%B2%D0%BE%D1...BE%D0%BA%D0%B8
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611
|
Цитата:
А если серьезно, то по идеи,у заказчика и исполнителя должны быть нормальные отношения, при которых вот такие чертежи не передаются, а заказчик не выбирает для внесения изменений другого исполнителя... |
|||
![]() |
|
||||
Регистрация: 14.11.2011
Сообщений: 21
|
У меня линк не работает. Именно такой поиск через гугл.
По поиску от форума ничего не нашел. Вьідало 2 сртраницьі. https://forum.dwg.ru/search.php?searchid=12624832 |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
doslidnik, по моей ссылке первая же строчка выводит, к примеру, на https://forum.dwg.ru/showthread.php?t=141680
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Она далеко не тривиальная.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 18.11.2019
Сообщений: 1,705
|
Задача в общем случае решения не имеет, так эти три круга могут быть замкнуты в равносторонний треугольник (на каждой стороне по три круга, в углах круги - общие), или может быть 10 кругов в линию на одинаковом расстоянии - как их бить на блоки будет непонятно.
Поэтому, стандартного решения скорее всего нет. |
|||
![]() |
|
||||
Регистрация: 14.11.2011
Сообщений: 21
|
Алгоритм такой.
1)Вьіделил группу повторяющихся объектов из которьіх нужно получить один блок (наши три кружочка подряд мз примера) 2)Команда ищет первьій объект из группьі по чертежу и проверяет на совпадение по (длине, , площади, периметру, цвету, радиусу и т.д.) - находит точно такой объект со смещением без разворота. 3)Относительного найденого объекта ищет со смещением заданньім при вьіделении в пункте 1 другие объектьі и также проверяет на совпадение 4) пункт 3 повторяем по количеству минус 1 вьідельньіх объектов в пункте 1 5)создаем блоки в местах найденньіх в пункте 2 Ограничиваем работу командьі на линии, полилинии, точке, круге. |
|||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
Цитата:
|
|||
![]() |
|
||||
Инженер-строитель Регистрация: 09.07.2010
Санкт-Петербург
Сообщений: 1,994
|
Если блоки расчленили, то появились одинаковые объекты, которые можно заменить на вновь созданный блок. Оставшиеся лишние объекты вычистить руками или с применением средств малой механизации. Может и коряво, но думаю, что сработает
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Кто сказал? Во вложении - пример (и это еще все в одной системе координат!). Слева блоки, справа - они же, но разбитые. Как восстанавливать будем-с?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 14.11.2011
Сообщений: 21
|
Пример не удачен,
1) вьі взорвали сначала блок, а потом еще взорвали полилилинию у некоторьіх. 2)вьі создали только один блок, но потом у некоторьіх изменили масштаб по х и у не пропорционально да еще и развернули. У нас блоки до взрьіва не крутились и не масштабировались. Смотрите вложение. |
|||
![]() |
|
||||
Инженер-строитель Регистрация: 09.07.2010
Санкт-Петербург
Сообщений: 1,994
|
Путем создания набора блоков вместо одного с разными поворотами и масштабными коэффициентами. Я же не утверждал, что мое предложение - панацея. Вариант подойдет для случаев без "фанатизма" с регулярным расположением бывших блоков. Всяко лучше, чем ничего. Тем более, что софт уже имеется. Задача в общем виде конечно круче, но ее еще реализовать нужно.
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Цитата:
Цитата:
ИМХО частный случай. Тут действительно проще всего создать блок руками и руками же его вставлять, чем париться с написанием кода.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611
|
Ваш пример так же не очень удачен, так как очень специфичен и восстановление блоков в Вашем примере легко решить как через последовательность хендлов, так и с помощью алгоритма кластеризации точек с выделением связных компонент, с последующим легким анализом полученных кластеров.
Обсуждать то тут чего, тут код писать нужно и не обязательно на лисп, выбор языков для реализации этой задачи достаточно широк, начиная от VBA и питона и заканчивая плюсами. Вот только кто это делать будет... |
|||
![]() |
|
||||
Проектировщик ВК. LISP-любитель. Регистрация: 15.12.2003
Москва
Сообщений: 1,202
![]() |
doslidnik,
У меня по подписи есть сборник функций, в нем есть одна, которая делает в каком-то смысле то, что вы хотите. Вызывается так: (apel-com '(apel-draw-find_analog_objects)) Работает по габаритам объектов. Чем больше в блоке объектов - тем выше точность. Не учитывает поворот блока. Не учитывает вообще ничего кроме геометрии (слои, цвета и т.п.) сама функция (с листа работать не будет, т.к. нужны библиотечные функции): Код:
__________________
apel.fas Последний раз редактировалось Apelsinov, 20.03.2020 в 17:13. |
|||
![]() |
|
||||
Регистрация: 14.11.2011
Сообщений: 21
|
Ответ поддержки ToolPac
Цитата:
Спасибо за видео. Супер. Именно то что надо. Пишу для таких как я (те хто в танке) Качаем файл apel.fas Загрузили и команда "(apel-com '(apel-draw-find_analog_objects))" Файл имеет дохрена полезньіх функций, есть список ТУТ, но описание нет. А вот и АНАЛОГИЧНАЯ тема https://forum.dwg.ru/showthread.php?t=67242 |
|||
![]() |
|
||||
Регистрация: 14.11.2011
Сообщений: 21
|
Радости нет предела от найденой програмьі НО, вот такие моментьі (там где блоки развернутьі) программа не решает. Если будет когда нибуть реализация такая, напишите пожалуйста в л/с.
Реализация задачи №2 Вот еще реализация такой задачи по аналогу BLOCKIFY в BricsCAD. Видео работьі прораммьі ТУТ Файл vlx под видео или ТУТ Реализация задачи №3 https://www.cadforum.cz/cadforum_en/...ences-tip12036 ----- добавлено через 15 сек. ----- Apelsinov, Последний раз редактировалось doslidnik, 21.03.2020 в 15:25. |
|||
![]() |
|
||||
Регистрация: 21.07.2008
Луцьк
Сообщений: 179
|
первоисточник https://www.theswamp.org/index.php?topic=55186.0
|
|||
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как создать набор из текстовых объектов по части содержимого? | SilvioManuel | AutoCAD | 18 | 27.01.2011 15:05 |
поворот блока в котором два из трёх объектов поворачиваются в другую сторону. | ТР5 | Программирование | 8 | 28.05.2010 23:14 |
AutoCAD 2008, программное удаление объектов RTEXT из состава блока | Кулик Алексей aka kpblc | Программирование | 3 | 28.04.2009 08:48 |
Выделение одинаковых объектов. | Timofeeve | AutoCAD | 11 | 06.03.2009 09:59 |
Вопросы про штриховку, отображение объектов и дин. блоки | zenon | AutoCAD | 9 | 19.05.2006 14:51 |