Построение криволинейной траектории в пространстве - Страница 2
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

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

Построение криволинейной траектории в пространстве

Ответ
Поиск в этой теме
Непрочитано 29.10.2010, 14:03
Построение криволинейной траектории в пространстве
NickNavi
 
Регистрация: 24.06.2010
Сообщений: 33

Доброго всем времени суток. Поскольку я не программист, то обращаюсь к мастерам сего дела с просьбой подумать над способом программно выполнять довольно специфическую функцию, а именно построение правильной криволинейной траектории в пространстве.
Поясню:
1. В плане имеется оси - прямолинейные участки, сопряженные дугами или сплайнами.
2. Прямолинейные участки имеют различное высотное положение и направление не только в плоскости, но и в пространстве.
3. Соответственно необходимо чтобы эти прямолинейные участки были сопряжены плавно не только в плоскости, но и в пространстве.

Для лучшего разъяснения выложил файл с алгоритмом построения стандартными автокадовскими средствами. Этот метод построения очень многодельный, поэтому я прошу вас помочь мне его упростить.

Вложения
Тип файла: dwg
DWG 2007
Построение.dwg (326.3 Кб, 3260 просмотров)

Просмотров: 13588
 
Непрочитано 09.11.2010, 11:23
#21
Сергей Дубина


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


Цитата:
Сообщение от TararykovDG Посмотреть сообщение
А как Вы собираетесь учесть вертикальные кривые для плавного сопряжения линий (отрезков) на равных уровнях
Вот так.
Вложения
Тип файла: dwg
DWG 2007
Чертеж2.dwg (63.1 Кб, 1510 просмотров)
__________________
КазнитьØнельзяØпомиловать:eek:
Сергей Дубина вне форума  
 
Непрочитано 09.11.2010, 11:44
#22
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


Цитата:
Сообщение от Сергей Дубина Посмотреть сообщение
Вот так.
Ну и что, там нет никакого сопряжения. Речь идет не о кривой задающей вираж, который Вы реализовали дугой, а о вертикальных кривых для плавного сопряжения прямолинейных учасков на разных уровнях. Если на Вашем чертеже посмотреть на дугу не сверху (как на план), а сбоку (точнее продольных профиль), то она буде выглядеть как отрезок (это не очень отчеливо видно из-за того что на чертеже маленький перепад уровней).
Вложения
Тип файла: dwg
DWG 2000
Чертеж1.dwg (73.1 Кб, 1489 просмотров)
__________________
cadtools
TararykovDG вне форума  
 
Непрочитано 09.11.2010, 11:52
#23
Сергей Дубина


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


вот
Вложения
Тип файла: dwg
DWG 2007
Чертеж3.dwg (80.3 Кб, 1460 просмотров)
__________________
КазнитьØнельзяØпомиловать:eek:
Сергей Дубина вне форума  
 
Непрочитано 09.11.2010, 11:56
#24
sbi


 
Регистрация: 27.04.2008
SPB
Сообщений: 3,285
Отправить сообщение для sbi с помощью Skype™


NickNavi Криволинейная траектория линии в пространстве выполнялась в Акаде, аш четверть века. Страдает USC and hands.
__________________
С уважением sbi
sbi вне форума  
 
Непрочитано 09.11.2010, 11:58
#25
KennyMckormik


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


Мне кажется можно сделать так:
1. поределить угол дуги клотоиды
2. расчитать количество витков соединяющей спирали (п. 1 / 360, если в градусах)
3. построить спираль опираясь: центр спирали - центр дуги; радиус спирали, причем верхний и нижний - радиус дуги; высота спирали - перепад высот между прямолинейными участками.
4. скорриектировать число витков спирали см. п. 2
4а. подкорректировать направление спирали после постраения.
5. разбить спираль и получить spline.
это хорошо только в случае когда прямолинейные участки лежат в параллельных плоскостях

комманда постраения спирали - Helix
__________________
Timeo Danaos et dona ferentes :eek:
KennyMckormik вне форума  
 
Непрочитано 09.11.2010, 12:51
#26
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


Сергей Дубина, а как дугами задавать вертикальные кривые, во вложении радиус виража 50, вертикальные радиусы: фиолетовый - 50; красный - 70; синий - 100; зеленый - 150.
Вложения
Тип файла: dwg
DWG 2000
Чертеж1.dwg (78.8 Кб, 1449 просмотров)
__________________
cadtools
TararykovDG вне форума  
 
Непрочитано 09.11.2010, 13:09
#27
Сергей Дубина


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


Цитата:
Сообщение от TararykovDG Посмотреть сообщение
Сергей Дубина, а как дугами задавать вертикальные кривые, во вложении радиус виража 50, вертикальные радиусы: фиолетовый - 50; красный - 70; синий - 100; зеленый - 150.
Почему вопрос адресован ко мне?
Кривые в моих примерах произвольны и плавны.
Кстати по координатам какой кривой построены ваши сплайны?
__________________
КазнитьØнельзяØпомиловать:eek:
Сергей Дубина вне форума  
 
Непрочитано 09.11.2010, 13:30
#28
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


Цитата:
Сообщение от Сергей Дубина Посмотреть сообщение
Почему вопрос адресован ко мне?
Потому что я с Вам начинал дисскусию об использовании дуг для сопряжения
Цитата:
Сообщение от Сергей Дубина Посмотреть сообщение
Кривые в моих примерах произвольны и плавны.
Вот именно "Кривые произвольны", а если прочитать пост автора #3 там в качестве исходных данных указано
Цитата:
Сообщение от NickNavi Посмотреть сообщение
Исходные данные: радиус виража, положение прямолинейных сегментов, радиусы вертикальных кривых.
Цитата:
Сообщение от Сергей Дубина Посмотреть сообщение
Кстати по координатам какой кривой построены ваши сплайны?
Мои сплайны построены с помощью моей программы (см. вложения). Здесь требуется несколько пояснений. Сама программа мягко говоря еще "сырая", но кому интересно может сам исправить или доработать. Корректное задание входных данных (радиус виража, радиус вертикальных кривых) дается на откуп пользователя.
NickNavi, и все кому интересно пробуйте, делайте замечания
Вложения
Тип файла: lsp 3d_fillet.LSP (6.7 Кб, 99 просмотров)
__________________
cadtools
TararykovDG вне форума  
 
Непрочитано 09.11.2010, 15:46
#29
Сергей Дубина


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


Цитата:
Сообщение от TararykovDG Посмотреть сообщение
Вот именно "Кривые произвольны", а если прочитать пост автора #3 там в качестве исходных данных указано
"Проглядел".
1. Посмотрел вашу прогу, исходных точек должно быть не две, а как минимум 4.
2. Мне кажется сам автор, чтобы получить то что хочется, должен помочь с исходной инфой (теорию построения подомных кривых (разверток) на бумаге, и формулы расчета.
__________________
КазнитьØнельзяØпомиловать:eek:
Сергей Дубина вне форума  
 
Непрочитано 09.11.2010, 16:00
#30
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


Цитата:
Сообщение от Сергей Дубина Посмотреть сообщение
"Проглядел".
1. Посмотрел вашу прогу, исходных точек должно быть не две, а как минимум 4.
Ну я же говорил, что программа еще мягко говоря на стадии разработки. Правда почему точек должно быть как минимум 4 я не понял. Вообще говоря круговой кривой правильного сопряжения не добиться нужны переходные в виде каких-нибудь клатойд или циклойд, но это вопрос к автору, напомню его слова
Цитата:
Сообщение от NickNavi Посмотреть сообщение
Изначально имеется план где развязка представляет собой прямые участки сопряженные дугами (без клатойд)
здесь речь идет о дугах, но применительно к плану проектируемого объекта.


Цитата:
Сообщение от Сергей Дубина Посмотреть сообщение
2. Мне кажется сам автор, чтобы получить то что хочется, должен помочь с исходной инфой (теорию построения подомных кривых (разверток) на бумаге, и формулы расчета.
Ну вот пусть посмотрет и сделает свои замечания. Я так понял, что у него уже есть расчитанные значения и их нужно только отобразить в 3d модели
__________________
cadtools
TararykovDG вне форума  
 
Непрочитано 09.11.2010, 16:42
#31
Сергей Дубина


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


Цитата:
Сообщение от TararykovDG Посмотреть сообщение
Правда почему точек должно быть как минимум 4 я не понял.
Две точки - координаты начала и конца, и еще две для расчета уклонов в этих точках. (поэтому и не получается плавности сопряжения в вашей функции)
__________________
КазнитьØнельзяØпомиловать:eek:
Сергей Дубина вне форума  
 
Непрочитано 09.11.2010, 16:56
#32
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


Цитата:
Сообщение от Сергей Дубина Посмотреть сообщение
Две точки - координаты начала и конца, и еще две для расчета уклонов в этих точках. (поэтому и не получается плавности сопряжения в вашей функции)
Возможно Вы правы, спорить не буду, так как не владею должной теорией в этом вопросе. Но все же, о плавности сопряжения в какой проекции Вы говорите, если о плане (вид сверху), то здесь как я уже сказал в посте #30 круговой кривой правильного сопряжения не добиться нужны переходные. Если о продольном профиле то здесь по идеи плавности можно добиться правильным заданием радиусов вертикальных кривых
__________________
cadtools
TararykovDG вне форума  
 
Непрочитано 10.11.2010, 08:23
#33
Сергей Дубина


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


Цитата:
Сообщение от TararykovDG Посмотреть сообщение
Если о продольном профиле то здесь по идеи плавности можно добиться правильным заданием радиусов вертикальных кривых
Lisp-ом владею очень плохо, поэтому функцию поправить не смогу. Можно предложить следующее:
1. Подсчитываем уклон в начале и в конце кривой
2. Делим разницу уклонов на количество участков и получаем приращение уклонов
3. Подсчитывается уклон для каждой точки, и высота.
__________________
КазнитьØнельзяØпомиловать:eek:
Сергей Дубина вне форума  
 
Непрочитано 10.11.2010, 10:17
#34
PolBlack

ведущий инеженер-проектировщик слаботочных систем
 
Регистрация: 21.10.2010
Киев
Сообщений: 64
<phrase 1= Отправить сообщение для PolBlack с помощью Skype™


Сергей Дубина, ничего себе простенькое объяснение, как интеграл или дифференциал посчитать.
__________________
Дорогу осилит идущий
PolBlack вне форума  
 
Непрочитано 10.11.2010, 15:12
#35
sbi


 
Регистрация: 27.04.2008
SPB
Сообщений: 3,285
Отправить сообщение для sbi с помощью Skype™


PolBlack Сделай проще.
__________________
С уважением sbi
sbi вне форума  
 
Автор темы   Непрочитано 11.11.2010, 11:15
#36
NickNavi


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


Цитата:
Сообщение от sbi Посмотреть сообщение
NickNavi Криволинейная траектория линии в пространстве выполнялась в Акаде, аш четверть века. Страдает USC and hands.
Чтобы не быть голословным опишите здесь способ и я его оценю применительно к моей задаче.

TararykovDG Спасибо за программу, начинаю тестировать. О результатах сообщу позже.

Сергей Дубина Ваш способ за своей простотой имеет ряд недостатков.
1. Полученная кривая не совпадает с исходной кривой в плане.
2. При выдавливании свипом на концевых участках дуг полученные солиды не стыкуются с солидами на линейных участках. Приходиться их подкручивать от чего искажается модель и работа становится многодельной.

KennyMckormik Хеликс не даст плавности сопяжения.
NickNavi вне форума  
 
Непрочитано 11.11.2010, 11:26
#37
Сергей Дубина


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


NickNavi А про формулы? Проигнорировал?
В профиле обязательно дуги и прямые, или параболы сойдут?
__________________
КазнитьØнельзяØпомиловать:eek:
Сергей Дубина вне форума  
 
Автор темы   Непрочитано 11.11.2010, 12:36
#38
NickNavi


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


Цитата:
Сообщение от Сергей Дубина Посмотреть сообщение
NickNavi А про формулы? Проигнорировал? В профиле обязательно дуги и прямые, или параболы сойдут?
Я извиняюсь что не дочитал до конца, начал играться с 3D fillet. Согласен с вами что нужно 4 точки брать (а точнее для исходных данных выбирать весь линейный сегмент) иначе при малых вертикальных радиусах кривая начинает вспухать на концах. Кстати она не только вспухает но и "заостряет" сопряжение при больших значениях вертикального радиуса.

Уважаемый TararykovDG в своем примере взял частный случай - прямые в параллельных плоскостях. Если к примеру у верхнего отрезка подвинуть край выше или ниже по Z то плавного сопряжения уже не будет.

Про формулы........В математике не силен, но я определенно представляю способ построения кривой. другой вопрос насколько он может быть реализован. Попробую донести мои мысли не бумаге и выложить сюда.

Про дуги с прямыми или параболы......Хочется универсальности и возможность выбора метода построения. Однако для начала нужно добиться устойчивой работы хотя бы одного способа в общем случае (а не только в частных). Поэтому наверно проще остановиться на профиле состоящим из дуг и отрезка.

---------------------------------------------------------------------------------------------------------------------------------------

Надеюсь что нарисовал понятно. Итак.

TararykovDG частично решил задачу для частного случая [1]. Здесь показана развертка продольного профиля во фронтальной проекции. Как уже говорилось хотелось бы чтобы задача решалась для общего случая [2], где прямые разнесены и по высоте и по направлению.
На мой взгляд задача решается следующим образом

Для начала нужно описание функции сопряжения прямых по траектории BCDE на плоскости. Поскольку цилиндрическая поверхность abcd [3] строится перемещением прямой ab по кривой ad, то можно утверждать что наша пространственная кривая является геометрическим местом точек образованным от перемещения прямой aB вдоль ad (пунктирные линии). aB в совою очередь имеет переменную длину в соответствии с функцией BCDE и в каждой новой точке кривой ad создает координату z для нашей пространственной кривой.
Аналитически это будет результатом решения системы уравнений состоящей из функции BCDE и кривой ad.
Таким образом имея любую кривую в плане [4a] можно обеспечить плавное сопряжение пространственных отрезков вдоль этой кривой [4b].

[img]http://s013.***********/i325/1011/24/4ff849ca76ef.jpg[/img]
[img]http://s39.***********/i085/1011/7f/40d181825851.jpg[/img]

О программе TararykovDG:
1. она работает пока только для частного случая прямых в плоскостях параллельных XY
2. при малых и или слишком больших радиусах не получается плавного сопряжения.
Кривую пучит или сжимает вдоль оси Z
3. она соединяет только сходящиеся концы, а желательно что бы она тоже соединяла и расходящиеся концы плавно [5] а сейчас она соединяет их под острым углом [5 пунктир]

Последний раз редактировалось NickNavi, 12.11.2010 в 11:03.
NickNavi вне форума  
 
Непрочитано 07.12.2010, 10:40
#39
Сергей Дубина


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


Цитата:
Сообщение от NickNavi Посмотреть сообщение
Про формулы........В математике не силен, но я определенно представляю способ построения кривой. другой вопрос насколько он может быть реализован. Попробую донести мои мысли не бумаге и выложить сюда.
Это не формулы, а урок начертательной геометрии.
Выкладываю методику расчета, ничего сложного в ней нет. В профиле - сопряженные параболы. Радиус и координаты центра не вычислял, это сделал TararykovDG.
Я в лиспе не силен, реализовал всё "своими методами". Так что попросите TararykovDG, может он доведет свой лисп по этой методе до конца.
Вложения
Тип файла: zip Расчет кривых.zip (61.4 Кб, 101 просмотров)
__________________
КазнитьØнельзяØпомиловать:eek:
Сергей Дубина вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Построение криволинейной траектории в пространстве

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа в пространстве листа Traum AutoCAD 42 14.08.2014 05:57
Управление слоями в видовых экранах в пространстве листа Zuk AutoCAD 20 27.05.2013 01:58
Работа в пространстве Листа-вопрос новичка. tsurx AutoCAD 27 22.10.2012 13:16
Значение поля(field) в Пространстве Листа и Пространстве Модели различаются. Автокад 2009-2010 wetr AutoCAD 2 06.05.2009 02:33
Построение спирали по криволинейной траектории ASPiter AutoCAD 8 16.02.2009 12:14