Интерполяция по кривой

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
jeni00
Опытный
Сообщения: 112
Зарегистрирован: 04 июн 2012, 22:29
Репутация: 1
Откуда: Волгодонск
Контактная информация:

Интерполяция по кривой

Сообщение jeni00 »

А есть такой интерполятор не только по прямой или по окружности, а по кривой описанной формулой любой например синусоидой и т.д? ведь станку совершенно без разницы, как двигаться. у кого какие есть мысли
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Интерполяция по кривой

Сообщение Nick »

Есть проход по сплайну...
http://www.linuxcnc.org/docs/devel/html ... 1-B-spline

А для чего тебе? Вся проблема в том, что с ними гораздо сложнее работать, там хитрая математика, и многие вещи вычисляются только вычислительными методами приближения. В отличие от дуг и прямых - длины которых вычисляются алгебраически => за фиксированное время
jeni00
Опытный
Сообщения: 112
Зарегистрирован: 04 июн 2012, 22:29
Репутация: 1
Откуда: Волгодонск
Контактная информация:

Re: Интерполяция по кривой

Сообщение jeni00 »

в целях самообразования, например сделать зуб по эвольвенте, на сколько я понял, вся проблема только во времени расчета, что может выйти за рамки расчета отведенного времени для выдачи команды двигателю (не попасть в реал-тайм,как то так:)), я правильно понимаю?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Интерполяция по кривой

Сообщение Nick »

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

А как ты хочешь эвольвенту описать? Можно сделать скрипт, который эту эвольвенту достаточно точно аппроксимирует прямыми или дугами...
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Интерполяция по кривой

Сообщение selenur »

Сейчас как раз контроллер делаю, и есть такая штука как аргоритм Брезенхема, на википедии можете посмотреть, этот человек придумал очень простой алгоритм для плоттера, для движения по прямой или по оружности используется всего несколько целых переменных, с небольшой доработкой пропорций движения по оси x и y можно добиться вообще любой дуги. И при этом не требуется использовать sin и cos.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: Интерполяция по кривой

Сообщение Сергей Саныч »

selenur писал(а):и есть такая штука как аргоритм Брезенхема,
Есть такое дело. И из операций - только сложение и вычитание. Не надо ни умножения, ни деления. Элементарно реализуется на самых простых МК. Делал году в 83 граф. дисплей на К1801ВМ1 с использованием этого алгоритма.
Чудес не бывает. Бывают фокусы.
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

Re: Интерполяция по кривой

Сообщение Impartial »

jeni00 писал(а):а по кривой описанной формулой любой например синусоидой и т.д?
Есть, преобразование Фурье называется.
jeni00
Опытный
Сообщения: 112
Зарегистрирован: 04 июн 2012, 22:29
Репутация: 1
Откуда: Волгодонск
Контактная информация:

Re: Интерполяция по кривой

Сообщение jeni00 »

Impartial писал(а):Фурье называется.
Ну предположим я помню что любую функцию можно разложить в ряд и даже помню что есть метод аппроксимации кривой, даже знаю что вся вычислительная техника принципиально: не рассчитать, не построить не может гладкую кривую, а только ее аппроксимированное представление из прямых отрезков, собственно на стойке ЧПУ круговой интерполяции нет, а есть только аппроксимированное представление окружности, просто думал есть ли такое изкаропки, уже понял что нет))))
Nick писал(а):Отступ от этих кривых для компенсации радиуса инструмента очень сложный и т.д.
- понятно
Nick писал(а):А как ты хочешь эвольвенту описать? Можно сделать скрипт, который эту эвольвенту достаточно точно аппроксимирует прямыми или дугами...
-ну собственно можно все сразу аппроксимировать отрезками
Ответить

Вернуться в «LinuxCNC»