Сейчас есть 2 алгоритма генерации выжигания точками, туда-же добавлю и построчную генерацию, но нужно определиться с первоочередными вариантами, и разобраться как правильно генерировать строки с g-командами, с расчетом на новую прошивку.staltech писал(а):Программ генерации g кода для построчной лазерной гравировки с управлением мощностью почти нет, по крайней мере для GRBL.Как видите файлы от версии GRBL v0.9j не подойдут для версии GRBL v1.1d
Эта функция есть в PicSender Pro, это американская прога и она платная. Есть еще очень закрытая прога у одного форумчанина, я больше для GRBL не знаю. Может не сильно искал.
Для генерации g кода можно в программе использовать калибровочную таблицу, с последующей линейной интерполяцией промежуточных значений мощности.
Можно использовать несколько таблиц для разных материалов. MAX3000 по моему ты об этом уже писал.
Плюс GRBL 1.1 позволяет в реальном времени корректировать скорость и мощность.
Исходники с файлом прошивки hex версия GRBL 1.1d от 13.11.2016 для Arduino Mega 2560. Внимание с механикой не проверялось!!!
Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
- selenur
- Почётный участник

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

- Сообщения: 544
- Зарегистрирован: 01 июл 2016, 22:50
- Репутация: 155
- Настоящее имя: Сергей
- Откуда: Пензенская обл., г. Никольск
- Контактная информация:
Re: Программа генерации G-кода, из текста, рисунка, PLT файл
Как я понял из тестов, команда S должна находится в одном кадре(строке) с координатами. Главное начать а там посмотрим, тестировать вроде пока есть кому.
Лично моя просьба изменить начало обхода пикселей, что бы координаты шли от X0 Y0, но это просто просьба.
Лично моя просьба изменить начало обхода пикселей, что бы координаты шли от X0 Y0, но это просто просьба.
- staltech
- Почётный участник

- Сообщения: 544
- Зарегистрирован: 01 июл 2016, 22:50
- Репутация: 155
- Настоящее имя: Сергей
- Откуда: Пензенская обл., г. Никольск
- Контактная информация:
Re: Программа генерации G-кода, из текста, рисунка, PLT файл
Вот это правильный вариант, но желательно сделать корректировочную таблицу в связи с нелинейностью.
Последний раз редактировалось staltech 13 ноя 2016, 15:37, всего редактировалось 1 раз.
-
MAX3000
- Опытный
- Сообщения: 107
- Зарегистрирован: 17 дек 2015, 11:12
- Репутация: 18
- Настоящее имя: MaX
- Контактная информация:
Re: Программа генерации G-кода, из текста, рисунка, PLT файл
selenur, для новой прошивки GRBL v1.1d - ЭТО ВАЖНО!selenur писал(а):Сейчас есть 2 алгоритма генерации выжигания точками, туда-же добавлю и построчную генерацию, но нужно определиться с первоочередными вариантами, и разобраться как правильно генерировать строки с g-командами, с расчетом на новую прошивку.
Тесты показали, что для GRBL v1.1d команды перемещения, мощности и включения лазера должны передаваться одной строкой:
Код: Выделить всё
G1 X10 S1000 M3
G1 X20 S900
G1 X30 S800
G1 X40 S700
G1 X50 S600
G1 X60 S500
G1 X70 S400
G1 X80 S300
G1 X90 S200
G1 X100 S100
M5- selenur
- Почётный участник

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

- Сообщения: 2989
- Зарегистрирован: 03 апр 2015, 13:23
- Репутация: 437
- Настоящее имя: Роман
- Откуда: Подольск
- Контактная информация:
Re: Программа генерации G-кода, из текста, рисунка, PLT файл
А зачем в каждой строке писать ''G1''? Если скорость постоянная, то достаточно только вначале программы указать скорость G1 F***...MAX3000 писал(а): Тесты показали, что для GRBL v1.1d команды перемещения, мощности и включения лазера должны передаваться одной строкой:Такой код дает отличный результат. На картинках хорошо видно разницу.Код: Выделить всё
G1 X10 S1000 M3 G1 X20 S900 G1 X30 S800 G1 X40 S700 G1 X50 S600 G1 X60 S500 G1 X70 S400 G1 X80 S300 G1 X90 S200 G1 X100 S100 M5
Это сугубо мое мнение, могу и ошибаться...
https://vk.com/rom327
GRBL настройки: http://blogandbux.blogspot.com/2018/07/ ... revod.html
G коды: http://3d-stanki.ru/spravochnik/program ... stankov-2/
https://vk.com/rom327
GRBL настройки: http://blogandbux.blogspot.com/2018/07/ ... revod.html
G коды: http://3d-stanki.ru/spravochnik/program ... stankov-2/
- xvovanx
- Мастер
- Сообщения: 3772
- Зарегистрирован: 25 фев 2016, 12:27
- Репутация: 920
- Настоящее имя: Владимир
- Откуда: Latvia
- Контактная информация:
Re: Программа генерации G-кода, из текста, рисунка, PLT файл
Вечер добрый!
Уважаемый Selenur, а можно в програмку добавить (как было в старый версиях) - выбор: фрезеровка/прожиг. А то в Г-коде при фрезеровке отсутствует напрочь Z координата и весь текст идет "слитно" без подъема фрезы. Прога получается ориентирована чисто на лазер...
И 'косячок' выскакивает при работе с растром
Уважаемый Selenur, а можно в програмку добавить (как было в старый версиях) - выбор: фрезеровка/прожиг. А то в Г-коде при фрезеровке отсутствует напрочь Z координата и весь текст идет "слитно" без подъема фрезы. Прога получается ориентирована чисто на лазер...
И 'косячок' выскакивает при работе с растром
- selenur
- Почётный участник

- Сообщения: 4605
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1622
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: Программа генерации G-кода, из текста, рисунка, PLT файл
По поводу поднятия, опускания, это делается путем добавления команд, при нажатии выделенных кнопок: Перед началом траектории необходимо добавить команду "Z0", или "Z-0.1" если нужно некоторое заглублениеxvovanx писал(а):Вечер добрый!
Уважаемый Selenur, а можно в програмку добавить (как было в старый версиях) - выбор: фрезеровка/прожиг. А то в Г-коде при фрезеровке отсутствует напрочь Z координата и весь текст идет "слитно" без подъема фрезы. Прога получается ориентирована чисто на лазер...![]()
И 'косячок' выскакивает при работе с растром
При окончании траектории, нужно задать команду поднятия на безопасную высоту, например "Z5".
Если теперь нажать кнопку Генерация G-кода, то получишь нужный результат.
А при работе с растром что за косяк?
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
- selenur
- Почётный участник

- Сообщения: 4605
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1622
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: Программа генерации G-кода, из текста, рисунка, PLT файл
А понял, проблема в незаполненных некоторых параметрах, перед генерацией, добавлю ещё проверки, на заполненность полей.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
-
MAX3000
- Опытный
- Сообщения: 107
- Зарегистрирован: 17 дек 2015, 11:12
- Репутация: 18
- Настоящее имя: MaX
- Контактная информация:
Re: Программа генерации G-кода, из текста, рисунка, PLT файл
selenur, еще для избежания поджигов по краям потушеный лазер (M5 или S0) должен выходить за линию печати на 1-3 мм (можно добавить поле для задания данной величины) для разгона двигателей - так называемая зона торможения разгона.
И еще по поводу команды M5 - скорее всего ее можно заменить командой S0, а M5 добавлять в самом конце файла.
И еще по поводу команды M5 - скорее всего ее можно заменить командой S0, а M5 добавлять в самом конце файла.
- selenur
- Почётный участник

- Сообщения: 4605
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1622
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: Программа генерации G-кода, из текста, рисунка, PLT файл
Для примера, как должен выглядеть G-код?MAX3000 писал(а):selenur, еще для избежания поджигов по краям потушеный лазер (M5 или S0) должен выходить за линию печати на 1-3 мм (можно добавить поле для задания данной величины) для разгона двигателей - так называемая зона торможения разгона.
И еще по поводу команды M5 - скорее всего ее можно заменить командой S0, а M5 добавлять в самом конце файла.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
-
MAX3000
- Опытный
- Сообщения: 107
- Зарегистрирован: 17 дек 2015, 11:12
- Репутация: 18
- Настоящее имя: MaX
- Контактная информация:
Re: Программа генерации G-кода, из текста, рисунка, PLT файл
На картинках:selenur писал(а):Для примера, как должен выглядеть G-код?
G0 - красный
G1 - зеленый
Вот так выглядит файл без зоны торможения-разгона - Test-S400.nc: У него край в увеличенном виде выглядит так: А вот так выглядит файл с зоной торможения-разгона - Test-S400-AS.nc и Test-S400-AM.nc:
Здесь два варианта:
- управление при помощи команд M3/M5 - файл Test-S400-AM.nc
- управление при помощи команды S0 - файл Test-S400-AS.nc
Test-S400.nc
Код: Выделить всё
G0 X0 Y0
G1 X10 S1000 M3
G1 X20 S900
G1 X30 S800
G1 X40 S700
G1 X50 S600
G1 X60 S500
G1 X70 S400
G1 X80 S300
G1 X90 S200
G1 X100 S100
M5
G0 X100 Y0.2
G1 X90 S100 M3
G1 X80 S200
G1 X70 S300
G1 X60 S400
G1 X50 S500
G1 X40 S600
G1 X30 S700
G1 X20 S800
G1 X10 S900
G1 X0 S1000
M5
Код: Выделить всё
G0 X-2 Y0
G0 X0
G1 X10 S1000 M3
G1 X20 S900
G1 X30 S800
G1 X40 S700
G1 X50 S600
G1 X60 S500
G1 X70 S400
G1 X80 S300
G1 X90 S200
G1 X100 S100
M5
G0 X102
G0 X102 Y0.2
G0 X100
G1 X90 S100 M3
G1 X80 S200
G1 X70 S300
G1 X60 S400
G1 X50 S500
G1 X40 S600
G1 X30 S700
G1 X20 S800
G1 X10 S900
G1 X0 S1000
M5
2 - расстояние в мм, на которое будет выходить лазер, так называемая зона торможения-разгона (можно добавить поле для задание данной величины и еще добавить галочку для активации, может кому-то не нужна будет эта зона торможения-разгона).
Test-S400-AS.nc
Код: Выделить всё
G0 X-2 Y0
G0 X0
G1 X10 S1000
G1 X20 S900
G1 X30 S800
G1 X40 S700
G1 X50 S600
G1 X60 S500
G1 X70 S400
G1 X80 S300
G1 X90 S200
G1 X100 S100
S0
G0 X102
G0 X102 Y0.2
G0 X100
G1 X90 S100
G1 X80 S200
G1 X70 S300
G1 X60 S400
G1 X50 S500
G1 X40 S600
G1 X30 S700
G1 X20 S800
G1 X10 S900
G1 X0 S1000
S0
Файлы примеров:
Последний раз редактировалось MAX3000 14 ноя 2016, 12:20, всего редактировалось 2 раза.
- selenur
- Почётный участник

- Сообщения: 4605
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1622
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: Программа генерации G-кода, из текста, рисунка, PLT файл
Хорошо, добавлю в программу 
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
-
arkhnchul
- Мастер
- Сообщения: 1773
- Зарегистрирован: 01 фев 2016, 13:56
- Репутация: 339
- Откуда: москва
- Контактная информация:
Re: Программа генерации G-кода, из текста, рисунка, PLT файл
https://github.com/arkhnchul/Inkscapestaltech писал(а):Программ генерации g кода для построчной лазерной гравировки с управлением мощностью почти нет, по крайней мере для GRBL.
ЗЫ с управлением мощностью не факт что у меня в коде работает, проверить руки не доходят. В оригинале - https://github.com/305engineering/Inkscape - точно должно.
- selenur
- Почётный участник

- Сообщения: 4605
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1622
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: Программа генерации G-кода, из текста, рисунка, PLT файл
Сейчас в процессе переделки, методики формирования G-кода, что-бы можно было самостоятельно, составлять формат наполнения:
Теперь файлы профиля, выглядят так:
Вариант 1:
Вариант 2:
Вариант 3:
Вот пример когда траектория одна и тоже, по профиль разный:
как вам такая реализация? 
Теперь файлы профиля, выглядят так:
Вариант 1:
Код: Выделить всё
# Настройка для лазерного выжигателя P - вариант #
"%"
"G90"
"S0"
"M5"
"G0 F400"
LINES
{
"G0" [X.] [Y.]
POINTS
{
[SKIP_FIRST_POINT]
"M3" [X.!] [Y.!] "G4" [P]
"M5"
}
}
"G0 X0 Y0"
"M30"
"%"
Код: Выделить всё
# Настройка для лазерного выжигателя S - вариант #
"%"
"G90"
"S0"
"M5"
"G0 F400"
"G1 F400"
LINES
{
"G0" [X.] [Y.]
POINTS
{
[G1!] [X.] [Y.] [S] "M3"
}
"M5"
}
"G0 X0 Y0"
"M30"
"%"
Код: Выделить всё
# Настройка для фрезера #
"%"
"M3"
"G0 F400"
"G1 F400"
"G90 G10 L20 P0 X0 Y0 Z0"
"G0 X0 Y0 Z10"
LINES
{
"G0" [X.] [Y.]
"Z0"
POINTS
{
[G1!] [X.] [Y.] [S] "M3"
}
"Z10"
}
"M5"
"G0 X0 Y0 Z10"
"M30"
"%"
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
-
MAX3000
- Опытный
- Сообщения: 107
- Зарегистрирован: 17 дек 2015, 11:12
- Репутация: 18
- Настоящее имя: MaX
- Контактная информация:
Re: Программа генерации G-кода, из текста, рисунка, PLT файл
selenur, отлично!
Только во 2 варианте (S вариант) "M3" в каждой строке не нужны.
M3 - вставляется один раз в начале
Только во 2 варианте (S вариант) "M3" в каждой строке не нужны.
M3 - вставляется один раз в начале
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Программа генерации G-кода, из текста, рисунка, PLT файл
"The NIST RS274NGC Interpreter - Version 3" утверждает, что скорость может задаваться командой S в любом месте и в любое время, но реально она должна изменяться командами включения шпинделя (m3/m4).
Кстати, к моменту выполнения команд m3/m4/m5 станок должен полностью завершить движение по траектории, т.е. остановится. Т.о. код типа
g0 x0 y0
g1 x50 m3
g1 x100 m3
будет пройден с полной остановкой посередине.
Кстати, к моменту выполнения команд m3/m4/m5 станок должен полностью завершить движение по траектории, т.е. остановится. Т.о. код типа
g0 x0 y0
g1 x50 m3
g1 x100 m3
будет пройден с полной остановкой посередине.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- selenur
- Почётный участник

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

- Сообщения: 4605
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1622
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: Программа генерации G-кода, из текста, рисунка, PLT файл
В процессе разработки, что-бы можно было сделать такую штуку:
решил в генерацию G-кода, добавить поддержку математических функций, что позволит, добавлять края, выделенные красным, в коде самого профиля, не затрагивая при этом стандартный алгоритм, генерации.
Для примера вот результат, в котором я пока просто беру координату X и умножаю на два. В результате чего, получается G-код, растянутый по оси Х
На переднем фоне, исходная траектория текста, а на заднем фоне полученная
Для примера вот результат, в котором я пока просто беру координату X и умножаю на два. В результате чего, получается G-код, растянутый по оси Х
На переднем фоне, исходная траектория текста, а на заднем фоне полученная
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
-
MAX3000
- Опытный
- Сообщения: 107
- Зарегистрирован: 17 дек 2015, 11:12
- Репутация: 18
- Настоящее имя: MaX
- Контактная информация:
Re: Программа генерации G-кода, из текста, рисунка, PLT файл
selenur, алгоритм немножко другой должен быть. Зона торможения-разгона прибавляется/вычитается к крайним Х-точкам линии перед и после G0. Но тут надо учитывать координату Х начала следующей линии, если она больше, то прибавлять к ней, если меньше, то прибавлять к текущей - это если движение происходит по контуру картинки, пропуская белые места. А если перемещение осуществлять по ширине картинки, то тут проще - перед G0 лазер движется G0 Xmax+dx (G0 Xmin-dX), затем идет команда G0 X dY, дальше G0 X-dX и код отрисовки следующей линии, крайние положения лазера по координате Х всегда будут одинаковы, но при таком методе лишние движения будут.
Последний раз редактировалось MAX3000 21 ноя 2016, 16:53, всего редактировалось 1 раз.