|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Построение криволинейной траектории в пространстве
Регистрация: 24.06.2010
Сообщений: 33
|
||
Просмотров: 13596
|
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 575
|
NickNavi, а можно по-подробней. По каким данным были получены сами прямолинейные участки, сопряженные дугами или сплайнами. Может быть по ним сразу можно построить траекторию или же траекторию можно строить только по уже существующим прямолинейным участкам сопряженными дугами или сплайнами?
__________________
cadtools |
|||
![]() |
|
||||
Регистрация: 24.06.2010
Сообщений: 33
|
Смысл вот в чем: я моделировал транспортную развязку в автокаде. На построение криволинейных осей виражей и поворотов я потратил много времени и хочу его сократить для последующих работ.
Изначально имеется план где развязка представляет собой прямые участки сопряженные дугами (без клатойд). в ручную определяю высотное положение на характерных участках прямых сегментов трассы и вот с этого момента мне нужно плавное сопряжение их в пространстве. В идеале это должна быть проекция продольного профиля оси (на участке виража) на вертикальную плоскость, образованной дугой виража (стенка цилиндра) Исходные данные: радиус виража, положение прямолинейных сегментов, радиусы вертикальных кривых. |
|||
![]() |
|
||||
можно задать вопрос по другому: как можно нарисовать пространственную (3D) дугу или круг? как можно выполнить скругление острых углов 3D полилинии?
__________________
Дорогу осилит идущий |
||||
![]() |
|
||||
ну и что этим хотел сказать? если ее повернуть в пространстве, она не перестанет быть плоской фигурой.
лучше ответь как нарисовать плоскую дугу, таким образом, чтобы начало находилось на оси Х, а конец на оси Z? (нарисовать в плоскости XY и повернуть не отвечает на вопрос топика)
__________________
Дорогу осилит идущий |
||||
![]() |
|
||||
Цитата:
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
![]() |
|
||||
Регистрация: 24.06.2010
Сообщений: 33
|
Есть следующая мысль:
Поскольку цилиндрическая поверхность образуется путем движения прямой L, которая перемещается в пространстве, сохраняя постоянное направление и пересекая ка ждый раз некоторую кривую К, называется цилиндрической поверхностью или цилиндром. При этом кривая К называется направляющей цилиндра, а прямая L — его образующей http://www.znannya.org/?view=yravnen...hnosti_i_linii (п. 12.7) Поскольку кривая K в плоскости XY нам известна, то остается спроецировать по ней переменную прямую L (которая вдоль оси Z). Можно это сделать с определенным шагом (получится апроксимированная 3-х мерная кривая). Перевести в 3D полилинию и сгладить. |
|||
![]() |
|
||||
Все Вадсон, как говорится - элементарно.
Есть два прямолинейных отрезка, явно не лежащих в одной плоскости и не пересекающиеся. Нам, как говорится, по барабану где заканчиваются концы этих прямолинейных участков. Сразу замечу, что "концы" это та сторона прямолинейного участка, которая должна соединится, при помощи криволинейной поверхности, с другом "концом". В жизни всякое бывает. Иногда ТАКИЕ круги надо выписывать, по необходимости, что диву даешся. И так, есть две линии. Каждая имеет начало и конец. И как я понимаю, расстояние между концами меньше чем между началами. То-есть взяв четыре координаты точек мы найдем две самые близкие (естественно, точки принадлежащие одной и той же линии не учитываются). Концы нашли. Теперь берем и рисуем двухточечный сплайн, где начало сплайна один "конец", окончание сплайна - другой "конец" и направление векторов на концах сплайна определены началами наших двух линий. Никаких промежуточных точек в сплайне! Только две! Вот проделайте это руками, а то, что получится, если вам понравится, можно и автоматизировать. |
||||
![]() |
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 575
|
Сергей Дубина, такое ощущение, что Вы вообще не читали ни один пост из этой темы. А если отрезки не компланарны (а оно так и есть в общем случае) то _fillet работать не будет. А как Вы собираетесь учесть вертикальные кривые для плавного сопряжения линий (отрезков) на равных уровнях
__________________
cadtools |
|||
![]() |
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 575
|
Ну и что, там нет никакого сопряжения. Речь идет не о кривой задающей вираж, который Вы реализовали дугой, а о вертикальных кривых для плавного сопряжения прямолинейных учасков на разных уровнях. Если на Вашем чертеже посмотреть на дугу не сверху (как на план), а сбоку (точнее продольных профиль), то она буде выглядеть как отрезок (это не очень отчеливо видно из-за того что на чертеже маленький перепад уровней).
__________________
cadtools |
|||
![]() |
|
||||
Регистрация: 30.08.2009
Сообщений: 189
|
Мне кажется можно сделать так:
1. поределить угол дуги клотоиды 2. расчитать количество витков соединяющей спирали (п. 1 / 360, если в градусах) 3. построить спираль опираясь: центр спирали - центр дуги; радиус спирали, причем верхний и нижний - радиус дуги; высота спирали - перепад высот между прямолинейными участками. 4. скорриектировать число витков спирали см. п. 2 4а. подкорректировать направление спирали после постраения. 5. разбить спираль и получить spline. это хорошо только в случае когда прямолинейные участки лежат в параллельных плоскостях комманда постраения спирали - Helix
__________________
Timeo Danaos et dona ferentes :eek: |
|||
![]() |
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 575
|
Сергей Дубина, а как дугами задавать вертикальные кривые, во вложении радиус виража 50, вертикальные радиусы: фиолетовый - 50; красный - 70; синий - 100; зеленый - 150.
__________________
cadtools |
|||
![]() |
|
||||
Регистрация: 06.04.2009
Сообщений: 702
|
Цитата:
Кривые в моих примерах произвольны и плавны. Кстати по координатам какой кривой построены ваши сплайны?
__________________
КазнитьØнельзяØпомиловать:eek: |
|||
![]() |
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 575
|
Потому что я с Вам начинал дисскусию об использовании дуг для сопряжения
Вот именно "Кривые произвольны", а если прочитать пост автора #3 там в качестве исходных данных указано Цитата:
NickNavi, и все кому интересно пробуйте, делайте замечания
__________________
cadtools |
|||
![]() |
|
||||
Регистрация: 06.04.2009
Сообщений: 702
|
Цитата:
1. Посмотрел вашу прогу, исходных точек должно быть не две, а как минимум 4. 2. Мне кажется сам автор, чтобы получить то что хочется, должен помочь с исходной инфой (теорию построения подомных кривых (разверток) на бумаге, и формулы расчета.
__________________
КазнитьØнельзяØпомиловать:eek: |
|||
![]() |
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 575
|
Цитата:
Цитата:
Ну вот пусть посмотрет и сделает свои замечания. Я так понял, что у него уже есть расчитанные значения и их нужно только отобразить в 3d модели
__________________
cadtools |
|||
![]() |
|
||||
Регистрация: 06.04.2009
Сообщений: 702
|
Две точки - координаты начала и конца, и еще две для расчета уклонов в этих точках. (поэтому и не получается плавности сопряжения в вашей функции)
__________________
КазнитьØнельзяØпомиловать:eek: |
|||
![]() |
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 575
|
Возможно Вы правы, спорить не буду, так как не владею должной теорией в этом вопросе. Но все же, о плавности сопряжения в какой проекции Вы говорите, если о плане (вид сверху), то здесь как я уже сказал в посте #30 круговой кривой правильного сопряжения не добиться нужны переходные. Если о продольном профиле то здесь по идеи плавности можно добиться правильным заданием радиусов вертикальных кривых
__________________
cadtools |
|||
![]() |
|
||||
Регистрация: 06.04.2009
Сообщений: 702
|
Цитата:
1. Подсчитываем уклон в начале и в конце кривой 2. Делим разницу уклонов на количество участков и получаем приращение уклонов 3. Подсчитывается уклон для каждой точки, и высота.
__________________
КазнитьØнельзяØпомиловать:eek: |
|||
![]() |
|
||||
Регистрация: 24.06.2010
Сообщений: 33
|
Цитата:
TararykovDG Спасибо за программу, начинаю тестировать. О результатах сообщу позже. Сергей Дубина Ваш способ за своей простотой имеет ряд недостатков. 1. Полученная кривая не совпадает с исходной кривой в плане. 2. При выдавливании свипом на концевых участках дуг полученные солиды не стыкуются с солидами на линейных участках. Приходиться их подкручивать от чего искажается модель и работа становится многодельной. KennyMckormik Хеликс не даст плавности сопяжения. |
|||
![]() |
|
||||
Регистрация: 24.06.2010
Сообщений: 33
|
Цитата:
Уважаемый 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. |
|||
![]() |
|
||||
Регистрация: 06.04.2009
Сообщений: 702
|
Цитата:
Выкладываю методику расчета, ничего сложного в ней нет. В профиле - сопряженные параболы. Радиус и координаты центра не вычислял, это сделал TararykovDG. Я в лиспе не силен, реализовал всё "своими методами". Так что попросите TararykovDG, может он доведет свой лисп по этой методе до конца.
__________________
КазнитьØнельзяØпомиловать:eek: |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа в пространстве листа | 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 |