|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
07.09.2011, 08:03 | #1 | |
LISP. Как найти точку пересечения полилинии и сплайна или другой полилинии?
Томск
Регистрация: 13.07.2011
Сообщений: 81
|
||
Просмотров: 6936
|
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
VxGetInters - Returns all intersection points between two objects
пересечение сплайна с прямыми Как получить точки пересечения двух полилиний? http://forum.dwg.ru/showthread.php?t=38580 Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Цитата:
Но достаточно добавить простейшую программу, реализующую быстрый алгоритм проверки возможных пересечений. Например, проверка пересечения габаритных контейнеров или проверка совпадающих точек. Алгоритм необходимо выбирать изучая типичные чертежи. Такие простые проверки, позволят увеличить скорость на порядки.
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Я здесь кому-то писал программку для проверки наложений объектов (топологий). Если делать каждый к каждому - может получиться архи долго - я брал габаритный контейнер, делал ssget по его границам (все что пересекает и внутри него) - таким образом существенно уменьшая выборку.
p.s. кстати вот она.
__________________
Когда в руках молоток все вокруг кажется гвоздями. Последний раз редактировалось Дима_, 07.09.2011 в 12:37. |
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
То Евгений - Offtop: не спора ради, а для истинны - Вы уверенны (проверяли?). Просто мне кажеться что getboundingbox - на самом деле не вычисляется каждый раз при вызове, а однократно при создании/изменении (ну а самое правильное - отложенным вычислением) - по крайней мере я б сделал именно так. К чему я это - я практически уверен что ssget проверяя ключи в первую очередь проверяет именно через getboundingbox. А т.к. в лиспе мы будем создавать список координат и прогонять каждый примитив через него - (а списки НИКАК не индексируются - только car и cdr), то я вполне допускаю что скомпилированная ssget в данном конкретном случае обгонит autolisp - т.к. сам по себе лисп достаточно медленный. Будет врямя я это проверю - но если Вы проверяли (или есть желание проверить) - отпишитесь пожалуйста.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Цитата:
Очень сильно сомневаюсь. |
||||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Цитата:
p.s. Вот та штриховка http://forum.dwg.ru/showpost.php?p=781485&postcount=3
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
да, я проверял различные варианты - ssget в любых проявлениях очень тормозит программу. Особенно, если используется рамка выбора.
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
|
||||
Регистрация: 13.07.2011
Томск
Сообщений: 81
|
Всем большое спасибо, может кто еще подскажет как вместо сплайна использовать его проекцию на XOY? при учете, что сплайн на заблокированном слое? Пытался искать пересечение с плоскостью, сделанной из первой полилинии - автокад выдал, что данная операция в процессе разработки...
Задача сформировалась из поиска пересечения плоскости и сплайнов, со сплайнами, у которых высота фиксированная вопросов не возникает, а вот с теми, у которых все точки на разных высотах выдается отсутствие пересечений, что логично. просто для проверки я исходную линию поднимаю на нужную высоту... Вот думаю найти пересечение с проекцией и из полученной точки построить вертикаль, и по ее пересечению со сплайном найти искомую точку. (хотя это и велосипед, но иного выхода пока не вижу), проблема еще и в том, чтобы не перемещать исходные сплайны или вернуть их потом на место... Последний раз редактировалось LastGraff, 09.09.2011 в 14:35. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
LISP. Разорвать объекты в точках пересечения. BreakObjects. | VVA | Готовые программы | 110 | 25.02.2022 07:33 |
lisp: Длина по полилинии до точки | vosh | LISP | 19 | 15.07.2013 15:10 |