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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Точка пересечения двух полилиний, без учета координаты z

Точка пересечения двух полилиний, без учета координаты z

Ответ
Поиск в этой теме
Непрочитано 25.05.2013, 00:32 #1
Точка пересечения двух полилиний, без учета координаты z
Calibration
 
Регистрация: 14.04.2013
Сообщений: 7

Здравствуйте.
Не помню откуда находил вот такую программу по нахождению точек пересечений двух полилиний:
Код:
[Выделить все]
[LISP
(defun intersect (obj1 obj2 / tmp x y)
(setq tmp 
(vlax-variant-value (apply 'vla-intersectwith
(reverse (cons acExtendNone (mapcar 'vlax-ename->vla-object (list obj1 obj2)))))))
(if (> (vlax-safearray-get-u-bound tmp 1) 0)
(vl-remove nil (mapcar '(lambda (z / ret) 
(if y (setq ret (list x y z) x nil y nil) (if x (setq y z) (setq x z))) ret) 
(vlax-safearray->list tmp)))
)
)
[/lisp]
Отличная вещь. Постоянно применяю.
Подскажите, пожалуйста, что нужно переделать в этом коде, чтобы программа не учитывала координату Z? то есть чтобы программа воспринимала все пересекающиеся полилинии, как лежащие в одной плоскости.
Просмотров: 6396
 
Непрочитано 25.05.2013, 09:30
#2
Хмурый


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


а привязка "кажущееся пересечение" не подходит?
Хмурый вне форума  
 
Автор темы   Непрочитано 25.05.2013, 13:26
#3
Calibration


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


эээ. наверное, нет
Calibration вне форума  
 
Непрочитано 25.05.2013, 13:36
#4
Хмурый


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


Цитата:
Сообщение от Calibration Посмотреть сообщение
эээ. наверное, нет
выложи пример и обоснуй
Хмурый вне форума  
 
Автор темы   Непрочитано 25.05.2013, 16:03
#5
Calibration


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


пример, вот.

надо найти точки пересечения черной линии с оранжевыми.
Если значение "уровень" для всех полилиний одинаковый (обычно равен 0), то точки определяются программой intersect, а вот если уровни разные (не пересекаются в трехмерном пространстве) - то нет.
Для моей задачи необходимо, чтобы программа intersect ( или ее аналог) не учитывал координату z, как будто все линии лежат в одной плоскости.
Если это можно выполнить с помощью кажущегося пересечения и программы intersect, то я не против. Только как это сделать?
Calibration вне форума  
 
Непрочитано 25.05.2013, 16:11
#6
Хмурый


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


в AutoCAD'е существует привязка "кажущееся пересечение". По крайней мере, начиная с 2008-ой версии она появилась.
или flatten всем полилиниям из комплекта Express Tools
Ещё существует геометрический калькуллятор и нельзя забывать про его команды ill для нахождения координат точки пересечения линий и ilp для нахождения координат точки пересечения линии с плоскостью. (см. рис. 2)
Миниатюры
Нажмите на изображение для увеличения
Название: SpxImage345.jpg
Просмотров: 451
Размер:	22.0 Кб
ID:	104085  Нажмите на изображение для увеличения
Название: SpxImage346.jpg
Просмотров: 371
Размер:	39.2 Кб
ID:	104086  

Последний раз редактировалось Хмурый, 25.05.2013 в 16:20.
Хмурый вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Точка пересечения двух полилиний, без учета координаты z



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Документация Проектировщику на Torrents DEM Разное 263 03.09.2024 12:25
Как получить точки пересечения двух полилиний? Mozgunov Программирование 42 03.09.2023 09:38
Как найти линию пересечения двух плоскостей в AutoCad. Atlant AutoCAD 1 11.09.2009 12:46
Как найти линию пересечения двух плоскостей в VBA? молод и перспективен Программирование 7 10.07.2009 15:36
Как создать и привязаться к линии пересечения двух граней 3Д тел? BM60 AutoCAD 3 29.02.2008 23:13