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

Mach, популярные и не очень CAD, CAM. Обсуждение и разработка программ для управления станками.
MAX3000
Опытный
Сообщения: 107
Зарегистрирован: 17 дек 2015, 11:12
Репутация: 18
Настоящее имя: MaX
Контактная информация:

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

Сообщение MAX3000 »

selenur писал(а):Сейчас продумываю реализацию выжигания изображения, и вот какая есть идея:
Имеем небольшой рисунок:
2016-12-24_005836.jpg
Размером 5х5 точек, в процессе преобразования его в черно-белый с градациями серого, получаем рисунок, в котором используется 5 разных оттенков, имеющих значение яркости.
В итоге имеем набор отрезков, с различным значением яркости, и если в профиле пропишем перед началом отрезка: "S" 1024-(contrast*4) то получим отрезок с силой прожига от нуля до 1024 ( возможных градаций всего 256 доступно, поэтому в формуле умножил на 4)
Если например в профиле прописать постоянную мощность, но перед отрезком "F" contrast*2 тогда чем светлее будет область тем быстрее будет скорость движения, а следовательно более блеклый след.
Нужна-ли такая реализация? :thinking:
Привет ВСЕМ!!!
selenur, а зачем такие вычисления? :thinking:
1. Нужно добавить страницу для калибровки лазера (скажем в табличном виде), на которой каждому оттенку серого будут устанавливаться значения S и/или F. На этой странице добавить возможность задавать Smax, Smin, Fmax, Fmin - значения S и F всегда должны быть между максимальным и минимальным значением. На этой же странице сделать печать тестового рисунка и сохранение профиля.
2. И все берешь "набор отрезков, с различным значением яркости" и подставляешь значения S и/или F с вышеописанной калибровочной страницы.
:)
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

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

Сообщение selenur »

test3210 писал(а):А яркость точки доступна или контраст ? я бы с удовольствием поэксперементировал с профилями
Значение представляет собой яркость, от 0 до 255, это просто я первое попавшееся англоязычное слово взял. Ну скоро будет такая возможность. ;-)
Мой сайт: 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 »

MAX3000 писал(а):
selenur писал(а):Сейчас продумываю реализацию выжигания изображения, и вот какая есть идея:
Имеем небольшой рисунок:
2016-12-24_005836.jpg
Размером 5х5 точек, в процессе преобразования его в черно-белый с градациями серого, получаем рисунок, в котором используется 5 разных оттенков, имеющих значение яркости.
В итоге имеем набор отрезков, с различным значением яркости, и если в профиле пропишем перед началом отрезка: "S" 1024-(contrast*4) то получим отрезок с силой прожига от нуля до 1024 ( возможных градаций всего 256 доступно, поэтому в формуле умножил на 4)
Если например в профиле прописать постоянную мощность, но перед отрезком "F" contrast*2 тогда чем светлее будет область тем быстрее будет скорость движения, а следовательно более блеклый след.
Нужна-ли такая реализация? :thinking:
Привет ВСЕМ!!!
selenur, а зачем такие вычисления? :thinking:
1. Нужно добавить страницу для калибровки лазера (скажем в табличном виде), на которой каждому оттенку серого будут устанавливаться значения S и/или F. На этой странице добавить возможность задавать Smax, Smin, Fmax, Fmin - значения S и F всегда должны быть между максимальным и минимальным значением. На этой же странице сделать печать тестового рисунка и сохранение профиля.
2. И все берешь "набор отрезков, с различным значением яркости" и подставляешь значения S и/или F с вышеописанной калибровочной страницы.
:)
Все думал по поводу поля в котором выбирается нужный алгоритм, сейчас там всего 2 алгоритма, но количество будет расти, в связи с чем думаю, добавить рядом с полем кнопку открытия настроек выбранного алгоритма, и уже в этом окне сделаю тогда выбор куда записывать в F или S. и параметры калибровки.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
test3210
Опытный
Сообщения: 105
Зарегистрирован: 24 дек 2016, 22:16
Репутация: 31
Настоящее имя: Денис
Контактная информация:

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

Сообщение test3210 »

В принципе алгоритм как таковой не нужен, если в профиле будет доступна яркость пусть к примеру это будет параметр RGB с диапазоном 0-255 , и задаваемые через окна перед генерацией кода в последнем окне пара параметров (например скорость задать или паузу на точку для разных материалов чтобы профиля не плодить если по быстрому) то больше ничего и не надо, все будет решено внутри профиля с огромной гибкостью. Т-е есть профиль фрезер в профиле яркость преобразуем в глубину реза и получаем к примеру строку типа "Z"[10-(RGB/25)] тогда при яркой точке режем на 10 мм и не режем при черной точке , надо наоборот ? не вопрос "Z"[(RGB/25)]
Лазер ? меняем Z на S , сколько у нас максимум ? 1000 тогда "S"[RGB*3.92)] не 1000 а 255 ? еще проще ... надо резать не от нуля ? тоже решается добавлением константы на сдвиг Не регулируется мощность лазера или это нихром , меняем скорость, либо добавляем паузу перед перемещением на время пропорциональное полутону, математика уже сейчас работает , и все что я написал выше можно сделать на данной программе + якрость
Откатать в таком виде на нескольких станках, нас много , каждый даст тот профиль который получился, дальше можно их встроить в программу, либо в виде алгоритмов либо еще как-то но делать решение в виде алгоритма не имея уверенности что поможет нет смысла
А если добавить прожиг на реверсном ходу то можно сократить лишние перемещения , но такая функция не всем станкам подходит, так что это должна быть опция
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

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

Сообщение selenur »

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

Если в профиле будет такой текст:

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

LINES
{
   POINTS
   {
      "X"[X] "Y"[Y] "S"[255-bright] 
   }   
}
"M5"
то получается вот так:
2016-12-29_165154.jpg (2060 просмотров) <a class='original' href='./download/file.php?id=98752&sid=e925d1e9c5847da517fc65f5e1658e22&mode=view' target=_blank>Загрузить оригинал (79.35 КБ)</a>
А если в профиле написать:

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

LINES
{
   POINTS
   {
      "X"[X] "Y"[Y] "Z"[(255-bright)/100] 
   }   
}

то получается вот так:
2016-12-29_165030.jpg (2060 просмотров) <a class='original' href='./download/file.php?id=98753&sid=e925d1e9c5847da517fc65f5e1658e22&mode=view' target=_blank>Загрузить оригинал (229.26 КБ)</a>
почти отладил ошибки, сегодня или завтра уже выложу новую версию :-)
Мой сайт: 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 »

Выложил новую версию для тестов: https://github.com/selenur/ToolsGenGkod ... 26/v26.zip
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
test3210
Опытный
Сообщения: 105
Зарегистрирован: 24 дек 2016, 22:16
Репутация: 31
Настоящее имя: Денис
Контактная информация:

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

Сообщение test3210 »

не работает если выбор осей в начале отличен от 1, 2 вообще ничего не генерит, 3 и 4 генерит но с 0
далее, я думаю надо пропускать s0 иначе куча лишних движений, в предыдуших так и было
вот кусочек моей программы написал пока релиз новый ждал

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

a:=GetBrightness(bmp.Canvas.Pixels[X, Y]);

if a>se1.Value then begin
if b=0 then memo1.Lines.Add('G0 X'+floattostr(X/10)+' Y'+floattostr(Y/10)+' S0;');
if a<>c then
 memo1.Lines.Add('G1 X'+floattostr(X/10)+' Y'+floattostr(Y/10)+' S'+inttostr(a));
b:=1;
c:=a;
end
вот результат моей проги и последнего релиза, в принципе кроме времени выполнения разницы особой нет, у меня еще добавлен уровень белого se1.Value который задается отдельно, по умолчанию 4 , жечь такую точку особого смысла нет , ну и я жгу линию если цвет аналогичен
исходная картинка http://7ladies.ru/wp-content/uploads/20 ... 00x225.jpg
Вложения
output.zip
(247.91 КБ) 261 скачивание
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

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

Сообщение selenur »

test3210 писал(а):не работает если выбор осей в начале отличен от 1, 2 вообще ничего не генерит, 3 и 4 генерит но с 0
далее, я думаю надо пропускать s0 иначе куча лишних движений, в предыдуших так и было
вот кусочек моей программы написал пока релиз новый ждал

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

a:=GetBrightness(bmp.Canvas.Pixels[X, Y]);

if a>se1.Value then begin
if b=0 then memo1.Lines.Add('G0 X'+floattostr(X/10)+' Y'+floattostr(Y/10)+' S0;');
if a<>c then
 memo1.Lines.Add('G1 X'+floattostr(X/10)+' Y'+floattostr(Y/10)+' S'+inttostr(a));
b:=1;
c:=a;
end
вот результат моей проги и последнего релиза, в принципе кроме времени выполнения разницы особой нет, у меня еще добавлен уровень белого se1.Value который задается отдельно, по умолчанию 4 , жечь такую точку особого смысла нет , ну и я жгу линию если цвет аналогичен
исходная картинка http://7ladies.ru/wp-content/uploads/20 ... 00x225.jpg
Для выжигания я сделаю отдельный алгоритм, с возможностью ввода различных настроек, т.к. действительно не нужны проходы, там где белый цвет, и все те пожелания что в постах выше. 3-й алгоритм, это просто для универсальности сделал.
Мой сайт: 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 »

Вчера отфрезеровал крепеж лазеров с драйверами:
WP_001719.jpg (1990 просмотров) <a class='original' href='./download/file.php?id=98802&sid=e925d1e9c5847da517fc65f5e1658e22&mode=view' target=_blank>Загрузить оригинал (333.42 КБ)</a>
Для установки их вместо шпинделя:
WP_001720.jpg (1990 просмотров) <a class='original' href='./download/file.php?id=98803&sid=e925d1e9c5847da517fc65f5e1658e22&mode=view' target=_blank>Загрузить оригинал (585 КБ)</a>
WP_001721.jpg (1990 просмотров) <a class='original' href='./download/file.php?id=98804&sid=e925d1e9c5847da517fc65f5e1658e22&mode=view' target=_blank>Загрузить оригинал (512.07 КБ)</a>
Вот теперь займусь тестами, и доработками выжигания, для простоты возле себя станок огородил со всех сторон обычными папками для файлов:
WP_001722.jpg (1990 просмотров) <a class='original' href='./download/file.php?id=98805&sid=e925d1e9c5847da517fc65f5e1658e22&mode=view' target=_blank>Загрузить оригинал (572.09 КБ)</a>
так-что скоро думаю будет результат :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
test3210
Опытный
Сообщения: 105
Зарегистрирован: 24 дек 2016, 22:16
Репутация: 31
Настоящее имя: Денис
Контактная информация:

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

Сообщение test3210 »

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

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

Сообщение selenur »

test3210 писал(а):папки надо убрать хотя-бы с одной стороны, и сделать нормальный обдув зоны реза лазера, иначе дым возникающий при резке /гравировке все испортит, да и линза может закоптится
Ну пока просто вентилятор лежит на столе, и выдувает дым в сторону, а так в процессе продумывания конструкции на которой-бы был закреплен лазер, драйвер, камера, подсветка камеры, и вентилятор.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
Rom327
Почётный участник
Почётный участник
Сообщения: 2989
Зарегистрирован: 03 апр 2015, 13:23
Репутация: 437
Настоящее имя: Роман
Откуда: Подольск
Контактная информация:

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

Сообщение Rom327 »

selenur писал(а):Если в профиле будет такой текст:

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

LINES
{
   POINTS
   {
      "X"[X] "Y"[Y] "S"[255-bright] 
   }   
}
"M5"
то получается вот так:
2016-12-29_165154.jpg
А если в профиле написать:

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

LINES
{
   POINTS
   {
      "X"[X] "Y"[Y] "Z"[(255-bright)/100] 
   }   
}

то получается вот так:
2016-12-29_165030.jpg
почти отладил ошибки, сегодня или завтра уже выложу новую версию :-)
Было бы неплохо разные профиля показывать на одной картинке: проще ориентироваться.
p.s. Всех с наступающим Новым Годом!!! :beer:
Это сугубо мое мнение, могу и ошибаться...
https://vk.com/rom327
GRBL настройки: http://blogandbux.blogspot.com/2018/07/ ... revod.html
G коды: http://3d-stanki.ru/spravochnik/program ... stankov-2/
Аватара пользователя
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/
test3210
Опытный
Сообщения: 105
Зарегистрирован: 24 дек 2016, 22:16
Репутация: 31
Настоящее имя: Денис
Контактная информация:

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

Сообщение test3210 »

Немного поигрался, итак , на grbl 0.9 версии все плохо, на 1.1 намного лучше, если вместо m3 использовать m4 и включенный laser mode то еще лучше. Но мощность не совсем пропорциональна полученной точке, надо играться скорее всего меняя сразу и скорость и мощность, для получения красивого результата. По факту мощность 120 точки нет , 255 (максимум) дырку режет на пару десяток, после нового года поиграюсь, жена лазер на дачу не разрешает брать :hehehe:
Аватара пользователя
staltech
Почётный участник
Почётный участник
Сообщения: 544
Зарегистрирован: 01 июл 2016, 22:50
Репутация: 155
Настоящее имя: Сергей
Откуда: Пензенская обл., г. Никольск
Контактная информация:

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

Сообщение staltech »

test3210 писал(а):Но мощность не совсем пропорциональна полученной точке, надо играться скорее всего меняя сразу и скорость и мощность, для получения красивого результата.
Так почему линейную интерполяцию по калибровочной таблице значений не использовать? :wik: Единственное таблицу возможно придется корректировать под каждый станок, используя тестовую шкалу, которая описывалась несколькими страницами ранее. Но сложного в этом ничего нет и можно будет выровнять линейность гравировки градаций.
Это не призыв к действию а всего лишь предположение. Я у себя использую такую таблицу только не в лазере, но суть примерно та же.
Ну и с наступающим Новым Годом всех!!! :beer_blow: :eat:
y-u-r
Кандидат
Сообщения: 68
Зарегистрирован: 18 дек 2016, 06:43
Репутация: 4
Настоящее имя: Юрий
Контактная информация:

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

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

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

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

Сообщение staltech »

y-u-r писал(а):Подскажите пожалуйста , как сделать , что бы был один проход на станке ?
Пример вашего g-кода для выжигания линии выложите и в какой программе вы его генерировали?
y-u-r
Кандидат
Сообщения: 68
Зарегистрирован: 18 дек 2016, 06:43
Репутация: 4
Настоящее имя: Юрий
Контактная информация:

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

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

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

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

Сообщение staltech »

Понял. Тогда этот вопрос скорее к Сергею Selenur.
Как я понял последние версии теперь на GitHub, вот ссылка на последнюю версию: https://github.com/selenur/ToolsGenGkod ... 26/v26.zip
Ради интереса сейчас проверю g-код одиночной линии.
Ответить

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