Перейти к публикации

Как продлить сплайн?


француз

Рекомендованные сообщения

Имеется сплайн, образмеренный с помощью контрольного полигона

post-3496-1144137953_thumb.png

Требуется продлить этот сплайн зеркально влево. Т.е. надо получить ОДИН сплайн, каждая половинка которого ТОЧНО повторяет исходный.

Интересны любые варианты. Пойдёт и в скетче и в ISDX. А то у меня никак не получается :g:

Ссылка на сообщение
Поделиться на других сайтах


не совсем понял, что значит продлить влево. если нужно получить вторую зеркальную (относительо верт. оси) ветку, то без задания касательности в точке соприкосновения не обойтись.

Ссылка на сообщение
Поделиться на других сайтах

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

Но потом придется строить новый сплайн, т.е. через EDIT-COPY (или напрямую зеркалим) делаем копии, а потом по 2-м сплайнам рисуем новый..

Типа так:

Если, конечно, правильно понял задачу... :smile:

Ссылка на сообщение
Поделиться на других сайтах

на результат то можно посмотреть? а то постановка задачи не ясна.

в WF1 в скетчере ничего не "завязывается в узел"

Ссылка на сообщение
Поделиться на других сайтах

в WF1 в скетчере ничего не "завязывается в узел"

<{POST_SNAPBACK}>

Что-то, видимо, с опциями Скетчера в конфиге.. или привязки влияют.. :g:
Ссылка на сообщение
Поделиться на других сайтах

Обойти можно: создать новый сплайн и отсимметрить его по отношению к исходному:

вот как в WF1

<{POST_SNAPBACK}>

Это потому, что "вылет"под другим углом:

Изменил вылет, и не стало в узлы завязываться.. :rolleyes:

Ссылка на сообщение
Поделиться на других сайтах

не совсем понял, что значит продлить влево. если нужно получить вторую зеркальную (относительо верт. оси) ветку, то без задания касательности в точке соприкосновения не обойтись.

Действительно, надо отразить только относительно вертикальной оси. Методика, описанная ASW очень удобная, но, к сожалению, не понятно, как её применить при однократной отзеркаливании.

Касательность в точке соприкосновения присутствует - горизонтальность самого нижнего участка контрольного полигона. Другое дело, что для соединения двух кривых, нужна непрерывность по кривизне. А как её задать с помощью контрольного полигона? Длиной этого горизонтального участка... Не помогает :sad:

Ссылка на сообщение
Поделиться на других сайтах

При однократном отзеркливании нормальное сопряжение не получится... Евклид не разрешит.. :smile:

Как выход:

1. Создать половину (любым способом) без самого нижнего участка.

2. Добавить недостающий нижний участок (половину) посредством кривой (planar) Стайла, сопряжение на концах сделать aligin (в точке сопряжения со сплайном) и нормально к вертикальной плоскости (в самой нижней точке - здесь непрерывность по кривизне будете изменять ). Для удобства предварительно хорошо бы сделать датум-пойнты.

3. Mirror этих двух кривых, лучше через зависимую копию, чтобы потом все изменялось автоматом, скрыв те 2 исходные.

4. Построить кривую по полученным.

Ссылка на сообщение
Поделиться на других сайтах

надо зеркалить. Только зеркалить не в процессе создания сплайна, а ПОТОМ. Когда линия УЖЕ СОЗДАНА (вышли из режима скетчера), эта линия зеркалится полностью относительно вертикальной плоскости (Copy-Mirror-Dependent). Получается ДВЕ ЛИНИИ. Если нужно, потом эти две линии можно объединить в один сплайн.

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

Ссылка на сообщение
Поделиться на других сайтах

Можно построить по первой половине DATUM POINTS, зеркально их откопировать и построить новую кривую проходящую через все точки. Строить любым методом - СПЛАЙН , ДИЗАЙН или НЕЗАВИСИМАЯ ГЕОМЕТРИЯ....

Ссылка на сообщение
Поделиться на других сайтах

зачем копировать точки, если можно сразу скопировать кривую полностью, как описал чуть выше? При этом скопированная кривая будет корректно отслеживать изменения певоначальной.

Ссылка на сообщение
Поделиться на других сайтах

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

Вообще задачка решена, причём как мне кажется красивым аналитическим способом.

1. Открываем скетч в той же плоскости, что и исходная половинка кривой.

2. Строим сплайн по 3-м точкам (ляпаем 3 раза мышкой куда попало)

3. Крайние точки делаем симетричными, относительно вертикальной плоскости. Задаём размеры по вертикали и горизонтали до любой из крайних точек (значения берём из исходной кривульки).

4. Входим в редактирование сплайна и создаём контрольный полигон. Получаем полигон из 4-х сегментов. Выходим из редактирования кривой.

5. Привязываем среднюю точку полигона с вертикальной плоскости. Угол крайних сегментов делаем равным аналогичному углу из исходного сплайна.

6. Создаём на каждом из 2-х средних участков по средней точке. Привязываем эти точки к горизонтальной плоскости. Это шаманское действие теоритечески объяснить не могу, но оно позволят добиться того, что при любой модификации сплайна нижняя его точка ВСЕГДА лежит на на горизонтальной плоскости.

После всех этих действий у нашей кривой остаётся только одна степень свободы - движение вверх-вниз средней точки полигона. Все остальные параметры "пришпилены" к исходному сплайну. К сожалению, так и не удалось придумать как жёстко задать этот размер. Но и в таком виде придать сплайну нужную форму дело очень простое и быстрое. Тягаем среднюю точку, пока не добъёмся удовлетворительного сходства с исходной кривой. Мне удалось получить мах. отклонение в неск. сотых мм.

Ссылка на сообщение
Поделиться на других сайтах

ШАЙТАН! Чесать правой ногой левое ухо...

Зачем так сложно?

Условие касательности задаётся или КОНСТРЕЙНОМ или просто УГЛОМ. Дальше объяснять не буду.

При симметрии всё отслеживается и сохраняется.

Авиационный профиль видел? Крылья строятся без всяких этих шамнских трюков. Всё касательно, симметрично и прочая и прочая...

Чтобы не быть голословным, прилагаю образец. Файл для WF-2

Откройте файл, посмотрите как задана кривая, измените её форму и помотрите на результат.

Ссылка на сообщение
Поделиться на других сайтах

2 GOLF_stream. В самом первом посте темы русским языком написано, что интересует построение ОДНОГО цельного сплайна. А не ДВУХ его половинок.

Кривая, в выложенном Вами файле построена отражением. Согласен, проще некуда. На то она и есть стандартная функция, используемая по прямому назначению. Но этот метод не подходит для построения ЦЕЛЬНОЙ кривой.

Если не совсем понятна разница, попробуйте получить поверхность, экструзией своего сплайна. Начнём с того, что в Вашей модели потребуется 2 функции для этого - или 2 экструзии (для каждой половинки + последующий их Merge) или создание композитной кривой с последующей его экструзией. В любом случае, Вы получите поверхность, состоящую из 2-х лоскутов. А многие функции с такими поверхностями работать не могут (только с каждым лоскутком по отдельности).

Зы. В принципе, предложенный способ мог бы иметь право на жизнь, если бы из него можно было бы получить приближённую (именно Approximate, а не Exact) композитную кривую. Однако, по непонятным причинам это не получается...

Ссылка на сообщение
Поделиться на других сайтах

в моём ПЕРВОМ ОТВЕТЕ русским языком написано как из двух половинок получить ОДИН СПЛОШНОЙ СПЛАЙН. При этом все свойства половинок сохраняются.

У меня получилось :) Результат на картинке и в файле - можете проверить. Если не разберётесь с объединением двух кривых (а там действительно есть неочевидные нюансы), могу попробовать объяснить как это получилось.

Ссылка на сообщение
Поделиться на других сайтах

Вот это уже подходит.

Напишите, пожалуйста, как Вам удалось получить апроксимированную копию двух половинок. Как я писал в предыдущем посте, у меня почему-то они не хотели склеиваться.

Ссылка на сообщение
Поделиться на других сайтах

наука побеждать.

Итак, когда построена одна половинка линии, и её симметрия, нужно их объединить в одну.

Делается это так. Прежде чем указать линию, ставим в окне выбора (справа внизу) Geometry (поз.1). Затем указываем линию не как фичу, а именно как геометрию.

После этого банальное Copy - Past. В меню дилога указываем тип линии Aprocximate (поз.2). Затем нажимаем кнопку поз.3, потом поз.4 - появляется окно справа, в нём указана только одна наша выбранная кривая. С НАЖАТОЙ КЛАВИШЕЙ Ctrl указываем вторую половинку, она добавляется в список (поз.5). После этого нажимаем ОК (поз.6) :) и завершаем операцию, поставив зелёную галочку справа внизу :)

А вот картинки-то мне прицепить не удаётся - места не хватает. Почемиу-то всего 21КБ доступно.

Ссылка на сообщение
Поделиться на других сайтах

Картинки можно положить в файловый архив на форуме, а оттуда добавить в пост как ссылки. Должно работать, хотя и без картинок в общем-то понятно

Ссылка на сообщение
Поделиться на других сайтах

WF2: кликаем на первой кривой, подсветив ее. Далее на ней же еще раз - толщина линии меняется, далее жмем Ctrl и выбираем вторую кривую (или несколько). Copy - Paste_Special, появляется окошко:

в нем галочку только на Apply Move/Rotate.. - ОК, выбираем любую подходящую плоскость, расстояние (по умолчанию) = 0.00, ОК. Все. В данном случае сохраняется связь с исходными кривыми, если она не нужна, то при создании копии на исходных кривых кликать нужно 1 раз - то же, только выбор задавать нет необходимости.. :rolleyes:

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...