Управление контроллером MK1 и MK2 (planet-cnc)

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

Re: Управление контроллером mk1 (planet-cnc)

Сообщение selenur »

Moonglow писал(а):
Karbofos писал(а):QSerialPort
В данном случае, mk1 контроллер - это не USB-CDC класс устройств, поэтому данный класс не подойдет.

2selenur
Не пробовал Mono для сборки под Linux ? Да и Микрософт недавно открыл исходный код платформы .NET... неспроста :hottabych:
Пробовал, работу только интерфейсной части, работу с USB, не проверял....
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Karbofos
Опытный
Сообщения: 121
Зарегистрирован: 11 июн 2015, 10:40
Репутация: 85
Настоящее имя: Эдя Калиновский
Откуда: Ганновер
Контактная информация:

Re: Управление контроллером mk1 (planet-cnc)

Сообщение Karbofos »

selenur писал(а):Суппер! вообще молодец :-)
Спасибо! Если не против, буду давать готовый работающий код на c++ и пояснять, почему я так сделал. весь код, как только управлялка будет работать, тоже выдам, но , может быть, небольшие кусочки с пояснениями - проще. :thinking: Например, в работе OpenGL немного переделал выдачу координатных осей и самой фигуры. Координатные сделал так:

GLint xArray[][3] = {
{0, 0, 0}, {10, 0, 0}, {10, 0, 0},
{9, 1, 0}, {10, 0, 0}, {9, -1, 0}
};

//ось x
glColor3f(0.0f, 1.0f, 0.0f);
glVertexPointer(3, GL_INT, 0, xArray); // 3 координаты каждого пункта
glDrawArrays(GL_LINES, 0, 6); //рисуем массив линий, 6 пунктов массива

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

Re: Управление контроллером mk1 (planet-cnc)

Сообщение selenur »

Karbofos писал(а):
selenur писал(а):Суппер! вообще молодец :-)
Спасибо! Если не против, буду давать готовый работающий код на c++ и пояснять, почему я так сделал. весь код, как только управлялка будет работать, тоже выдам, но , может быть, небольшие кусочки с пояснениями - проще. :thinking: Например, в работе OpenGL немного переделал выдачу координатных осей и самой фигуры. Координатные сделал так:

GLint xArray[][3] = {
{0, 0, 0}, {10, 0, 0}, {10, 0, 0},
{9, 1, 0}, {10, 0, 0}, {9, -1, 0}
};

//ось x
glColor3f(0.0f, 1.0f, 0.0f);
glVertexPointer(3, GL_INT, 0, xArray); // 3 координаты каждого пункта
glDrawArrays(GL_LINES, 0, 6); //рисуем массив линий, 6 пунктов массива

т.к. рисовать сразу все - менее ресурсоёмко для графики. Коенчно, в этом случае не слишком затратно нарисовать отдельно несколько линий, но при работе с фигурой G-Code на слабых устройствах может начать тормозить. Немного переделал из-за идеи работать на RasPi. Не знаю даже, будет ли работать на нём, но попытаюсь.
О! дельный совет... я с 3D мало знаком, о таком незнал.. :-) у меня небольшие тормоза на компьютере появляются после 200000 строк G-кода (сформировано слайсером для 3D принтера), посмотрю что получиться применив данный метод :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Karbofos
Опытный
Сообщения: 121
Зарегистрирован: 11 июн 2015, 10:40
Репутация: 85
Настоящее имя: Эдя Калиновский
Откуда: Ганновер
Контактная информация:

Re: Управление контроллером mk1 (planet-cnc)

Сообщение Karbofos »

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

Re: Управление контроллером mk1 (planet-cnc)

Сообщение Karbofos »

selenur писал(а): О! дельный совет... я с 3D мало знаком, о таком незнал.. :-) у меня небольшие тормоза на компьютере появляются после 200000 строк G-кода (сформировано слайсером для 3D принтера), посмотрю что получиться применив данный метод :-)
Сергей, к концу недели я сделаю и дам протестированный кусок кода для выдачи объекта целиком. Примерно собираюсь переделать, как здесь: http://qt-apps.org/content/show.php/QRe ... ent=160728
в файле gcoder.cpp есть пример работы с OpenGL.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Управление контроллером mk1 (planet-cnc)

Сообщение selenur »

Вот тоже задумался, на qt перекинуть проект который из Gerber(не доделан немного) и PLT форматов генерирует G-kod, мне в принципе всеравно на чем писать :-) а так вроде универсальнее получается...
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Karbofos
Опытный
Сообщения: 121
Зарегистрирован: 11 июн 2015, 10:40
Репутация: 85
Настоящее имя: Эдя Калиновский
Откуда: Ганновер
Контактная информация:

Re: Управление контроллером mk1 (planet-cnc)

Сообщение Karbofos »

selenur писал(а):Вот тоже задумался, на qt перекинуть проект который из Gerber(не доделан немного) и PLT форматов генерирует G-kod, мне в принципе всеравно на чем писать :-) а так вроде универсальнее получается...
Без проблем, если вопросы будут какие, то помогу, чем могу. :hottabych:
Karbofos
Опытный
Сообщения: 121
Зарегистрирован: 11 июн 2015, 10:40
Репутация: 85
Настоящее имя: Эдя Калиновский
Откуда: Ганновер
Контактная информация:

Re: Управление контроллером mk1 (planet-cnc)

Сообщение Karbofos »

Потихоньку продвигаются тестирования. Прикручиваю чтение разных форматов файлов, тестирую usb интерфейс. Так что, Сергей, можешь потом перенять парсеры. Конструктор G-Code пока даже не начинал портировать, и без него тестировать много.
Вложения
cnc-mk1-3.png (2588 просмотров) <a class='original' href='./download/file.php?id=53268&mode=view' target=_blank>Загрузить оригинал (162.55 КБ)</a>
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Управление контроллером mk1 (planet-cnc)

Сообщение selenur »

Конструктор я думаю, удобнее сделать как отдельную программку, так-же с 3D вуализацией, а потом например через буфер обмена, перебрасывать данные из конструктора в управляющую программу, так-же это применительно и к другой программе импорта данных.
Что касается управляющей программы, то тут я думаю тебе стоит тогда предусмотреть поддержку 2-х контроллеров mk1 и mk2, т.к. на текущий момент, логичнее данный проект развивать совместно, если конечно есть желание, я например дальше продолжу парсить протокол обмена, и прочее...
Если сейчас нормально получиться запускать на убунте и винде, то я не вижу смысла тянуть текущий мой проект, который заточен чисто под виндовс... :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Karbofos
Опытный
Сообщения: 121
Зарегистрирован: 11 июн 2015, 10:40
Репутация: 85
Настоящее имя: Эдя Калиновский
Откуда: Ганновер
Контактная информация:

Re: Управление контроллером mk1 (planet-cnc)

Сообщение Karbofos »

Потом я могу тоже и конструктор портировать на qt4, как только всё в основной программе заработает. usb интерфейс попытаюсь доделать на неделе, может на выходных придётся еще уделить время. Постараюсь на выходных выдать исходники. :) с mk2 у меня сейчас трудно будет. Против того, чтобы расширить функционал совсем ничего не имею. :) Только за. Перенести с C# на плюсы - не вопрос, но пока у меня есть только возможность проверять с usb6560t4v3.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Управление контроллером mk1 (planet-cnc)

Сообщение selenur »

у меня есть и mk1 и mk2, так что с проверкой проблемм нет....
Ты главное не спеши, лучше сразу разработать нормальную архитектуру, что-бы потом не переписывать заново :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Управление контроллером mk1 (planet-cnc)

Сообщение selenur »

Вот тут http://habrahabr.ru/post/261955/ есть примеры работы с USB на qt :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Karbofos
Опытный
Сообщения: 121
Зарегистрирован: 11 июн 2015, 10:40
Репутация: 85
Настоящее имя: Эдя Калиновский
Откуда: Ганновер
Контактная информация:

Re: Управление контроллером mk1 (planet-cnc)

Сообщение Karbofos »

приветствую!
да я уже тут на libusb хотплуг прикрутил, сейчас работает детектор соединения. заодно немного переписал парсер g-code, чтобы можно было проще его расширять. сделал на регулярных выражениях, но не сильно мутил, чтобы понятно было не только мне. :)
например:
if (lineStream.indexOf(QRegExp("[G|M|F](\\d+)($|\\s)")) == -1) { // Gxx, Fxx or Mxx not found
...
}

благодарю за ссылку! уже сделал, продолжаю проверять передачу/приём данных на/c usb
на работе немного завал, поэтому особо не о чем было отчитываться ;)
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Управление контроллером mk1 (planet-cnc)

Сообщение Serg »

Karbofos писал(а):if (lineStream.indexOf(QRegExp("[G|M|F](\\d+)($|\\s)")) == -1) { // Gxx, Fxx or Mxx not found
Только это неправильный regexp, ибо стандарт допускает и такое:
g 1X 12.5 f100.1
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Karbofos
Опытный
Сообщения: 121
Зарегистрирован: 11 июн 2015, 10:40
Репутация: 85
Настоящее имя: Эдя Калиновский
Откуда: Ганновер
Контактная информация:

Re: Управление контроллером mk1 (planet-cnc)

Сообщение Karbofos »

с пробелами в произвольных местах? ужас какой. дополню тогда и для таких случаев.
GuruCNC
Опытный
Сообщения: 172
Зарегистрирован: 24 ноя 2014, 09:23
Репутация: -29
Настоящее имя: GuruCNC
Контактная информация:

Re: Управление контроллером mk1 (planet-cnc)

Сообщение GuruCNC »

Сейчас тебе тут наговорят...
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Управление контроллером mk1 (planet-cnc)

Сообщение Serg »

Не слушай всяких там гуру, лучше читай умные книжки типа "The NIST RS274NGC Interpreter - Version 3". :)
Spaces and tabs are allowed anywhere on a line of code and do not change the meaning of the
line, except inside comments. This makes some strange-looking input legal. The line “g0x +0. 12
34y 7” is equivalent to “g0 x+0.1234 y7”, for example.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Karbofos
Опытный
Сообщения: 121
Зарегистрирован: 11 июн 2015, 10:40
Репутация: 85
Настоящее имя: Эдя Калиновский
Откуда: Ганновер
Контактная информация:

Re: Управление контроллером mk1 (planet-cnc)

Сообщение Karbofos »

UAVpilot писал(а):Не слушай всяких там гуру, лучше читай умные книжки типа "The NIST RS274NGC Interpreter - Version 3". :)
Spaces and tabs are allowed anywhere on a line of code and do not change the meaning of the
line, except inside comments. This makes some strange-looking input legal. The line “g0x +0. 12
34y 7” is equivalent to “g0 x+0.1234 y7”, for example.
Да там переделать, или расширить, особого труда не составит, я в программе все равно в один формат привожу.
А книжки читать, был бы программистом ЧПУ, тогда давно бы уже прочёл, но т.к. программист-системщик, то мне нужно зреть в корень проблемы, так что весьма признателен за дополнительную инфу. :good:
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Управление контроллером mk1 (planet-cnc)

Сообщение Serg »

Karbofos писал(а):Да там переделать, или расширить, особого труда не составит, я в программе все равно в один формат привожу.
Можно сначала просто удалить все [\s] из строки...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Karbofos
Опытный
Сообщения: 121
Зарегистрирован: 11 июн 2015, 10:40
Репутация: 85
Настоящее имя: Эдя Калиновский
Откуда: Ганновер
Контактная информация:

Re: Управление контроллером mk1 (planet-cnc)

Сообщение Karbofos »

Привет всем!
Заканчиваю тестировать libusb интерфейс, на этих выходных выложу исходники. Есть добровольцы тестировать для начала на линукс? Выложу только ссылку на исходники, собирать нужно пока самому. из нужных зависимостей для сборки - libusb-1.0-0-dev, cmake, libqt4-dev, ну и gcc. Пока сделана только поддержка mk1.
Ответить

Вернуться в «Windows / Mach»