Страница 11 из 130

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Добавлено: 13 ноя 2016, 14:02
selenur
staltech писал(а):
Как видите файлы от версии GRBL v0.9j не подойдут для версии GRBL v1.1d
Программ генерации g кода для построчной лазерной гравировки с управлением мощностью почти нет, по крайней мере для GRBL.
Эта функция есть в PicSender Pro, это американская прога и она платная. Есть еще очень закрытая прога у одного форумчанина, я больше для GRBL не знаю. Может не сильно искал.
Для генерации g кода можно в программе использовать калибровочную таблицу, с последующей линейной интерполяцией промежуточных значений мощности.
Можно использовать несколько таблиц для разных материалов. MAX3000 по моему ты об этом уже писал.
Плюс GRBL 1.1 позволяет в реальном времени корректировать скорость и мощность.

Исходники с файлом прошивки hex версия GRBL 1.1d от 13.11.2016 для Arduino Mega 2560. Внимание с механикой не проверялось!!!
grbl-edge-mega.zip
Сейчас есть 2 алгоритма генерации выжигания точками, туда-же добавлю и построчную генерацию, но нужно определиться с первоочередными вариантами, и разобраться как правильно генерировать строки с g-командами, с расчетом на новую прошивку.

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Добавлено: 13 ноя 2016, 14:12
staltech
Как я понял из тестов, команда S должна находится в одном кадре(строке) с координатами. Главное начать а там посмотрим, тестировать вроде пока есть кому.
Лично моя просьба изменить начало обхода пикселей, что бы координаты шли от X0 Y0, но это просто просьба.

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Добавлено: 13 ноя 2016, 14:20
staltech
Вот это правильный вариант, но желательно сделать корректировочную таблицу в связи с нелинейностью.
Screenshot_40.jpg (4923 просмотра) <a class='original' href='./download/file.php?id=94707&mode=view' target=_blank>Загрузить оригинал (226.06 КБ)</a>

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Добавлено: 13 ноя 2016, 15:35
MAX3000
selenur писал(а):Сейчас есть 2 алгоритма генерации выжигания точками, туда-же добавлю и построчную генерацию, но нужно определиться с первоочередными вариантами, и разобраться как правильно генерировать строки с g-командами, с расчетом на новую прошивку.
selenur, для новой прошивки GRBL v1.1d - ЭТО ВАЖНО!
Тесты показали, что для 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
Такой код дает отличный результат. На картинках хорошо видно разницу.

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Добавлено: 13 ноя 2016, 15:49
selenur
переделаю под такой вариант

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Добавлено: 13 ноя 2016, 21:20
Rom327
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
Такой код дает отличный результат. На картинках хорошо видно разницу.
А зачем в каждой строке писать ''G1''? Если скорость постоянная, то достаточно только вначале программы указать скорость G1 F***...

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Добавлено: 13 ноя 2016, 21:33
xvovanx
Вечер добрый!
Уважаемый Selenur, а можно в програмку добавить (как было в старый версиях) - выбор: фрезеровка/прожиг. А то в Г-коде при фрезеровке отсутствует напрочь Z координата и весь текст идет "слитно" без подъема фрезы. Прога получается ориентирована чисто на лазер... :cry:
И 'косячок' выскакивает при работе с растром

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Добавлено: 13 ноя 2016, 21:54
selenur
xvovanx писал(а):Вечер добрый!
Уважаемый Selenur, а можно в програмку добавить (как было в старый версиях) - выбор: фрезеровка/прожиг. А то в Г-коде при фрезеровке отсутствует напрочь Z координата и весь текст идет "слитно" без подъема фрезы. Прога получается ориентирована чисто на лазер... :cry:
И 'косячок' выскакивает при работе с растром
По поводу поднятия, опускания, это делается путем добавления команд, при нажатии выделенных кнопок:
2016-11-13_234852.jpg (4882 просмотра) <a class='original' href='./download/file.php?id=94735&mode=view' target=_blank>Загрузить оригинал (428.37 КБ)</a>
Перед началом траектории необходимо добавить команду "Z0", или "Z-0.1" если нужно некоторое заглубление
При окончании траектории, нужно задать команду поднятия на безопасную высоту, например "Z5".
Если теперь нажать кнопку Генерация G-кода, то получишь нужный результат.
А при работе с растром что за косяк?

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Добавлено: 13 ноя 2016, 21:57
selenur
А понял, проблема в незаполненных некоторых параметрах, перед генерацией, добавлю ещё проверки, на заполненность полей.

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Добавлено: 13 ноя 2016, 22:58
MAX3000
selenur, еще для избежания поджигов по краям потушеный лазер (M5 или S0) должен выходить за линию печати на 1-3 мм (можно добавить поле для задания данной величины) для разгона двигателей - так называемая зона торможения разгона.
И еще по поводу команды M5 - скорее всего ее можно заменить командой S0, а M5 добавлять в самом конце файла.

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Добавлено: 13 ноя 2016, 23:06
selenur
MAX3000 писал(а):selenur, еще для избежания поджигов по краям потушеный лазер (M5 или S0) должен выходить за линию печати на 1-3 мм (можно добавить поле для задания данной величины) для разгона двигателей - так называемая зона торможения разгона.
И еще по поводу команды M5 - скорее всего ее можно заменить командой S0, а M5 добавлять в самом конце файла.
Для примера, как должен выглядеть G-код?

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Добавлено: 14 ноя 2016, 10:23
MAX3000
selenur писал(а):Для примера, как должен выглядеть G-код?
На картинках:
G0 - красный
G1 - зеленый
Вот так выглядит файл без зоны торможения-разгона - Test-S400.nc:
Test-S400.jpg (4847 просмотров) <a class='original' href='./download/file.php?id=94766&mode=view' target=_blank>Загрузить оригинал (45.3 КБ)</a>
У него край в увеличенном виде выглядит так:
Test-S400-Край.jpg (4847 просмотров) <a class='original' href='./download/file.php?id=94767&mode=view' target=_blank>Загрузить оригинал (178.79 КБ)</a>
А вот так выглядит файл с зоной торможения-разгона - Test-S400-AS.nc и Test-S400-AM.nc:
Здесь два варианта:
  • управление при помощи команд M3/M5 - файл Test-S400-AM.nc
  • управление при помощи команды S0 - файл Test-S400-AS.nc
Test-S400-AS-AM.jpg (4847 просмотров) <a class='original' href='./download/file.php?id=94768&mode=view' target=_blank>Загрузить оригинал (47.17 КБ)</a>
А край у него в увеличенном виде выглядит так:
Test-S400-AS-AM-Край.jpg (4847 просмотров) <a class='original' href='./download/file.php?id=94769&mode=view' target=_blank>Загрузить оригинал (194.17 КБ)</a>
Часть кода:
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
Test-S400-AM.nc

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

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
Здесь команда G0 Xxx Yxx заменяется командой G0 Xxx+/-2 Yxx, перед ней добавляется G0 Xxx+/-2, а после неё добавляется команда G0 Xxx.
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
Здесь тоже что и в Test-S400-AM.nc, плюс команда M5 заменяется командой S0 (отстается только в конце) и команда M3 добавляется в начале программы, а по коду везде убирается.

Файлы примеров:
Test-S400-AS-AM.rar
(996 байт) 306 скачиваний

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Добавлено: 14 ноя 2016, 10:53
selenur
Хорошо, добавлю в программу ;-)

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Добавлено: 17 ноя 2016, 17:25
arkhnchul
staltech писал(а):Программ генерации g кода для построчной лазерной гравировки с управлением мощностью почти нет, по крайней мере для GRBL.
https://github.com/arkhnchul/Inkscape

ЗЫ с управлением мощностью не факт что у меня в коде работает, проверить руки не доходят. В оригинале - https://github.com/305engineering/Inkscape - точно должно.

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Добавлено: 19 ноя 2016, 00:36
selenur
Сейчас в процессе переделки, методики формирования G-кода, что-бы можно было самостоятельно, составлять формат наполнения:
Теперь файлы профиля, выглядят так:
Вариант 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"
"%"
Вариант 2:

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

# Настройка для лазерного выжигателя S - вариант #
"%"
"G90"
"S0"
"M5"
"G0 F400"
"G1 F400"

LINES
{
   "G0" [X.] [Y.]

   POINTS
   {
      [G1!] [X.] [Y.] [S] "M3"
   }
   "M5"
}

"G0 X0 Y0"
"M30"
"%"
Вариант 3:

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

# Настройка для фрезера #
"%"
"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"
"%"
Вот пример когда траектория одна и тоже, по профиль разный:
2016-11-19_022429.jpg (4729 просмотров) <a class='original' href='./download/file.php?id=95157&mode=view' target=_blank>Загрузить оригинал (469.39 КБ)</a>
2016-11-19_023104.jpg (4729 просмотров) <a class='original' href='./download/file.php?id=95158&mode=view' target=_blank>Загрузить оригинал (282.95 КБ)</a>
как вам такая реализация? :-)

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Добавлено: 19 ноя 2016, 01:08
MAX3000
selenur, отлично!
Только во 2 варианте (S вариант) "M3" в каждой строке не нужны.
M3 - вставляется один раз в начале

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Добавлено: 19 ноя 2016, 01:35
Serg
"The NIST RS274NGC Interpreter - Version 3" утверждает, что скорость может задаваться командой S в любом месте и в любое время, но реально она должна изменяться командами включения шпинделя (m3/m4).

Кстати, к моменту выполнения команд m3/m4/m5 станок должен полностью завершить движение по траектории, т.е. остановится. Т.о. код типа
g0 x0 y0
g1 x50 m3
g1 x100 m3
будет пройден с полной остановкой посередине.

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Добавлено: 19 ноя 2016, 05:56
selenur
MAX3000 писал(а):selenur, отлично!
Только во 2 варианте (S вариант) "M3" в каждой строке не нужны.
M3 - вставляется один раз в начале
Это просто для примера пока ;-)

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Добавлено: 20 ноя 2016, 23:18
selenur
В процессе разработки, что-бы можно было сделать такую штуку:
2016-11-21_011252.jpg (4678 просмотров) <a class='original' href='./download/file.php?id=95328&mode=view' target=_blank>Загрузить оригинал (41.99 КБ)</a>
решил в генерацию G-кода, добавить поддержку математических функций, что позволит, добавлять края, выделенные красным, в коде самого профиля, не затрагивая при этом стандартный алгоритм, генерации.
Для примера вот результат, в котором я пока просто беру координату X и умножаю на два.
2016-11-21_010955.jpg (4678 просмотров) <a class='original' href='./download/file.php?id=95322&mode=view' target=_blank>Загрузить оригинал (634.28 КБ)</a>
В результате чего, получается G-код, растянутый по оси Х :-)
На переднем фоне, исходная траектория текста, а на заднем фоне полученная :-)

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Добавлено: 21 ноя 2016, 12:23
MAX3000
selenur, алгоритм немножко другой должен быть. Зона торможения-разгона прибавляется/вычитается к крайним Х-точкам линии перед и после G0. Но тут надо учитывать координату Х начала следующей линии, если она больше, то прибавлять к ней, если меньше, то прибавлять к текущей - это если движение происходит по контуру картинки, пропуская белые места. А если перемещение осуществлять по ширине картинки, то тут проще - перед G0 лазер движется G0 Xmax+dx (G0 Xmin-dX), затем идет команда G0 X dY, дальше G0 X-dX и код отрисовки следующей линии, крайние положения лазера по координате Х всегда будут одинаковы, но при таком методе лишние движения будут.