|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
13.12.2007, 21:57 | #1 | |
lisp: Длина по полилинии до точки
Регистрация: 13.12.2007
Сообщений: 45
|
||
Просмотров: 10777
|
|
||||
Я бы сначала вычислил сегмент полилинии, наиболее близкий к координатам точки. Точка имеет X, Y, и Z. Узлы полилинии тоже имеют XYZ вот берем X. Еесли X предидущего узла меньше X точки, а X последующего больше, то по X точка лежит между этими двумя узлами. Тоже с Y и Z. Выявлены два узла полилинии и надо определить тип сегмента дуга или прямая. Если дуга, то ищем радиус, центр дуги и взяв за исходную отметку координаты того узла, от которого надо произвести расчет вычисляем длинну дуги.
Ну а остальное просто берем из свойств полилинии (все остальные сегменты). |
||||
|
||||
Все, что я помню, это то, что плоскость образована тремя точками дуги. Центр дуги, один край и другой. Произвольная точка висит над этой плоскостью и надо определить расстояние до плоскости. Потом считается трехугольник, где гипотенуза - радиус дуги (это если точка внутри дуги, то есть расстояние от центра дуги до точки меньше радиуса дуги). Один катет - расстояние от оточки до центра дуги, высота треугольника - расстояние от точки к плоскости образованной дугой и второй катет вычисляется по эти данным. Все это делается черех XYZ и называется тригонометрией. Полистай справочник.
|
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,856
|
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
1. Расстояние от начала полилинии до опеделенной точки
2. vlax-curve-getclosestpointto или vlax-curve-getClosestPointToProjection даст ближайшую точку к полилинии
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Регистрация: 13.12.2007
Сообщений: 45
|
VVA, "vlax-curve-getclosestpointto или vlax-curve-getClosestPointToProjection даст ближайшую точку к полилинии", - это комманды lisp? Сорри за вопрос, уже вижу как у тебя потянулись руки писать : "юзай поиск!" Но все же ответа "да" или "нет" было бы достаточно, желательно с указанием названия буманого источника знаний по знаниям этого уровня. Ибо до сего момента приходилось пользоваться рваной информацией по простейшим функциям с помощью которой не представлялось возможным либо усложнялось до нельзя реализация моей идеи. Хотя для мелочевки хватало
|
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
функции, начинающиеся на vlax-*; vl-*; vla-*; vlr-*; - это функции Visual Lisp, расширения Lisp, загружаемого ф-цией (vl-load-com). Покупай книгу Полещука, общайся на этом форуме и скоро будешь сточить подобные проги так же быстро, как Алексей.
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
1. Набери в командной строке VLIDE
2. В том что откроется нажми Ctrl N 3. Набери/скопируй vlax-curve-getclosestpointto, курсор оставь на этом слове и нажми Ctrl F1, затем кнопочку OK 4. Читай
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Регистрация: 13.12.2007
Сообщений: 45
|
Супермакс, крыс, vva, спасибо за советы. Код Алексея похудел и тут же подрос раз в 5 за сегодня . Идею реализовал, осталось оформление. Походу еще возникнут вопросы но уже мелочевка, очень надеюсь найду на форуме ответы. А если нет то ждите активности в понедельник. За сим откланиваюсь и ухожу с головой выходные
ЗЫ: Полещук рулит! |
|||
|
||||
Регистрация: 21.06.2013
Сообщений: 11
|
Цитата:
Есть полилиния обычная ломаная, с дугами (ось). Есть БЛОК с атрибутами лежащий на этой полилинии либо крайне близкая к ней. Задачи: 1. Найти длину пути от начала полилинии до БАЗОВОЙ ТОЧКИ БЛОКА . 2. В случае если точка "не совсем" на полилинии определить точку пересечения полилинии и перпендикуляра (а если окружность?) опущенного из БАЗОВОЙ ТОЧКИ БЛОКА. 3. вставить оптом найденные значения длин на пересечениях в атрибут соответствующих блоков файл прилагается acad2013 Последний раз редактировалось Ali111, 13.07.2013 в 07:04. |
|||
|
||||
С помощью SSGET.
У выбранных блоков находим точку вставки: DXF код 10 или vla-get-InsertionPoint. От этой точки вставки определяем расстояния вдоль полилинии, используя функции vlax-curve-... Все делать в цикле, на каждой итерации будет обрабатываться только один блок. В таком варианте ничего не перепутается. |
||||
|
||||
Регистрация: 21.06.2013
Сообщений: 11
|
Цитата:
попробую разобрать. и собрать |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Расстояние от начала полилинии до опеделенной точки | bimari | AutoCAD | 42 | 25.03.2021 13:57 |
Координаты точки пересечения line и pline (LISP) | paradoxvaha | LISP | 3 | 10.07.2007 13:04 |
Координаты точки, лежащей на полилинии | Al_Taron | Программирование | 1 | 27.11.2006 09:45 |
Lisp - проблема с получением точки? | Кулик Алексей aka kpblc | LISP | 3 | 08.09.2006 15:14 |
загрузка DOS прог через LISP | Gaa | LISP | 15 | 12.08.2005 19:19 |