|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
14.07.2009, 22:27 | #1 | |
Как получить точки пересечения двух полилиний?
Начинающий проектировщик
Санкт-Петербург
Регистрация: 07.02.2008
Сообщений: 443
|
||
Просмотров: 13918
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,843
|
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,843
|
Юта, я проверял на полилиниях, гарантированно пересекающихся. Работало. Короче, образец в студию.
Victor, а такие "хотелки" уже, как говорится, "за отдельную плату"
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 10.07.2009
Сообщений: 14
|
В файле по точкам, имеющим разную высоту (имитирующим съемку рельефа) построены типа триангуляционные линии (желтым цветом).
Надо проставить точки на пересечениях этих линий и одной из линий белого цвета, по моему выбору. Причем эти точки должны иметь координату Z такую же, как на линиях "triangulate" в местах пересечения. Victor, у блондинок не фейсы, а формы. Это раз. Во-вторых, интерполировать не надо, уже есть программка, спасибо гуру от автокада. И в-третьих, а что, "жаба давит" поделиться кодом, если просят? (прошу принять эти претензии с улыбкой. Типа я совсем не обиделась). Последний раз редактировалось Юта, 15.07.2009 в 10:34. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,843
|
Код проверяет истинное, а не "кажущееся" пересечение. У тебя в файле полилинии лежат на разных уровнях - вот и все. При таких условиях надо предварительно "плющить" чертеж (кстати, для какой системы координат?), вычислять точки пересечений, потом вычислять ближайшую проекцию этой точки на нужную (кстати, как ее определить?) полилинию/кривую и добавлять в результат. Долго, муторно, и без гарантий корректности работы. Подобное я как-то делал на cadtutor.net, но искать и модифицировать сейчас нет возможности.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,843
|
Прааально. В режиме "кажущегося пересечения".
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
То Юта, что-бы сделать то что Вы хотите, надо - написать процедуру нахождения кажущегося пересечения двух линий (аналог inters), но с учетом вектора просмотра, ну или хотя-бы по вектору '(0 0 1) - то есть ограничиться просмотром сверху в мировой системе координат - что вобщем не сложно. После нахождения этой точки ее еще надо спроецировать на линию, пот тем-же вектором просмотра - что тоже в общем не сложно в случае с просмотром сверху '(0 0 1) и плоским рассположением координат линии (z pt1 = z pt2), но с произвольным углом как просмотра, так и линии в пространстве "процедурка" в принципе не очень большая - но на все проверки день убить надо, а так как еще ясно, что после этого еще что-то понадобиться - возиться с этим просто лень. Хотели-же в паралельном посте изучать лисп - вот отличный пример, заодно и пространственное мышление оживите, ну а если, что конкретное не получаеться, либо не понятно как делать - то сюда - подскажем.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Вам понадобяться (как минимум) разобраться с dxf кодами полилиний и 3d face и понять принцип работы (inters...) и (trans...), да и вобще что такое единичный вектор направления.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Начинающий проектировщик Регистрация: 07.02.2008
Санкт-Петербург
Сообщений: 443
|
Алексей, Дмитрий Спасибо за коды. Дмитрий не получилось воспользоваться кодом. Что я неправильно делаю?
Код:
Последний раз редактировалось Mozgunov, 15.07.2009 в 22:19. |
|||
|
||||
Mozgunov,
Код:
Здесь найдешь очень много полезных функций. В том числе и Цитата:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 15.07.2009 в 22:32. |
||||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Тела пересекаются, как нарисовать контур пересечения | BM60 | AutoCAD | 12 | 08.09.2008 11:09 |
координаты вершин выбранной полилинии на VB? как получить | ssv22 | Программирование | 5 | 17.07.2008 00:01 |
как получить путь к сетевому текстовому файлу | Victorovich | Программирование | 3 | 30.06.2008 15:47 |
Объединение двух 3D полилиний | Рyslan | AutoCAD | 12 | 22.05.2008 13:14 |