|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Построение перпендикуляра между двумя полилиниями
Регистрация: 10.12.2008
Сообщений: 122
|
||
Просмотров: 11185
|
|
||||
Регистрация: 10.12.2008
Сообщений: 122
|
Profan, мне надо lisp-приложение написать под этот чертеж, а не чертить в AutoCad-е.
Кто-нибудь, подскажите, пожалуйста как это осуществить или, может быть, у кого-то есть уже готовый lisp на этот вопрос? Последний раз редактировалось Макс_Кунгур, 19.08.2009 в 08:04. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409
|
Макс_Кунгур, "практически" параллельные и параллельные есть вещи разные принципиально. Вплоть до невозможности решения задачи.
P.S. У меня ощущение, что надо сделать нечто типа alx-dike (кажется, так). То бишь строить изображения откосов.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 10.12.2008
Сообщений: 122
|
Кулик Алексей aka kpblc, 1-я линия - это кривая горизонта, 2-я линия - это подошва горизонта. Они могут быть и параллельными, и не параллельными. Как я понимаю, нужно рассматривать два случая по отдельности. Если параллельны, то так строятся перпендикуляры, если нет - то по другому.
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409
|
Макс_Кунгур, так дело-то в том, что сначала надо поставить задачу. Полностью. Предусмотрев все варианты. И только после этого задумываться о решении (которое, скорее всего, сведется к применению команды _.divide с опцией _block).
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 10.12.2008
Сообщений: 122
|
Кулик Алексей aka kpblc, задача состоит в следующем:
1. Выбираем первую полилинию 2. Выбираем вторую полилинию 3. Первая полилиния делится на отрезки одинаковой длины начиная с начала. 4. Строятся перпендикуляры по этим отрезкам, начиная с начала первой полилинии, пересекающие вторую полилинию. (перпендикуляры должны отсекаться 2-й полилинией) 6. Если вторая полилиния длиннее 1-й (что слева, что справа), обрезаем ее до первого и последнего перпендикуляра. Полилинии могут быть как параллельными так и не параллельными. Последний раз редактировалось Макс_Кунгур, 19.08.2009 в 09:17. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Для размышления о "перпендикулярах" - технология рисования
http://cad.kurganobl.ru/risovanie_otkosov.html и еще две заметки внутри. В качестве постановки задачи. А реализация простая: (ru-draw-topo-slope T T 3.0 0.5) |
|||
![]() |
|
||||
Регистрация: 10.12.2008
Сообщений: 122
|
Цитата:
Потестировал я программы dike и otkos, все хорошо, все красиво, то, что нужно, но они не реализуют: 1. Не обрезают полилинии до первого перпендикуляра и после последнего. 2. Рисуют только простой откос, а мне нужно еще чтобы еще рисовался добычной откос (чтобы был выбор, какой откос рисовать). Подскажите, пожалуйста, кто-нибудь знает, как это реализовать? Последний раз редактировалось Макс_Кунгур, 19.08.2009 в 12:33. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
А вот как раз неоднозначностью расчет геометрии. Опорных точек-то у полилинии, сглаженной дугами, не добавляется. Вот и целевые высчитываются неправильно. Это внутренние недостатки штатных функций.
Цитата:
Здесь 4 аргумента определяют варианты рисования бровок и штрихов. Можно сделать сколько угодно вариантов. Тут важно забыть про "обрезают", "удлиняют". И особенно - слово "перпендикуляр". Всё только на геометрических вычислениях должно быть. Можно ведь и координаты концов бровок изменить, если надо. Цитата:
|
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
>>Это внутренние недостатки штатных функций
т.е. не учитываются скругления, обрабатываются как прямые? >>Тут важно забыть про "обрезают", "удлиняют". >>И особенно - слово "перпендикуляр" Я бы заменил "перпендикуляр" на "ближайшая" тогда получится: 1 measurим линию от которой строим с нужным шагом 2 measurим линию к которой строим с более мелким (в пределах разумного, с учетом нужной точности) шагом 3 перебераем токи из (1) ишем ближайшие им точки из(2) и их соединяем. шаг 3 легко оптимизируется, поиск прекращается как только растояние начинает увеличиваться, с каждлой итерацией поиск начинается в месте где закончился предидущий раз edit: забыл что нужно учесть направление полилиний и искать или с начала или с конца второго списка |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
|
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
арифметические действия между двумя текстовыми элементами | RЯков | AutoCAD | 31 | 09.09.2016 11:13 |
Вопрос по 3D: Как образмерить угол между двумя отрезками, находящимися в разных плоскостях? | k8t | AutoCAD | 21 | 03.11.2015 09:29 |
Измерить расстояние между двумя точками в ЛИСТЕ, привязываясь к объектам в МОДЕЛИ | Кочетков Андрей | AutoCAD | 9 | 12.06.2009 22:52 |
Интерполяция между двумя точками | postbudka | Программирование | 27 | 21.05.2009 10:00 |
создание касательной между двумя окружностями | фрекен_бок | AutoCAD | 1 | 21.02.2009 22:14 |