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

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


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

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

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




  • Сообщения

    • ola_ferret
      Спасибо Вам огромное!!! Все получилось!!!
    • Аверьянов Николай
    • Александр1979
      На старых фануках это опция. Какая у вас модель ЧПУ Fanuc ?
    • kirass
      Можно! Свойства пользователя->параметры кэширования-> обновлять кэш при входе(убрать галку)  
    • zwg
    • Аверьянов Николай
      помогите пжл. какие существуют разрешающие параметры для прямого программирования угла через А? пример проги:    G0X0 G1Z0F0.5 X100. X120.,A10. дело не в запятой перед "А" и не в точках после цифр.   и не в том, что станок старый или в нём есть ось А. дело именно в параметрах, в которых есть бит, ноль или единица, --- разрешение данного программирования   
    • gudstartup
      и что? а сколько станок зарабатывает за месяц  он же у вас в 3 смены пашет или он воздух фрезерует? время-деньги и это знают все самое главное в ремонте станков это его оперативность если оборудование будет стоять потому что сервис и ваше омтс  просто подумать хочет то скоро будет   надо думать о том что кушать модульный и блочный ремонт для производства это лучший вариант для бесперебойной работы и исполнения заказов .   идеи вам были предложены . отсутствие опыта компенсируется наличием схемы которую вы назвали элементарной.   если вы думаете что с вашим омтс времени на покупку радиоэлементов уйдет меньше чем на покупку блока то напрасно. даже есть обратная зависимость чем дороже приобретаемая запчасть  тем быстрее ее привозят потому что маржа больше там просто больше нет элементов на которых его можно было бы собрать.
    • Torin
      Есть вопрос по Лоцману, а где он хранит данные? К примеру в Windchill это vaults, а тут где?
    • Guhl
      Точно, я был неправ Разрешение дает сигнал с оптопары, которую, как я сейчас вспоминаю, включает падение напряжение на диоде в звене постоянного тока
    • Alexey8107
      Чем это плохо? А то что станок стоит, так что ему делать? На данный момент да, сижу с блоком разбираюсь и плохого ничего в этом не вижу, в отличие от вас... А параллельно еще решаю десяток задач, в том числе и по заказу нового блока. Кстати, этот блок в сборе стоит 640 000, силовая плата 320, сигнальная плата 180, IGBT модули по 27 каждый, тиристорный блок 17. Почти все есть в наличии. И да, на Али это все можно купить гораздо дешевле, но без каких либо гарантий, привезти с Китая проблема даже окольными путями и у нас на заводе этой хренью никто страдать не будет. Так что ОМТС проверяет контрагента... То, что я чего то не пишу, это не означает что я этого не делаю, вы сами писали о том, что я слишком много пишу. По вашей просьбе сокращаю.  Мы уже говорили на эту тему. Я не спрашиваю, что у меня сломалось и дайте мне ответ что. Я знаю что сломался PSM, так как SPM работает, если ему подкинуть заведомо исправный PSM, описываю симптомы и спрашиваю Чувствуете разницу?  Вот и сижу разбираюсь, пока решается вопрос с новым. Вот лично я не вижу ничего в этом плохого. Лично мне это интересно, делаю заметки на будущее для себя и выкладываю в открытый доступ(видимо тоже не хорошо), может кому-то будет полезно. Да, я хоть и инженер электронщик, но всего знать просто невозможно, так что простите что вот таких элементарных для вас вещей не знал, что на IGBT модулях тут собран и выпрямитель и рекуператор одновременно
×
×
  • Создать...