Проблема: image-to-gcode посредством скрипта autors.py - создает не очень гладкий g-код.
(если задать не так много точек, то код получается гладкий, но я хочу получить изделие которое не требует шлифовки, поэтому шаг беру маленький 0.0875мм и получается вот что)
Т.к. ПО ЧПУ развивается в направление B-сплайнов вот пример задания g-кода b-сплайном, а не дугами в LinuxCNC: Решение: решил написать новый алгоритм создания g-кода, а именно:
нужно разобраться с алгоритмом аппроксимации массива точек - B-сплайном, описанный Xunnian Yang.
Оригинал на английском.
Вот только я в математике и английском - не силен...
А тема важна для всех писателей CAM-ов! Они могли бы реализовать генерацию g-кодов в виде сплайнов, а не только в виде дуг.
Короче: помогите, пожалуйста, разобраться с алгоритмом\переводом на рус.язык.
Почему алгоритм именно этого автора? Одно из главных преимуществ(достоинств много) в универсальности алгоритма т.к. он полностью автоматизирован: автоматический подбор весовых коэффициентов, и пр.
Суть алгоритма: берем набор точек(или любую кривую и ставим на ней точки очень часто) и касательные в этих точках,
берем первые m точек - строим кубическую криву Безье - проверяем:
1) вложились в заданную точность E1
2) количество изгибов на кривой Безье получилось не больше чем в оригинальной выборке
- если нет - то уменьшаем диапазон m
-иначе - все ок - принимаем полученную кривую Безье - берем следующие m точек...
- полученные кубические кривые Безье преобразовываем в B-сплайн - путем деления каждой пары на 3и сегмента с точностью E2 - вот так: Вот что у него получилось: Обратите внимание на сглаживание и на сжатие - то сколько было точек(серенькие) и сколько стало(синие крестики).

