dwg.ru forum rss xml
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > LISP. Пересечения плоскости и линий

LISP. Пересечения плоскости и линий

Версия для печати
 
Ответ
Опции темы Поиск в этой теме
Непрочитано 05.09.2011, 09:38 #1
LISP. Пересечения плоскости и линий
LastGraff
 
Томск
Регистрация: 13.07.2011
Сообщений: 81

LastGraff вне форума Вставить имя

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

Заранее благодарен за помощь.
Просмотров: 3401
 
Непрочитано 05.09.2011, 10:08
#2
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,509
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для VVA с помощью Skype™


Вся геометрия здесь [Challenge] intersection of lines and planes
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 05.09.2011, 11:07
#3
LastGraff


 
Регистрация: 13.07.2011
Томск
Сообщений: 81


очень интересный подход, только он применим для пересечения линии (одной и прямой) с прямой плоскостью, к сожалению у меня порядка 2000 полилиний по 10-15 сегментов в каждой и плоскость для пересечения тоже состоит из нескольких (порядка 5-10) мне пока кроме полного перебора в голову ничего не приходит, VVA, может поможете еще советом, за предыдущий - очень благодарен
LastGraff вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 05.09.2011, 11:20
#4
Кулик Алексей aka kpblc
Moderator

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


Как вариант: http://www.cadtutor.net/forum/showth...6521#post56521 . Я там несколько кодов рисовал, поковыряй - может, чего и пригодится (если я верно понял задачу, конечно).
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 05.09.2011, 11:47
#5
LastGraff


 
Регистрация: 13.07.2011
Томск
Сообщений: 81


Спасибо, пытаюсь разобраться, хотя дается это мне с трудом... пока даже не могу до конца понять что в целом делает qp1.
LastGraff вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 05.09.2011, 12:16
#6
Кулик Алексей aka kpblc
Moderator

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


Основная идея проста: все нужные примитивы проецируются на плоскость полилинии, получаем точки пересечения, потом примитивы обратно и получаем расстояние от вычисленной точки до примитива. Это и будет высота расположения примитива над полилинией в указанной точке. А дальше строишь все чего хочется.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 05.09.2011, 13:33
#7
LastGraff


 
Регистрация: 13.07.2011
Томск
Сообщений: 81


Алексей, вот пример входных данных (белая линия - линия для сечения, рыжие - изолинии, с которыми и ищем пересечения) просто думал изначально построить поверхность по изолиниям, но это пока совсем не получается (цивил с этим справлялся, а вот акад как-то не очень) а потом получить линию пересечения двух поверхностей. Поэтому и решил, что поверхность надо строить только одну, или даже ни одной. Для построения этой линии и думаю найти пересечения поверхности с плиниями или сплайнами, получить эти точки и по ним построить 3д плинию.
Вложения
Тип файла: dwg
DWG 2007
surf.dwg (1.31 Мб, 1710 просмотров)
LastGraff вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 04.02.2013, 23:42
#8
obojenya


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


Скажите пожалуйста вы нашли ответ на ваш вопрос, просто у меня стоит подобная задача и хотелось бы узнать как вы ее решили? заранее спасибо)
obojenya вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 06.02.2013, 06:41
#9
LastGraff


 
Регистрация: 13.07.2011
Томск
Сообщений: 81


воспользовался советом Алексея... Все лини в 3D перенес на плоскость, где Z=0, нашел пересечения, а потом из каждого пересечения в проверил пересечение с реальной 3D линией и нашел для каждого координату Z, иначе не получилось.
LastGraff вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 06.02.2013, 08:54
#10
Oleg T


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


Не знаю как в AutoCAD, но в BricsCAD по этим точкам строится 3-м полилиния с использованием привязки "Мнимое пересечение".
Oleg T вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 04.07.2017, 10:09
#11
tujn08


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


Приветствую.
Подобная задача у меня:

есть полилиния. Надо найти пересечения с горизонталью проходящей через координаты Y. Все в двухмерке.
tujn08 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 04.07.2017, 10:23
#12
Кулик Алексей aka kpblc
Moderator

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


inters, vla-intersectwith, и т.п. Ну или математика.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 04.07.2017, 11:31
#13
Vassa


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


Можно выдавить полилинию (ту, что на чертеже черная), получив "стенку", и по ней обрезать (если не жалко) "рыжие". Я пробовал с Вашим чертежом - получается. Автокад 2016.
__________________
В действительности все иначе, чем на самом деле.
(Антуан де Сент-Экзюпери)
Vassa вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 04.07.2017, 12:17
#14
tujn08


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
inters, vla-intersectwith, и т.п. Ну или математика.
да я смотрел это, но надо без создания графических объектов.
tujn08 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 04.07.2017, 12:39
#15
Кулик Алексей aka kpblc
Moderator

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


Ну раз так, то составляем уравнения для каждого сегмента полилинии (они же могут быть дуговые), и находим их корни. Проверяем - принадлежит ли точка полилинии и принадлежит ли она указанному сегменту. Весьма муторное занятие. Значительно проще создать прямую или луч и через vla-intersectwith найти все пересечения.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 04.07.2017, 12:47
#16
tujn08


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


ММм.. щас что-то в голове наклевывается.

Что я добиваюсь: у меня трасса 40км 1:10000. Я обвел нужную область полилинией (замкнутой), надо эту (кривую) область разбить на видовые экраны вписаные в лист. Плюс подгонять формат листа и распологать рационально с попыткой добавить еще один видовой экран ниже.
Что-то подобное делал с vlax-curve-. Надо вспомнить.
tujn08 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 04.07.2017, 12:52
#17
gumel


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


Давным давно решал задачу по построению изолиний из сетки 3DMesh (вернее по ее составляющим - 3DFace). Видать это было так давно, что уже и не могу вспомнить как заставить работать мое творчество..

Конечно это совсем не то, что требуется автору темы, и не совсем LISP, но вдруг кому нибудь пригодится. Помню как парился вспоминая геометрию одновременно излагая мысли на чуждом для меня языке
Вложения
Тип файла: dvb Slice_3DFace.dvb (51.0 Кб, 1 просмотров)
gumel вне форума вставить имя Обратить внимание модератора на это сообщение  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > LISP. Пересечения плоскости и линий

Инженерные консультации
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Разорвать объекты в точках пересечения. BreakObjects. VVA Готовые программы 97 13.04.2016 10:58
LISP для подсчета суммы длин линий Kostinok LISP 18 26.04.2013 14:56
Как сделать 3D путь из объектов (линий и дуг), нележащих в одной плоскости Ухряб AutoCAD 5 21.01.2010 12:25
деление множества линий в точках пересечения shurup Программирование 4 24.03.2008 15:11
Нужен Lisp для работы с типами линий Gostushev LISP 12 06.07.2005 14:50

|| Главная || Каталог САПР || Тендеры || Публикации || Объявления || Биржа труда || Download || Галерея ||
|| Библиотека || Кунсткамера || Каталог предприятий || Контакты || Файлообменник || Блоги ||


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