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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как добавить вершины полилиний на пересечении этих же полилиний?

Как добавить вершины полилиний на пересечении этих же полилиний?

Ответ
Поиск в этой теме
Непрочитано 02.09.2019, 09:49 #1
Как добавить вершины полилиний на пересечении этих же полилиний?
IVaret
 
Регистрация: 21.09.2015
Сообщений: 5

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

Вложения
Тип файла: dwg
DWG 2013
пример.dwg (846.1 Кб, 18 просмотров)

Просмотров: 3349
 
Непрочитано 02.09.2019, 09:57
#2
Кулик Алексей aka kpblc
Moderator

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


Выделить любую вершину или середину сегмента, во всплывающем меню выбрать "добавить новую вершину" - не то?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 02.09.2019, 10:03
#3
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,336


наверное, имеется в виду массовое одновременное добавление вершин
Есть программы, которые в местах пересечений разрывают линии. потом можно их объединить

Последний раз редактировалось Хмурый, 02.09.2019 в 10:13.
Хмурый вне форума  
 
Непрочитано 02.09.2019, 10:54
#4
Oleg T


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


Цитата:
Сообщение от Хмурый Посмотреть сообщение
Есть программы, которые в местах пересечений разрывают линии. потом можно их объединить
breakall.lsp
https://forum.dwg.ru/showthread.php?t=18696
Oleg T вне форума  
 
Автор темы   Непрочитано 02.09.2019, 14:50
#5
IVaret


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


Спасибо всем кто ответил.

Задача часто ставится такая:

нужно на каждом пикете создать точку на линии бровки, кромки, оси дороги, чтоб потом сделать отчет в Excel. В других програмах есть возможность создавать такие точки, а в Автокаде немогу найти быстрого решения. Все танцы с бубнами
IVaret вне форума  
 
Непрочитано 02.09.2019, 15:03
#6
Oleg T


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


Цитата:
Сообщение от IVaret Посмотреть сообщение
Задача часто ставится такая:

нужно на каждом пикете создать точку на линии бровки, кромки, оси дороги, чтоб потом сделать отчет в Excel. В других програмах есть возможность создавать такие точки, а в Автокаде немогу найти быстрого решения. Все танцы с бубнами
Я для своих целей (других) пользуюсь следующим алгоритмом:
1. С помощью программки из ссылки разбиваю ОТРЕЗКИ в точках пересечения.
2. Своим лиспом проставляю точки по полученным отрезкам.
Код:
[Выделить все]
 ;Функция отрисовки точек (point) по конкечным точкам отрезков
;---------------------------------------------------
(defun circle_1 ()
	(setq nab (ssget))
	(setq kol (sslength nab))
	(setq nab1 (ssadd))
	(setq n -1)
	(repeat kol
		(setq n (+ n 1))
		(setq pr (ssname nab n))
		(setq pr_ (cdr (assoc '0 (entget pr))))
		(if (= pr_ "LINE") (ssadd pr nab1))
	)
	(setq nab2 (ssadd))
	(setq kol (sslength nab1))
	(setq n -1)
	(repeat kol
		(setq n (+ n 1))
		(setq pr (ssname nab1 n))
		(setq t1 (cdr (assoc '10 (entget pr))))
		(setq t2 (cdr (assoc '11 (entget pr))))
		(entmake (list '(0 . "POINT") (cons 10 t1)))
		(setq pr (entlast))
		(ssadd pr nab2)
		(entmake (list '(0 . "POINT") (cons 10 t2)))
		(setq pr (entlast))
		(ssadd pr nab2)
	)
	(setq go_ nil)
	(while (/= go_ 1)
		(setq kol (sslength nab2))
		(if (= kol 0)
			(setq go_ 1)
			(progn
				(setq pr (ssname nab2 0))
				(setq t0 (cdr (assoc '10 (entget pr))))
				(ssdel pr nab2)
				(setq n 0)
				(while
					(setq pr (ssname nab2 n))
					(setq ti (cdr (assoc '10 (entget pr))))
					(setq t_i_0 (equal ti t0))
					(if (= t_i_0 T)
						(progn
							(ssdel pr nab2)
							(entdel pr)
						)
						(setq n (+ n 1))
					)
				)
			)
		)
	)
)
Не знаю ничего про точки COGO, но, думаю, можно либо полученные в них преобразовать (опять же программно),
либо сразу их проставить вместо обычных (если можно их изобразить блоками с атрибутами).

Последний раз редактировалось Oleg T, 02.09.2019 в 15:10.
Oleg T вне форума  
 
Непрочитано 03.09.2019, 10:58
#7
Linkshunter

проектирование а/дорог
 
Регистрация: 03.07.2013
СПб
Сообщений: 376


Цитата:
Сообщение от IVaret Посмотреть сообщение
на каждом пикете создать точку
гуглите плотнее
https://forum.dwg.ru/showthread.php?...65#post1108065
http://geodesist.ru/threads/v-perese...-tochku.20398/
и т.д.
Linkshunter вне форума  
 
Непрочитано 10.09.2019, 15:10
#8
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,680


Цитата:
Сообщение от IVaret Посмотреть сообщение
на пересечение полилиний добавить вершины
Bobik.fas wa (written as) c:Add_Vertices_to_Intersection
Миниатюры
Нажмите на изображение для увеличения
Название: Add_Vertices.gif
Просмотров: 97
Размер:	1.81 Мб
ID:	217675  
Вложения
Тип файла: rar Bobik.fas.rar (6.2 Кб, 38 просмотров)
koMon вне форума  
 
Непрочитано 18.09.2019, 21:20
#9
VVA

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


Цитата:
Сообщение от Linkshunter Посмотреть сообщение
И еще до кучи Новые команды для работы с полилинией
Цитата:
PL-VFI -вставка вершин в выбранной полилинии в местах пересечения с
указанными полилиниями, линиями, дугами
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как добавить вершины полилиний на пересечении этих же полилиний?

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как добавить вершину в существующую мультивыноску? kp+ AutoCAD 8 07.06.2018 13:49
Округление координат, полилиний, центров окружностей, блоков MA2 Программирование 44 15.01.2015 15:19
Лисп полилиния захватывает ближайшие точки с высотами и превращает их в вершины Аристарх Северный LISP 2 16.08.2014 11:55
Можно ли при извлечении данных полилиний задать порядок, исходя из координат? Scorpio_Music AutoCAD 14 16.06.2014 12:12
Объединение частично "наложенных" полилиний в одну wluk1958 Программирование 3 07.02.2012 00:55