Генерация G-кода, из текста, рисунка, и файлов PLT, DXF

Mach, популярные и не очень CAD, CAM. Обсуждение и разработка программ для управления станками.
y-u-r
Кандидат
Сообщения: 68
Зарегистрирован: 18 дек 2016, 06:43
Репутация: 4
Настоящее имя: Юрий
Контактная информация:

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF

Сообщение y-u-r »

Спасибо за разьяснения , понял - надо "врукопашную" удалять контура....
Главное я не ошибся - есть два прохода , которые сильно "мажут" мелкие картинки и буквы.
Пользовался еще одной известной программой - так же делает двойной контур.


С праздником !
Вложения
StepCam_1.79_Setup.zip
(736.12 КБ) 3794 скачивания
test3210
Опытный
Сообщения: 105
Зарегистрирован: 24 дек 2016, 22:16
Репутация: 31
Настоящее имя: Денис
Контактная информация:

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF

Сообщение test3210 »

попробовал, результаты следующие
мой лазер, гад, имеет крайне узкую грань между еще не оставляю точки и уже режу на несколько десяток в глубь, + еще скорость
кстати и правда скорость намного лучше влияет на яркость точки, короче профиль получился такой лазер от 170 до 186 и + скорость от 1424 до 400 (чем сильнее прожиг тем ниже скорость и выше скорость)

Код: Выделить всё

# Настройка для лазерного выжигателя S - Bright #
$.$
"G1 F3000 X0 Y0 Z0"
"S0"
"M3"

LINES
{
"G1 X"[X] "Y"[Y] " F5000 S0"
   POINTS
   {
      "G1 X"[X] "Y"[Y] " F"[400+((bright)*4)'#0.']" S"[170+((255-bright)/16)'#0.']
   }
 }
"S0"
"M05"
"G0 X0 Y0"
Есть еще момент, в разных программах отправляющих g-код получается разный результат, я отправлял в Candle причем в свернутом состоянии, тогда получается приличный результат и высокая скорость
Вложения
IMG_20170101_171805.jpg (11629 просмотров) <a class='original' href='./download/file.php?id=98972&mode=view' target=_blank>Загрузить оригинал (703.27 КБ)</a>
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF

Сообщение selenur »

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

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF

Сообщение selenur »

А вот что в разных программах, один и тот-же g-код дает разный результат, это очень странно......
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
staltech
Почётный участник
Почётный участник
Сообщения: 544
Зарегистрирован: 01 июл 2016, 22:50
Репутация: 155
Настоящее имя: Сергей
Откуда: Пензенская обл., г. Никольск
Контактная информация:

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF

Сообщение staltech »

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

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF

Сообщение selenur »

надо будет своим не доделанным до конца сендером попробовать, т.к. у меня не только в отдельном потоке, но еще через события работа с ком портом, и посмотреть на результат.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
staltech
Почётный участник
Почётный участник
Сообщения: 544
Зарегистрирован: 01 июл 2016, 22:50
Репутация: 155
Настоящее имя: Сергей
Откуда: Пензенская обл., г. Никольск
Контактная информация:

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF

Сообщение staltech »

selenur писал(а):надо будет своим не доделанным до конца сендером попробовать, т.к. у меня не только в отдельном потоке, но еще через события работа с ком портом, и посмотреть на результат.
В этом случае все должно работать стабильно. В QT это делается через сигнал-слоты и этого хватает чтобы отгородить GUI от работы с портом, даже когда окно полностью фризится файл передается без проблем.
Аватара пользователя
staltech
Почётный участник
Почётный участник
Сообщения: 544
Зарегистрирован: 01 июл 2016, 22:50
Репутация: 155
Настоящее имя: Сергей
Откуда: Пензенская обл., г. Никольск
Контактная информация:

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF

Сообщение staltech »

Кстати я в прошлый раз добил проблему с ошибкой ID25. Пришлось добавить специальный режим в котором запросы о текущих координатах передавались только в кадрах с командами. Проводил тесты с файлами в 1.5 суток. Если использовать версию на ARM этой проблемы просто нет, так что у Arduino просто не хватает производительности для некоторых файлов растровой гравировки.
test3210
Опытный
Сообщения: 105
Зарегистрирован: 24 дек 2016, 22:16
Репутация: 31
Настоящее имя: Денис
Контактная информация:

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF

Сообщение test3210 »

есть туча точек, и разные программы по разному грузят буфер контроллера, если режим m03 то при работе с лазером после g1 x2 y3 s127 лазер не отключится и мощность такой и останется до следующей команды,так что время которое проходит между командами играет большую роль, по сути пока ведется линия с определенной скоростью например от 1 до 10 и 10 точек на этой линии с одинаковыми скоростью и мощностью дадут разные результаты



я свой сендер написал на эвентах, по принципу отправил кадр получил ок отправил следующий , не загружая буфер grbl до упора как это делает Candle, у меня скорость ниже чем в свернутом Candle но выше чем в развернутом
Аватара пользователя
staltech
Почётный участник
Почётный участник
Сообщения: 544
Зарегистрирован: 01 июл 2016, 22:50
Репутация: 155
Настоящее имя: Сергей
Откуда: Пензенская обл., г. Никольск
Контактная информация:

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF

Сообщение staltech »

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

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF

Сообщение selenur »

Вот новая версия 27: https://github.com/selenur/ToolsGenGkod ... 27/v27.zip
Добавлен новый алгоритм, преобразования изображения, в контуры (получение скелета) по алгоритму Zhang-Suen, данный алгоритм вот такой рисунок:
2017-01-02_025642.jpg (11565 просмотров) <a class='original' href='./download/file.php?id=98980&mode=view' target=_blank>Загрузить оригинал (39.59 КБ)</a>
превращает в такой:
2017-01-02_025722.jpg (11565 просмотров) <a class='original' href='./download/file.php?id=98981&mode=view' target=_blank>Загрузить оригинал (23.28 КБ)</a>
Т.е. получает скелет изображения, на текущий момент алгоритм достаточно не оптимизирован, поэтому обработка изображения елки, размером 2500*3500 пикселей у меня на ноутбуке занимает 20-30 секунд, пока оптимизировать не хватает времени.....

Ну и собственно как это делается:
Если нужно получить именно скелет, а не просто контуры, нужно установить указанный флажок:
2017-01-02_024749.jpg (11565 просмотров) <a class='original' href='./download/file.php?id=98982&mode=view' target=_blank>Загрузить оригинал (280.53 КБ)</a>
Что позволит получить скелет:
2017-01-02_024522.jpg (11565 просмотров) <a class='original' href='./download/file.php?id=98983&mode=view' target=_blank>Загрузить оригинал (1.38 МБ)</a>
Так-же не забываем, об оптимизации:
2017-01-02_024551.jpg (11565 просмотров) <a class='original' href='./download/file.php?id=98984&mode=view' target=_blank>Загрузить оригинал (176.25 КБ)</a>
И собственно результат:
2017-01-02_024500.jpg (11565 просмотров) <a class='original' href='./download/file.php?id=98985&mode=view' target=_blank>Загрузить оригинал (223.91 КБ)</a>
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
y-u-r
Кандидат
Сообщения: 68
Зарегистрирован: 18 дек 2016, 06:43
Репутация: 4
Настоящее имя: Юрий
Контактная информация:

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF

Сообщение y-u-r »

Так и хочется прямо сейчас попробовать ! :D
А то ползаю всю ночь без дела (спину скрутило :cry: )
Домашние не оценят такой прыти - включить ночью "Ёлку" на ЧПУ. :idiot:
Проснутся все , сделаю ёлку , выложу фото , как вышло........
y-u-r
Кандидат
Сообщения: 68
Зарегистрирован: 18 дек 2016, 06:43
Репутация: 4
Настоящее имя: Юрий
Контактная информация:

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF

Сообщение y-u-r »

Ай-Ай , то ли туплю :wik: , то ли реально отсутствуют в программе два пункта, то ли не нашел....
Установки по Z высота подхода и глубина фрезы.......
"Ткните" пожалуйста.. :)

Кстати про полоски так сказать "занятости" или часы песочные повесить , когда программа обсчитывает результаты.
Иногда не ясно ,закончила обсчет программа или нет , нажимаешь кнопку далее и "висим" сразу сообщение ПРОГРАММА НЕ ОТВЕЧАЕТ...
test3210
Опытный
Сообщения: 105
Зарегистрирован: 24 дек 2016, 22:16
Репутация: 31
Настоящее имя: Денис
Контактная информация:

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF

Сообщение test3210 »

y-u-r писал(а):Ай-Ай , то ли туплю :wik: , то ли реально отсутствуют в программе два пункта, то ли не нашел....
Установки по Z высота подхода и глубина фрезы.......
"Ткните" пожалуйста.. :)
с z придется править профиль самостоятельно, хотя согласен, добавить пару окошек и передавать их значениия в профиль было бы правильнее, тогда формула в профиле по яркости будет типа

Код: Выделить всё

 "G1 X"[X] "Y"[Y] " S"[Zmin+((255-bright)/255*Zmax)'#0.#']
либо если обычный профиль то это будет просто глубина вреза и ее задать можно будет при генерации
Кстати про полоски так сказать "занятости" или часы песочные повесить , когда программа обсчитывает результаты.
Иногда не ясно ,закончила обсчет программа или нет , нажимаешь кнопку далее и "висим" сразу сообщение ПРОГРАММА НЕ ОТВЕЧАЕТ...
лучше прогресс бар по кол-ву линий максимум, текущий прогрес обрабатываемая линия

в новой версии тоже только вариант 1 работает, раскладки вариант 2 3 4 по осям так и не работают
еще пожелание , для ч/б растровых изображений давать яркость тоже, тогда будет возможность использовать один профиль для всего
MAX3000
Опытный
Сообщения: 107
Зарегистрирован: 17 дек 2015, 11:12
Репутация: 18
Настоящее имя: MaX
Контактная информация:

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF

Сообщение MAX3000 »

Всех с Новым Годом!
test3210 писал(а):В принципе алгоритм как таковой не нужен, если в профиле будет доступна яркость пусть к примеру это будет параметр RGB с диапазоном 0-255 , и задаваемые через окна перед генерацией кода в последнем окне пара параметров (например скорость задать или паузу на точку для разных материалов чтобы профиля не плодить если по быстрому) то больше ничего и не надо, все будет решено внутри профиля с огромной гибкостью. Т-е есть профиль фрезер в профиле яркость преобразуем в глубину реза и получаем к примеру строку типа "Z"[10-(RGB/25)] тогда при яркой точке режем на 10 мм и не режем при черной точке , надо наоборот ? не вопрос "Z"[(RGB/25)]
Лазер ? меняем Z на S , сколько у нас максимум ? 1000 тогда "S"[RGB*3.92)] не 1000 а 255 ? еще проще ... надо резать не от нуля ? тоже решается добавлением константы на сдвиг Не регулируется мощность лазера или это нихром , меняем скорость, либо добавляем паузу перед перемещением на время пропорциональное полутону, математика уже сейчас работает , и все что я написал выше можно сделать на данной программе + якрость
Откатать в таком виде на нескольких станках, нас много , каждый даст тот профиль который получился, дальше можно их встроить в программу, либо в виде алгоритмов либо еще как-то но делать решение в виде алгоритма не имея уверенности что поможет нет смысла
А если добавить прожиг на реверсном ходу то можно сократить лишние перемещения , но такая функция не всем станкам подходит, так что это должна быть опция
Так можно было бы сделать если бы была линейная зависимость мощности лазера от яркости, но это не так. И поэтому намного проще добавить вышеописанную таблицу (или эквалайзер), чем подобрать супер-формулу.

selenur, по поводу профилей - это второстепенная задача, но хорошо было бы её реализовать. Для чего? Кроме режимов работы станка - это фрезер, выжыгатель и лазер есть еще различные материалы, для которых нужно будет подбирать для каждого индивидуально зависимость мощности лазера S (и/или скорости F) от яркости, так вот эти зависимости и желательно сохранять в отдельный профиль.
MAX3000
Опытный
Сообщения: 107
Зарегистрирован: 17 дек 2015, 11:12
Репутация: 18
Настоящее имя: MaX
Контактная информация:

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF

Сообщение MAX3000 »

test3210 писал(а):с z придется править профиль самостоятельно, хотя согласен, добавить пару окошек и передавать их значениия в профиль было бы правильнее, тогда формула в профиле по яркости будет типа

Код: Выделить всё

 "G1 X"[X] "Y"[Y] " S"[Zmin+((255-bright)/255*Zmax)'#0.#']
Полностью согласен, без дополнительной страницы никак не обойтись поскольку зависимость мощность-яркость нелинейная.
test3210
Опытный
Сообщения: 105
Зарегистрирован: 24 дек 2016, 22:16
Репутация: 31
Настоящее имя: Денис
Контактная информация:

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF

Сообщение test3210 »

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

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF

Сообщение selenur »

test3210 писал(а):я супер формулу подбирал почти день на фанеру рисуя эту картинку с разными настройкам , потом мне уже будет проще с другим материалом
а пара окошек желательно чтобы была на последней стадии, рядом с профилем, чтобы динамически менять для разных материалов, или в меню впихнуть
Наверное нужно сделать что-то типа такого:
1381492905_monitor_ruchnoj.jpg (11502 просмотра) <a class='original' href='./download/file.php?id=98992&mode=view' target=_blank>Загрузить оригинал (13.72 КБ)</a>
где будет пара графиков, на первом графике:
указываем какую мощность применять в зависимости от яркости, например на яркости от 255 до 250 мощность равна нулю, а дальше по необходимости...
на втором графике настраиваем зависимость скорости от мощности.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF

Сообщение selenur »

И в этом окне настройки, отдельно будут профили для материала.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
MAX3000
Опытный
Сообщения: 107
Зарегистрирован: 17 дек 2015, 11:12
Репутация: 18
Настоящее имя: MaX
Контактная информация:

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF

Сообщение MAX3000 »

selenur писал(а):
test3210 писал(а):я супер формулу подбирал почти день на фанеру рисуя эту картинку с разными настройкам , потом мне уже будет проще с другим материалом
а пара окошек желательно чтобы была на последней стадии, рядом с профилем, чтобы динамически менять для разных материалов, или в меню впихнуть
Наверное нужно сделать что-то типа такого:
1381492905_monitor_ruchnoj.jpg
где будет пара графиков, на первом графике:
указываем какую мощность применять в зависимости от яркости, например на яркости от 255 до 250 мощность равна нулю, а дальше по необходимости...
на втором графике настраиваем зависимость скорости от мощности.
Совершенно верно, только не "зависимость скорости от мощности", а зависимость скорости от яркости.
И варианты генерации кода:
1. Мощность с графика, скорость постоянная;
2. Скорость с графика, мощность постоянная;
3. Мощность и скорость с графика (тут конечно возни много, но если долго мучиться - что-нибудь получится).
И все.
Последний раз редактировалось MAX3000 02 янв 2017, 16:00, всего редактировалось 2 раза.
Ответить

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