Как заменить часть полилинии на другую максимально быстро?
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как заменить часть полилинии на другую максимально быстро?

Как заменить часть полилинии на другую максимально быстро?

Ответ
Поиск в этой теме
Непрочитано 31.01.2022, 16:14 #1
Как заменить часть полилинии на другую максимально быстро?
koui
 
Регистрация: 24.01.2017
Сообщений: 125

имеется полилиния А и полилиния В. Полилиния А некорректна, нужно вырезать её часть и заменить на полилинию В.
Тут есть 2 метода, но они оба не особо нравятся.
1. если полилинии А и В простые, то можно просто наложить В на А в нужное место и подкорректировать А.
2. если полилиния А или В сложная, то я вырезаю часть А и делаю СОЕДИНИТЬ.
Казалось бы, второй вариант вполне хорош. но когда таких полилиний очень много, (А1, В1, А2, В2 .... А500, В500), то это превращается в прожигание времени.
Кто-то знает способ лучше? в идеале, выделаешь полилинии, нажимаешь кнопочку и часть полилиний А1,2...500 заменяется на В1,2...500 в том месте, где у них совпадают координаты конточек (или пересекаются).
Просмотров: 2759
 
Непрочитано 31.01.2022, 16:33
#2
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от koui Посмотреть сообщение
Кто-то знает способ лучше? в идеале, выделаешь полилинии, нажимаешь кнопочку и часть полилиний А1,2...500 заменяется на В1,2...500 в том месте, где у них совпадают координаты конточек (или пересекаются).
в штатном функционале акада таких функций нет
Сергей812 вне форума  
 
Автор темы   Непрочитано 01.02.2022, 11:35
#3
koui


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
в штатном функционале акада таких функций нет
это я понял. но вообще, лисп был бы в тему. сейчас понимаю, что очень часто приходится это делать, но каждый раз это занимает слишком много действий. неужели никто ещё не написал такой лисп?
koui вне форума  
 
Непрочитано 01.02.2022, 11:54
#4
Oleg T


 
Регистрация: 27.12.2011
Сообщений: 1,456


Цитата:
Сообщение от koui Посмотреть сообщение
неужели никто ещё не написал такой лисп?
За свои ....цать лет работы в кадах первый раз вижу описание такой проблемы. Вообще непонятно, что это за полилинии такие правильные-неправильные и откуда такое берется.
Ситуация, генпланы, горизонтали????
Возможно, примерчик и помог бы ))
Oleg T вне форума  
 
Автор темы   Непрочитано 01.02.2022, 12:13
#5
koui


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


Цитата:
Сообщение от Oleg T Посмотреть сообщение
За свои ....цать лет работы в кадах первый раз вижу описание такой проблемы. Вообще непонятно, что это за полилинии такие правильные-неправильные и откуда такое берется.
Ситуация, генпланы, горизонтали????
Возможно, примерчик и помог бы ))
самый простой пример - незначительные изменения трассы прокладки кабеля. например, кабель идёт по коридору и заходит в каждое помещение, подключая оборудование. но заказчик хочет, что б в некоторые помещения кабель заходил не из коридора, а из соседнего помещения.

пример2: имеется кадовский чертеж пусть того же генплана поселка. на нём имеется: границы озеленения, границы тротуара, границы автодорог, границы участков. заказчик пожелал изменить изгиб дороги таким образом, что б участки с одной стороны дороги стали больше, чем с другой. следовательно, надо сдвинуть все границы, но только в определенных местах и таким образом, что б все расстояния "между" остались без изменений.
koui вне форума  
 
Непрочитано 01.02.2022, 13:24
#6
Oleg T


 
Регистрация: 27.12.2011
Сообщений: 1,456


Одним лиспиком тут навряд ли обойдешься. В первом случае лучше пользоваться специализированным ПО, по-моему (если бы было)).
Может, хоть как-то поможет облегчить процесс разрыв в точках пересечения :
https://forum.dwg.ru/showthread.php?t=18696

Да, вспомнил: вот здесь
https://forum.dwg.ru/showthread.php?...8&#post1978698
выкладывал свой лисп для замены объектов выбранным (#8)
С целыми полилиниями тоже работает, но для них, естественно, важно направление отрисовки (ищет в списке начальную точку).
То есть порой надо делать реверс (проги для этого тоже есть).
А направление лучше всего видно по типу линии со стрелками, сам порой использую.
Картинки с "Было" и "Стало"
Миниатюры
Нажмите на изображение для увеличения
Название: Сохраненное изображение 2022-2-1_13-37-3.640.jpg
Просмотров: 35
Размер:	18.5 Кб
ID:	244921  Нажмите на изображение для увеличения
Название: Сохраненное изображение 2022-2-1_13-37-23.576.jpg
Просмотров: 34
Размер:	16.3 Кб
ID:	244922  

Последний раз редактировалось Oleg T, 01.02.2022 в 13:38.
Oleg T вне форума  
 
Непрочитано 01.02.2022, 14:49
| 1 #7
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от koui Посмотреть сообщение
лисп был бы в тему. сейчас понимаю, что очень часто приходится это делать, но каждый раз это занимает слишком много действий. неужели никто ещё не написал такой лисп?
в формулировке
Цитата:
Сообщение от koui Посмотреть сообщение
Кто-то знает способ лучше? в идеале, выделаешь полилинии, нажимаешь кнопочку и часть полилиний А1,2...500 заменяется на В1,2...500 в том месте, где у них совпадают координаты конточек (или пересекаются).
это уже лисп с зачатками ИИ)
Сергей812 вне форума  
 
Непрочитано 01.02.2022, 17:45
#8
peshkoff


 
Регистрация: 11.06.2014
Юбутово@Москва
Сообщений: 88


Цитата:
Сообщение от koui Посмотреть сообщение
2. если полилиния А или В сложная, то я вырезаю часть А и делаю СОЕДИНИТЬ.
вбить в кнопку последовательность команд.
peshkoff вне форума  
 
Непрочитано 01.02.2022, 19:25
#9
BURAN988

Пенсионер
 
Регистрация: 14.12.2014
Самаритянин
Сообщений: 2,949
Отправить сообщение для BURAN988 с помощью Skype™


Цитата:
Сообщение от koui Посмотреть сообщение
Кто-то знает способ лучше?
Лучше это делается в WinELSO (погугли)
__________________
Человек может всё, пока не начинает что-то делать...
BURAN988 на форуме  
 
Автор темы   Непрочитано 02.02.2022, 12:00
#10
koui


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


Цитата:
Сообщение от BURAN988 Посмотреть сообщение
Лучше это делается в WinELSO (погугли)
это для электриков, а я ССовец.

----- добавлено через ~3 мин. -----
Цитата:
Сообщение от Сергей812 Посмотреть сообщение
это уже лисп с зачатками ИИ)
и этот ИИ легко описать. находим самые дальние точки пересечения, делаем разрыв в этих местах. нужная вставка будет находится сверху в порядке прорисовки. потому от верхней полилинии удаляем "хвосты", а у нижней - "серединку". ну а дале делаем соединить, ну и защиту от дурака можно сразу, выставить предварительно на уровень 0.

----- добавлено через ~3 мин. -----
Цитата:
Сообщение от Oleg T Посмотреть сообщение
Может, хоть как-то поможет облегчить процесс разрыв в точках пересечения :
думаю, ещё как может!!!!

----- добавлено через ~6 мин. -----
Цитата:
Сообщение от Oleg T Посмотреть сообщение
выкладывал свой лисп для замены объектов выбранным
пользуюсь подобным лиспом, известный под названием "ЗАМЕНА". меняет что угодно на что угодно (хотя в описании написано, что заточен под замену блоков). единственный минус - не сохраняет форматирование начального объекта. например, громкоговорители надо заменить, которые уже повёрнуты на нужный угол, а он зафигачит угол как в образце.
koui вне форума  
 
Непрочитано 02.02.2022, 12:52
#11
peshkoff


 
Регистрация: 11.06.2014
Юбутово@Москва
Сообщений: 88


В какое количество кликов необходимо уложиться?
У меня в 8 получается с кнопкой
^C^C_trim;\\\\_join;last;

А, прочитал идеальный вариант.
ну до него далековато, конечно
Миниатюры
Нажмите на изображение для увеличения
Название: poly_replace.gif
Просмотров: 36
Размер:	1.21 Мб
ID:	244968  
peshkoff вне форума  
 
Непрочитано 02.02.2022, 13:04
#12
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от koui Посмотреть сообщение
и этот ИИ легко описать. находим самые дальние точки пересечения, делаем разрыв в этих местах. нужная вставка будет находится сверху в порядке прорисовки. потому от верхней полилинии удаляем "хвосты", а у нижней - "серединку". ну а дале делаем соединить, ну и защиту от дурака можно сразу, выставить предварительно на уровень 0.
ну полдела сделано - алгоритм готов) А что, направление кабеля только одно у вас? Вообще то он может от исходного положения минимум в четырех направлениях (если брать только частные ортогональные случаи). И как на основе полученного набора полилиний
Цитата:
Сообщение от koui Посмотреть сообщение
выделаешь полилинии, нажимаешь кнопочку и часть полилиний А1,2...500 заменяется на В1,2...500 в том месте,
лисп поймет - что именно и куда переправлять? А на реальном чертеже полилинии-трассы еще и пересекаются многократно, там и человеческий глаз не всегда может определить сразу - что откуда.
Сергей812 вне форума  
 
Автор темы   Непрочитано 02.02.2022, 13:14
#13
koui


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
ну полдела сделано - алгоритм готов) А что, направление кабеля только одно у вас? Вообще то он может от исходного положения минимум в четырех направлениях (если брать только частные ортогональные случаи). И как на основе полученного набора полилиний
не силен в лиспах потому не понимаю про направление полилинии. понятно, что за основу берется "нижняя"полилиния, а на направление верхней вообще плевать.
koui вне форума  
 
Непрочитано 02.02.2022, 13:33
#14
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от koui Посмотреть сообщение
не силен в лиспах потому не понимаю про направление полилинии. понятно, что за основу берется "нижняя"полилиния, а на направление верхней вообще плевать.
на каком основании берется именно нижняя полилиния - новый кабель может вильнуть влево, вправо, вверх, вниз и вообще по диагонали. И каким то чудом без дополнительной информации программа должна определить пары "новый-старый" кабели из набора пользователя. В своем время вообще проще делал - просто по трассе "отрисовывается" до указанной точки кабель по старой трассе и после этой точки передает управление пользователю - рисуй мол дальше куда хочешь. Это не на лиспе - но и на нем можно вполне сделать, имхо.
Сергей812 вне форума  
 
Непрочитано 02.02.2022, 14:01
#15
Oleg T


 
Регистрация: 27.12.2011
Сообщений: 1,456


Цитата:
Сообщение от koui Посмотреть сообщение
единственный минус - не сохраняет форматирование начального объекта. например, громкоговорители надо заменить, которые уже повёрнуты на нужный угол, а он зафигачит угол как в образце.
Заменил тот свой лиспик, был маленький глюк. Теперь блоки поворачивает, как и было задумано. Изначально и слой менялся, но потом я это убрал.
Oleg T вне форума  
 
Автор темы   Непрочитано 03.02.2022, 13:57
#16
koui


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


Цитата:
Сообщение от Oleg T Посмотреть сообщение
Заменил тот свой лиспик, был маленький глюк. Теперь блоки поворачивает, как и было задумано. Изначально и слой менялся, но потом я это убрал.
хорошо бы замену слоя сделать опцией))) но в любом случае, замена слоя не так страшна.
koui вне форума  
 
Непрочитано 04.02.2022, 08:24
#17
Oleg T


 
Регистрация: 27.12.2011
Сообщений: 1,456


Цитата:
Сообщение от koui Посмотреть сообщение
хорошо бы замену слоя сделать опцией)))
Вернул первоначальный вариант, с заменой слоя
Вложения
Тип файла: lsp repl_obj.lsp (1.0 Кб, 6 просмотров)
Oleg T вне форума  
 
Автор темы   Непрочитано 04.02.2022, 13:24
#18
koui


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


Цитата:
Сообщение от Oleg T Посмотреть сообщение
Вернул первоначальный вариант, с заменой слоя
теперь у меня их два на любой вкус, спасибо)))
koui вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как заменить часть полилинии на другую максимально быстро?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Принимает ли на себя часть нагрузки от простенков стена под окном в кирпичной несущей стене? Лариса В Каменные и армокаменные конструкции 67 27.02.2014 10:05
.NET Изобретаем велосипед, или как найти ближайшую вершину полилинии? La Persona .NET 14 05.12.2013 10:56
Как быстро сосчитать количество вершин в полилинии? Творцуха AutoCAD 6 17.09.2013 13:48
Как указать необходимые участки полилинии makxvl Программирование 5 22.03.2013 09:55
выноски к полилинии gizmo_zx Программирование 6 01.03.2010 12:17