Страница 16 из 130
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 26 дек 2016, 23:41
MAX3000
selenur писал(а):Сейчас продумываю реализацию выжигания изображения, и вот какая есть идея:
Имеем небольшой рисунок:
2016-12-24_005836.jpg
Размером 5х5 точек, в процессе преобразования его в черно-белый с градациями серого, получаем рисунок, в котором используется 5 разных оттенков, имеющих значение яркости.
В итоге имеем набор отрезков, с различным значением яркости, и если в профиле пропишем перед началом отрезка: "S" 1024-(contrast*4) то получим отрезок с силой прожига от нуля до 1024 ( возможных градаций всего 256 доступно, поэтому в формуле умножил на 4)
Если например в профиле прописать постоянную мощность, но перед отрезком "F" contrast*2 тогда чем светлее будет область тем быстрее будет скорость движения, а следовательно более блеклый след.
Нужна-ли такая реализация?

Привет ВСЕМ!!!
selenur, а зачем такие вычисления?
1. Нужно добавить страницу для калибровки лазера (скажем в табличном виде), на которой каждому оттенку серого будут устанавливаться значения S и/или F. На этой странице добавить возможность задавать Smax, Smin, Fmax, Fmin - значения S и F всегда должны быть между максимальным и минимальным значением. На этой же странице сделать печать тестового рисунка и сохранение профиля.
2. И все берешь "набор отрезков, с различным значением яркости" и подставляешь значения S и/или F с вышеописанной калибровочной страницы.

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 27 дек 2016, 05:15
selenur
test3210 писал(а):А яркость точки доступна или контраст ? я бы с удовольствием поэксперементировал с профилями
Значение представляет собой яркость, от 0 до 255, это просто я первое попавшееся англоязычное слово взял. Ну скоро будет такая возможность.

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 27 дек 2016, 05:26
selenur
MAX3000 писал(а):selenur писал(а):Сейчас продумываю реализацию выжигания изображения, и вот какая есть идея:
Имеем небольшой рисунок:
2016-12-24_005836.jpg
Размером 5х5 точек, в процессе преобразования его в черно-белый с градациями серого, получаем рисунок, в котором используется 5 разных оттенков, имеющих значение яркости.
В итоге имеем набор отрезков, с различным значением яркости, и если в профиле пропишем перед началом отрезка: "S" 1024-(contrast*4) то получим отрезок с силой прожига от нуля до 1024 ( возможных градаций всего 256 доступно, поэтому в формуле умножил на 4)
Если например в профиле прописать постоянную мощность, но перед отрезком "F" contrast*2 тогда чем светлее будет область тем быстрее будет скорость движения, а следовательно более блеклый след.
Нужна-ли такая реализация?

Привет ВСЕМ!!!
selenur, а зачем такие вычисления?
1. Нужно добавить страницу для калибровки лазера (скажем в табличном виде), на которой каждому оттенку серого будут устанавливаться значения S и/или F. На этой странице добавить возможность задавать Smax, Smin, Fmax, Fmin - значения S и F всегда должны быть между максимальным и минимальным значением. На этой же странице сделать печать тестового рисунка и сохранение профиля.
2. И все берешь "набор отрезков, с различным значением яркости" и подставляешь значения S и/или F с вышеописанной калибровочной страницы.

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

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 29 дек 2016, 14:54
selenur
Если в профиле будет такой текст:
Код: Выделить всё
LINES
{
POINTS
{
"X"[X] "Y"[Y] "S"[255-bright]
}
}
"M5"
то получается вот так:
А если в профиле написать:
Код: Выделить всё
LINES
{
POINTS
{
"X"[X] "Y"[Y] "Z"[(255-bright)/100]
}
}
то получается вот так:
почти отладил ошибки, сегодня или завтра уже выложу новую версию

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 29 дек 2016, 22:27
selenur
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 29 дек 2016, 23:50
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
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 30 дек 2016, 10:22
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-й алгоритм, это просто для универсальности сделал.
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 30 дек 2016, 10:27
selenur
Вчера отфрезеровал крепеж лазеров с драйверами:
Для установки их вместо шпинделя:
Вот теперь займусь тестами, и доработками выжигания, для простоты возле себя станок огородил со всех сторон обычными папками для файлов:
так-что скоро думаю будет результат

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 30 дек 2016, 11:17
test3210
папки надо убрать хотя-бы с одной стороны, и сделать нормальный обдув зоны реза лазера, иначе дым возникающий при резке /гравировке все испортит, да и линза может закоптится
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 30 дек 2016, 11:43
selenur
test3210 писал(а):папки надо убрать хотя-бы с одной стороны, и сделать нормальный обдув зоны реза лазера, иначе дым возникающий при резке /гравировке все испортит, да и линза может закоптится
Ну пока просто вентилятор лежит на столе, и выдувает дым в сторону, а так в процессе продумывания конструкции на которой-бы был закреплен лазер, драйвер, камера, подсветка камеры, и вентилятор.
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 30 дек 2016, 13:41
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. Всех с наступающим Новым Годом!!!

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 30 дек 2016, 16:12
selenur
И тебя с новым годом!
Постараюсь в ближайшее время создать список профилей, описание к ним, и примеры получаемых работ, что-бы любой мог выбрать наиболее подходящий профиль.
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 30 дек 2016, 19:29
test3210
Немного поигрался, итак , на grbl 0.9 версии все плохо, на 1.1 намного лучше, если вместо m3 использовать m4 и включенный laser mode то еще лучше. Но мощность не совсем пропорциональна полученной точке, надо играться скорее всего меняя сразу и скорость и мощность, для получения красивого результата. По факту мощность 120 точки нет , 255 (максимум) дырку режет на пару десяток, после нового года поиграюсь, жена лазер на дачу не разрешает брать

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 30 дек 2016, 19:47
staltech
test3210 писал(а):Но мощность не совсем пропорциональна полученной точке, надо играться скорее всего меняя сразу и скорость и мощность, для получения красивого результата.
Так почему линейную интерполяцию по калибровочной таблице значений не использовать?

Единственное таблицу возможно придется корректировать под каждый станок, используя тестовую шкалу, которая описывалась несколькими страницами ранее. Но сложного в этом ничего нет и можно будет выровнять линейность гравировки градаций.
Это не призыв к действию а всего лишь предположение. Я у себя использую такую таблицу только не в лазере, но суть примерно та же.
Ну и с наступающим Новым Годом всех!!!

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 30 дек 2016, 20:05
y-u-r
Приветствую !
Подскажите пожалуйста , как сделать , что бы был один проход на станке ?
Любую линию и букву станок делает за два прохода , со смещением в 1мм примерно....
Мелкие детали сразу смазываются.....
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 30 дек 2016, 20:18
staltech
y-u-r писал(а):Подскажите пожалуйста , как сделать , что бы был один проход на станке ?
Пример вашего g-кода для выжигания линии выложите и в какой программе вы его генерировали?
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 30 дек 2016, 20:36
y-u-r
Генерировал в "местной программе" , в начале ветки..
Она мне понравилась своей простотой.Сам рисунок(гравировку) Ёлки на предыдущей странице фото представил....
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 30 дек 2016, 20:49
staltech
Понял. Тогда этот вопрос скорее к Сергею
Selenur.
Как я понял последние версии теперь на GitHub, вот ссылка на последнюю версию:
https://github.com/selenur/ToolsGenGkod ... 26/v26.zip
Ради интереса сейчас проверю g-код одиночной линии.