Страница 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 тогда чем светлее будет область тем быстрее будет скорость движения, а следовательно более блеклый след.
Нужна-ли такая реализация? :thinking:
Привет ВСЕМ!!!
selenur, а зачем такие вычисления? :thinking:
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 тогда чем светлее будет область тем быстрее будет скорость движения, а следовательно более блеклый след.
Нужна-ли такая реализация? :thinking:
Привет ВСЕМ!!!
selenur, а зачем такие вычисления? :thinking:
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"
то получается вот так:
2016-12-29_165154.jpg (2077 просмотров) <a class='original' href='./download/file.php?id=98752&mode=view' target=_blank>Загрузить оригинал (79.35 КБ)</a>
А если в профиле написать:

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

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

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

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

Добавлено: 29 дек 2016, 22:27
selenur
Выложил новую версию для тестов: https://github.com/selenur/ToolsGenGkod ... 26/v26.zip

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
Вчера отфрезеровал крепеж лазеров с драйверами:
WP_001719.jpg (2007 просмотров) <a class='original' href='./download/file.php?id=98802&mode=view' target=_blank>Загрузить оригинал (333.42 КБ)</a>
Для установки их вместо шпинделя:
WP_001720.jpg (2007 просмотров) <a class='original' href='./download/file.php?id=98803&mode=view' target=_blank>Загрузить оригинал (585 КБ)</a>
WP_001721.jpg (2007 просмотров) <a class='original' href='./download/file.php?id=98804&mode=view' target=_blank>Загрузить оригинал (512.07 КБ)</a>
Вот теперь займусь тестами, и доработками выжигания, для простоты возле себя станок огородил со всех сторон обычными папками для файлов:
WP_001722.jpg (2007 просмотров) <a class='original' href='./download/file.php?id=98805&mode=view' target=_blank>Загрузить оригинал (572.09 КБ)</a>
так-что скоро думаю будет результат :-)

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. Всех с наступающим Новым Годом!!! :beer:

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 (максимум) дырку режет на пару десяток, после нового года поиграюсь, жена лазер на дачу не разрешает брать :hehehe:

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

Добавлено: 30 дек 2016, 19:47
staltech
test3210 писал(а):Но мощность не совсем пропорциональна полученной точке, надо играться скорее всего меняя сразу и скорость и мощность, для получения красивого результата.
Так почему линейную интерполяцию по калибровочной таблице значений не использовать? :wik: Единственное таблицу возможно придется корректировать под каждый станок, используя тестовую шкалу, которая описывалась несколькими страницами ранее. Но сложного в этом ничего нет и можно будет выровнять линейность гравировки градаций.
Это не призыв к действию а всего лишь предположение. Я у себя использую такую таблицу только не в лазере, но суть примерно та же.
Ну и с наступающим Новым Годом всех!!! :beer_blow: :eat:

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-код одиночной линии.