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

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


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

Есть 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 пользователей

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




  • Сообщения

    • maxx2000
      конечно есть, apt это  cldata в котором к траекториям может быть добавлено и описание геометрии. 
    • gudi
      там же виндовс  или я ошибаюсь? 
    • Guhl
      Там есть неуправляемый мост на диодах и мост на тиристорах для рекуперации Тиристоры молотят постоянно. Не могу сказать в какой именно момент приходит импульсы на открытие - в начале полуволны или в около ее пика, но зажигание на тиристорах я видел и когда рекуперация не происходила Если вы открыли тиристор, то закроется он только тогда, когда через него прекратится ток, поэтому неважно постоянно приходят импульсы или нет. То есть если даже вы открыли тиристор в момент превышения постоянки, то закрыть вы его все равно не сможете так просто    
    • gudstartup
      они открываются тогда когда напряжение на шине dc выше допустимого иначе они будут вам просто так dc линию просаживать даже когда она в номинале а зачем это надо ? а я понял  чтобы на dc линии дополнительные пульсации создавать  вам может схему привести или вы сами найдете? @Guhl у вас не зародилась в голове мысль зачем ставить управляемый вентиль если он всегда сливает. угол уэ управления меняется можете проверить на ваших любимых древних приводах
    • Guhl
      Аргумент приведете в пользу своего утверждения?
    • AlexKaz
      Выложен конвертер файлов результатов Radioss/OR в d3plot-файлы LS-Prepost. Конвертер позволяет очень сильно упростить жизнь при постобработке, т.к. удобного фриварного нативного просмотрщика результатов OR фактически нет, а юзать Paraview то ещё удовольствие, в основном, из-за отсутствия в Paraview огромного количества фич LS-Prepost.   https://www.vortex-cae.com/vortex-radioss https://github.com/orgs/OpenRadioss/discussions/2361 Видео.
    • gudstartup
      работайте  на повышением квалификации а станок пускай стоит чего ему сделается а чего вы спрашивали то такого чего никто не знает? что у меня неисправно так на этот вопрос вам ни на одном форуме не ответят и даже в сервис-центре не расскажут... биполярники теряют даже большую мощность на себе чем диоды именно поэтому и сделали на тиристорах чтобы радиаторы размером с дом не ставить дурь пишите
    • Alexey8107
      Ладно, я понял. Обычная проблема форумов, если спрашиваешь никто не знает, но как только начинаешь конкретнее вникать, так это и так все знают. Значит бум как обычно, разбираться самостоятельно.
    • Guhl
      Ха, конечно не было Там биполярники стоят на 120А , у которых ток базы 5А А на тиристорах сделано прикольно: тиристоры постоянно молотят и если напряжение шины растёт, то автоматом сливают в сеть, там и управления толком никакого, так, сифу обычное 
    • arsenev
      Спасибо. Так я, конечно, пробовал, но видно всё-таки есть различия.
×
×
  • Создать...