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

Аппроксимация сплайнов


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

Есть 2 сплайна. Допустим первый общей длиной в 1000мм, второй в 10 мм. Есть штатные средства CAD программы, позволяющие расставить на протяжении сплайна точки.

Цель: аппроксимировать сплайн прямыми отрезками по найденным точкам.

Вопрос: каким образом можно хоть примерно рассчитать необходимое количество точек для этих двух сплайнов, для каждого своё? Ведь если задать изначальное 500 шт., то для первого в итоге можем получить более "гладкую" общую траекторию, а для второго кучу ненужных.

 


Расстояние между точками выбирается исходя из количества. По пути уменьшаясь или увеличиваясь.

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


Если хоть примерно, то, как вариант, - простой критерий - сумма прямых/длину гладкого. На основе этого процента судить об избыточности.

Ссылка на сообщение
Поделиться на других сайтах
Цель: аппроксимировать сплайн прямыми отрезками по найденным точкам.

Это не цель. Цель -- это, к примеру, отдать DXF в производство на бестолковый станок, который не аппроксимирует сплайны даже дугами..

 

Вопрос: каким образом можно хоть примерно рассчитать необходимое количество точек для этих двух сплайнов, для каждого своё? Ведь если задать изначальное 500 шт., то для первого в итоге можем получить более "гладкую" общую траекторию, а для второго кучу ненужных.

ЗАЧИЕМ?  Зачем рассчитывать количество точек?

 

Что бы сделал дядя Вова:

Раскидал бы точки в зависимости от кривизны сплайна в данном месте. И чтобы с алгоритмом не заморачиваться, замешил бы в CAE (там уже есть алгоритм адаптации размера элемента к кривизне поверхности/ребра, в качестве критерия можно задать максимальную величину угла между соседними линиями), даже солид это умеить! Потом экспортировать сетку в текстовый файл и вытянуть нужные точки. Делoff..

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

 Такими делами устлана дорога в ... премию))) Открыть DXF с полилинией, заменить VERTEX на LINE = премия.

Свою же цель, я озвучил в первом сообщении.

 

 

замешил бы в CAE

ещё лучше. Мож тогда сразу в маткад? Там ещё елозить этим сплайном...

 

 

 

Подсказал тут один человек методу математическую. Замер угла сектора между соседними 3-мя точками. Вроде красиво выйдет.

штатные средства CAD программы
 они, кстати, раскидывают точки по U V  координатам, оттого и неравномерное распределение по длине.
Ссылка на сообщение
Поделиться на других сайтах

Что служит критерием? Точность аппроксимации?

 

Тогда можно так:

Строим отрезок по двум точкам на сплайне и определяем расстояние от середины отрезка до сплайна - высоту дуги сплайна.

Сначала берем отрезок минимальной длины и увеличиваем его до тех пор, пока высота не превысит заданную точность.

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

Только можно попасть с этим методом, если сплайн на протяжении отрезка кривизну изменит  :rolleyes:

Ссылка на сообщение
Поделиться на других сайтах
Цель -- это, к примеру, отдать DXF в производство на бестолковый станок,

Если это нужно, то САМ-системе обычно можно задать точность, кол-во точек особо не влияет на результат, в разумных пределах, естественно. 

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

@@IGU, я думал как ещё сделать: берём скажем 10 000 точек, строим их математически (массив по кривой). Далее, перебором по 3 точки строим окружность (а точнее вычисляем). Вычисляем угол - он будет точность :smile: . В смысле его мы эфемерно зададим в настройках, доступных для пользователя. Далее, пробегаясь по массиву, отсеиваем те, что уйдут от некоего предела +=0,5 градуса к примеру.

 

и так сделать для всего массива. Всё делается в оперативке в коде, построения - только то что получится после отсеивания.

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

Количество точек-неправильный посыл. Задача обычно решается итегрированием: диапазон измерения постоянно уменьшается и результат сравниваетя с предыдущим до достижения равенства с предыдущим, равенства в пределах заданной вами точности. Количество измерений при этом(т.е. количество точек) зависит от степени кривизны.

Ссылка на сообщение
Поделиться на других сайтах
результат сравниваетя с предыдущим до достижения равенства с предыдущим
 Это если действовать методом расстояния от прямой до сплайна? А иначе на пологом участке сплайна может оказаться 10 000 прямых))
Ссылка на сообщение
Поделиться на других сайтах

На пологом будет 2-3 точки. И расчет произойдет быстрее.

Сначала заменяете сплайн на 2 точки,сравниваете,потом на 3 и так далее....

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

диапазон измерения постоянно уменьшается и результат сравниваетя с предыдущим

 

 

Т.е. картинка будет такая?

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

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

Количество точек-это и буде результат.

А вот не помню, в кадах можно сразу массив точек сплайна получить?

Вроде в автогаде было...

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

это я мышкой навтыкал.

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

 прямым или сплайном?  :smile:  отрезком... ТЫ сам себе представил что именно ТЫ говоришь? Разбить кривую - это уже аппроксимация. Дальнейшее разбиение - дальнейшая аппроксимация. ТЫ картинку покажи, а то далёк я от ТВОИХ мыслей

Изменено пользователем streamdown
Изменено на более фамильярное обращение)))
Ссылка на сообщение
Поделиться на других сайтах

Прямым отрезком канешна.

Вообще про апроксимацию куча форумов в сети.

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • mr_Voden
      @radii Пробуй.   post_29.05.24_13.42.rar
    • Killerchik
      Скорее догадки исходя из моих знаний о возможностях Фанука и примеров реализации функции поджима на различных станках. В этом разделе бал тема с разбором программ поджима, где-то в течении последнего года.
    • Stanislav
      Мне просто это выслали на отъеби... для просчета цены. Когда я поинтересовался нужны ли им действительно такие радиусы в углах 0,4мм сказали нет. Когда запросил чертеж с указанием шероховатостей и допусков, разговор был окончен. Ну бросили на шару модель, типа ,скажите за сколько сделаете вдруг за 50 000р сделаете, а если говно получиться то мы скажем что нас не устраивает.     Так как я пишу проги в основном для машиностроения, а там все круглое и квадратное, криволинейных поверхностей нет, то я решил потренироваться. И как я выше уже писал в NX не так то просто изменить радиусы скругления в модели (например на 0,5) на литейных формах, не так просто все удалить и нанести новые. Короче проще попросить конструктора на исходной модели поправить и выслать заново STEP.   Стенки там реально вертикальные в модели. Ну может их устроит, я не литейщик, может пластмассовая деталь вынется после охлаждения. А если они были бы с наклоном то радиусной фрезой катать их пришлось бы ЗЕТЛЕВОЛОМ или по УПРАВЛЯЮЩИМ ПОВЕРХНОСТЯМ.  В общем по времени стоЯть эта деталь на станке будет не мало, соответственно и стОить.    Эрозия есть, только без ЧПУ.  Стоит кокой-то    зеленый уродец. 
    • Srgwell
      Нет, там майн,майн по умолчанию стоит
    • Leon
      @Srgwell Метод запускаемый проверьте.
    • Srgwell
      Такое дело. Я не почувствовал новые изменения по одной причине. Самая последняя версия, которая запускалась это 4.4.1. Все последующие при запуске не реагируют ни как. Тут даже до создания ini не доходило. Судя по количеству байтов менялся только Коперник.swp. Естественно лишние старые файлы перед запуском удалял. Ну может у других все хорошо. Или они просто не пробуют другие версии. SW 2023 sp3.0
    • Александр1979
      https://m.youtube.com/watch?v=YJFnfXLcSEY
    • HornedOwl
      И я этим вопросом задавался... но как я  понял, гравитацией заливаем только в стакан, а дальше якобы работает поршень Повторюсь: я могу ошибаться, не сам эту методу придумал...
    • ART
      Какое отношение имеет гравитация к литью под давлением.
    • HornedOwl
      Если бы я сам знал... не спрашивал.   Я немного по-другому делаю анализ: У меня деталь вместе с литниковой системой и заливочным стаканом!  В начальных установка - в материалах есть температура формы   Далее выбираю: Литниковые точки и Задание поршня (в котором задаю параметры движения поршня)   Затем в Параметрах заливки - выбираю: Гравитационное литье (струя): выбираю напор и диаметр струи   А далее на расчет....   И сколько бы я не делал, лишь с повышением температуры формы, деталь проливается полностью.    Вот пример когда температура формы 180гр. - одни недоливы А вот отливка в натуре     Мой вариант это не руководство к исполнению, он может быть не верным. Как Вы правильно подметили: симуляция - одно, а анализу данных никто не учил. Методу подсмотрел: "Моделирование литейных технологий В СКМ ЛП LVMFlow - И.А. Пугачев"
×
×
  • Создать...