Программа CNC-Qt для работы на MK1 контроллере

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Karbofos
Опытный
Сообщения: 121
Зарегистрирован: 11 июн 2015, 10:40
Репутация: 85
Настоящее имя: Эдя Калиновский
Откуда: Ганновер
Контактная информация:

Программа CNC-Qt для работы на MK1 контроллере

Сообщение Karbofos »

Всем привет.
За основу перенял проект Сергея Управление контроллером MK1 и MK2 (planet-cnc). Портировал с дотнеты на мультиплатформенную Qt5. Исходники открытые. Но проверял только на Linux. Для сборки на Windows и OSX нужно доработать файл CMakeLists.txt. У меня возможности собирать на других системах нет, работаю только на линуксе.
Сейчас поддерживается только контроллер, базированный на MK1. В дальнейшем возможно расширение для MK2 и для открытого проекта Сергея, он делает контроллер на "Arduino". Не исключаю портирование libusb базированного драйвера на LinuxCNC, но там ещё разбираться надо.
Небольшое видео, демонтрирующее работу с файлом DaVinci.

https://www.youtube.com/watch?v=RglIsIvBLko
Что сделано:
Визуализация на OpenGL ES 2.0 (Embedded Systems 2.0) для возможности нативной работы на планшетах и миникомпьютерах, без программной прослойки обычного OpenGL.
Проделана оптимизация работы с полигонной сетью объектов, матрицы обрабатываются не в процессорных циклах, а отсылаются кусками прямиком на графиккарту.
Парсер G-Code оптимизирован по скорости, добавлены команды G2, G3. Дуги автоматически бъются на отрезки G1 и отправляются на контроллер.
Всторена возможность оптимизации обработки методом "пути колонии муравьев". Возможность отключения через опции. Сравнение отсортированного и оригинала на изображениях.
Кусок алгоритма с описанием забрал здесь: hackaday: g-code optimization Исходников всего проекта там, к сожалению, нет, только бинарники. Поэтому пришлось немного допиливать. Оптимизацию можно отключать в установках.
Сейчас пытаюсь найти все возможные установки, отправляемые в контроллер.
Поддерживаются пока три языка пользовательского интерфейса. Сделал так, что новый файл-перевод может сделать любой желающий в простом редакторе, а не исключительно программисты утилитой Qt Linguist. Файл-шаблон лежит в директории lang
Программу тестирую на Raspberry PI, система Raspbian. Для работы через WiFi с помощью ssh и визуализацией обработки нужна третья версия железяки. Надеюсь, что в новом ядре будет работать быстро и на RasPi 2.

Чего пока нет:

Встроены не все установки . Активно ищу, встраиваю. Основные установки уже найдены и встроены.
Нет поддержки MK2.
Нет поддержки других форматов, кроме G-Code. После установок собираюсь встроить пару дополнительных парсеров.
В самом G-Code пока не поддерживаются условные переходы, циклы. То есть те вещи, которые программируются руками, а не конвертерами. Собираюсь тоже потом встроить, но тут надо покумекать, как лучше.
Скан поверхности обработки.
Подключение видеокамеры.

Исходники здесь: https://github.com/eduard-x/cnc-qt
для работы на линуксе необходимо установить файл из директория udev/rules.d в каталог системы /etc/udev/rules.d и перезапустить udev демон. Как все происходит на других системах - не знаю. Скорее, на виндах происходит через запись в регистри и т.д.
Огромнейшее спасибо Сергею из Нового Уренгоя за расшифровку протокола и вообще, за его проект с открытыми исходниками. :good: Все было идеально выбрано: OpenGL, libusb
Кому интересно - присоединяйтесь, присылайте патчи, используйте куски исходников в своих программах. :beer_blow:
Вложения
оригинальный файл (2921 просмотр) <a class='original' href='./download/file.php?id=106743&mode=view' target=_blank>Загрузить оригинал (150.68 КБ)</a>
оригинальный файл
отсортированный файл (2921 просмотр) <a class='original' href='./download/file.php?id=106744&mode=view' target=_blank>Загрузить оригинал (148.57 КБ)</a>
отсортированный файл
Karbofos
Опытный
Сообщения: 121
Зарегистрирован: 11 июн 2015, 10:40
Репутация: 85
Настоящее имя: Эдя Калиновский
Откуда: Ганновер
Контактная информация:

Re: Программа CNC-Qt для работы на MK1 контроллере

Сообщение Karbofos »

В последнее время сделаны следующие улучшения в программе:
Парсер g-code стал быстрее в 2.5 раза, например DaVinci (36500 строк) на RaspberryPi 3 обрабатывается за 1 секунду, пока что одним ядром процессора.
Встроена возможность вывода тестовой информации на OpenGL ES
Исправлен CMake сборщик проекта на Windows
Исправления ошибок в программе.
Ответить

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