Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
- 
				y-u-r
 - Кандидат
 - Сообщения: 68
 - Зарегистрирован: 18 дек 2016, 06:43
 - Репутация: 4
 - Настоящее имя: Юрий
 - Контактная информация:
 
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Спасибо за разьяснения , понял -  надо "врукопашную" удалять  контура....
Главное я не ошибся - есть два прохода , которые сильно "мажут" мелкие картинки и буквы.
Пользовался еще одной известной программой - так же делает двойной контур.
С праздником !
			
							Главное я не ошибся - есть два прохода , которые сильно "мажут" мелкие картинки и буквы.
Пользовался еще одной известной программой - так же делает двойной контур.
С праздником !
- Вложения
 - 
			
		
		
				
- StepCam_1.79_Setup.zip
 - (736.12 КБ) 3794 скачивания
 
 
- 
				test3210
 - Опытный
 - Сообщения: 105
 - Зарегистрирован: 24 дек 2016, 22:16
 - Репутация: 31
 - Настоящее имя: Денис
 - Контактная информация:
 
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
попробовал, результаты следующие
мой лазер, гад, имеет крайне узкую грань между еще не оставляю точки и уже режу на несколько десяток в глубь, + еще скорость
кстати и правда скорость намного лучше влияет на яркость точки, короче профиль получился такой лазер от 170 до 186 и + скорость от 1424 до 400 (чем сильнее прожиг тем ниже скорость и выше скорость)
 
Есть еще момент, в разных программах отправляющих g-код получается разный результат, я отправлял в Candle причем в свернутом состоянии, тогда получается приличный результат и высокая скорость
			
							
			
									
									
						мой лазер, гад, имеет крайне узкую грань между еще не оставляю точки и уже режу на несколько десяток в глубь, + еще скорость
кстати и правда скорость намного лучше влияет на яркость точки, короче профиль получился такой лазер от 170 до 186 и + скорость от 1424 до 400 (чем сильнее прожиг тем ниже скорость и выше скорость)
Код: Выделить всё
# Настройка для лазерного выжигателя S - Bright #
$.$
"G1 F3000 X0 Y0 Z0"
"S0"
"M3"
LINES
{
"G1 X"[X] "Y"[Y] " F5000 S0"
   POINTS
   {
      "G1 X"[X] "Y"[Y] " F"[400+((bright)*4)'#0.']" S"[170+((255-bright)/16)'#0.']
   }
 }
"S0"
"M05"
"G0 X0 Y0"- selenur
 - Почётный участник

 - Сообщения: 4605
 - Зарегистрирован: 21 авг 2013, 19:44
 - Репутация: 1622
 - Настоящее имя: Сергей
 - Откуда: Новый Уренгой
 - Контактная информация:
 
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
К стати классная идея в зависимости от яркости, менять не только мощность, но и скорость!!!!
А я всё думал как сделать так что-бы толщина линии не менялась, при изменении мощности, а все куда проще.
Только как придумать возможность подбора оптимального режима работы?
			
			
									
									А я всё думал как сделать так что-бы толщина линии не менялась, при изменении мощности, а все куда проще.
Только как придумать возможность подбора оптимального режима работы?
Мой сайт: 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, DXF
А вот что в разных программах, один и тот-же g-код дает разный результат, это очень странно......
			
			
									
									Мой сайт: 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, DXF
Когда обмен по COM порту находится в одном потоке с GUI основного окна, он дико тормозит. Особенно если напихать всяких графических плюшек. Попробуй потяни за заголовок окна во время передачи g-кода и посмотри что будет... Или с размерами поиграйся. И это не на слабом компе.selenur писал(а):А вот что в разных программах, один и тот-же g-код дает разный результат, это очень странно......
Передачу файла нужно переносить в отдельный поток и увеличивать его приоритет.
- selenur
 - Почётный участник

 - Сообщения: 4605
 - Зарегистрирован: 21 авг 2013, 19:44
 - Репутация: 1622
 - Настоящее имя: Сергей
 - Откуда: Новый Уренгой
 - Контактная информация:
 
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
надо будет своим не доделанным до конца сендером попробовать, т.к. у меня не только в отдельном потоке, но еще через события работа с ком портом, и посмотреть на результат.
			
			
									
									Мой сайт: 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, DXF
В этом случае все должно работать стабильно. В QT это делается через сигнал-слоты и этого хватает чтобы отгородить GUI от работы с портом, даже когда окно полностью фризится файл передается без проблем.selenur писал(а):надо будет своим не доделанным до конца сендером попробовать, т.к. у меня не только в отдельном потоке, но еще через события работа с ком портом, и посмотреть на результат.
- staltech
 - Почётный участник

 - Сообщения: 544
 - Зарегистрирован: 01 июл 2016, 22:50
 - Репутация: 155
 - Настоящее имя: Сергей
 - Откуда: Пензенская обл., г. Никольск
 - Контактная информация:
 
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Кстати я в прошлый раз добил проблему с ошибкой ID25. Пришлось добавить специальный режим в котором запросы о текущих координатах передавались только в кадрах с командами. Проводил тесты с файлами в 1.5 суток. Если использовать версию на ARM этой проблемы просто нет, так что у Arduino просто не хватает производительности для некоторых файлов растровой гравировки.
			
			
									
									
						- 
				test3210
 - Опытный
 - Сообщения: 105
 - Зарегистрирован: 24 дек 2016, 22:16
 - Репутация: 31
 - Настоящее имя: Денис
 - Контактная информация:
 
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
есть туча точек, и разные программы по разному грузят буфер контроллера, если режим m03 то при работе с лазером после  g1 x2 y3 s127 лазер не отключится и мощность такой и останется до следующей команды,так что время которое проходит между командами играет большую роль, по сути пока ведется линия с определенной скоростью например от 1 до 10 и 10 точек на этой линии с одинаковыми скоростью и мощностью дадут разные результаты
я свой сендер написал на эвентах, по принципу отправил кадр получил ок отправил следующий , не загружая буфер grbl до упора как это делает Candle, у меня скорость ниже чем в свернутом Candle но выше чем в развернутом
			
			
									
									
						я свой сендер написал на эвентах, по принципу отправил кадр получил ок отправил следующий , не загружая буфер grbl до упора как это делает Candle, у меня скорость ниже чем в свернутом Candle но выше чем в развернутом
- staltech
 - Почётный участник

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

 - Сообщения: 4605
 - Зарегистрирован: 21 авг 2013, 19:44
 - Репутация: 1622
 - Настоящее имя: Сергей
 - Откуда: Новый Уренгой
 - Контактная информация:
 
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Вот новая версия 27: https://github.com/selenur/ToolsGenGkod ... 27/v27.zip
Добавлен новый алгоритм, преобразования изображения, в контуры (получение скелета) по алгоритму Zhang-Suen, данный алгоритм вот такой рисунок: превращает в такой: Т.е. получает скелет изображения, на текущий момент алгоритм достаточно не оптимизирован, поэтому обработка изображения елки, размером 2500*3500 пикселей у меня на ноутбуке занимает 20-30 секунд, пока оптимизировать не хватает времени.....
Ну и собственно как это делается:
Если нужно получить именно скелет, а не просто контуры, нужно установить указанный флажок: Что позволит получить скелет: Так-же не забываем, об оптимизации: И собственно результат:
			
			
									
									Добавлен новый алгоритм, преобразования изображения, в контуры (получение скелета) по алгоритму Zhang-Suen, данный алгоритм вот такой рисунок: превращает в такой: Т.е. получает скелет изображения, на текущий момент алгоритм достаточно не оптимизирован, поэтому обработка изображения елки, размером 2500*3500 пикселей у меня на ноутбуке занимает 20-30 секунд, пока оптимизировать не хватает времени.....
Ну и собственно как это делается:
Если нужно получить именно скелет, а не просто контуры, нужно установить указанный флажок: Что позволит получить скелет: Так-же не забываем, об оптимизации: И собственно результат:
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
						Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
- 
				y-u-r
 - Кандидат
 - Сообщения: 68
 - Зарегистрирован: 18 дек 2016, 06:43
 - Репутация: 4
 - Настоящее имя: Юрий
 - Контактная информация:
 
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Так и хочется прямо сейчас попробовать ! 
   
А то ползаю всю ночь без дела (спину скрутило
 )
Домашние не оценят такой прыти - включить ночью "Ёлку" на ЧПУ.
   
Проснутся все , сделаю ёлку , выложу фото , как вышло........
			
			
									
									
						А то ползаю всю ночь без дела (спину скрутило
Домашние не оценят такой прыти - включить ночью "Ёлку" на ЧПУ.
Проснутся все , сделаю ёлку , выложу фото , как вышло........
- 
				y-u-r
 - Кандидат
 - Сообщения: 68
 - Зарегистрирован: 18 дек 2016, 06:43
 - Репутация: 4
 - Настоящее имя: Юрий
 - Контактная информация:
 
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Ай-Ай , то ли туплю  
   , то ли реально отсутствуют в программе два пункта, то ли не нашел....
Установки по Z высота подхода и глубина фрезы.......
"Ткните" пожалуйста..
 
Кстати про полоски так сказать "занятости" или часы песочные повесить , когда программа обсчитывает результаты.
Иногда не ясно ,закончила обсчет программа или нет , нажимаешь кнопку далее и "висим" сразу сообщение ПРОГРАММА НЕ ОТВЕЧАЕТ...
			
			
									
									
						Установки по Z высота подхода и глубина фрезы.......
"Ткните" пожалуйста..
Кстати про полоски так сказать "занятости" или часы песочные повесить , когда программа обсчитывает результаты.
Иногда не ясно ,закончила обсчет программа или нет , нажимаешь кнопку далее и "висим" сразу сообщение ПРОГРАММА НЕ ОТВЕЧАЕТ...
- 
				test3210
 - Опытный
 - Сообщения: 105
 - Зарегистрирован: 24 дек 2016, 22:16
 - Репутация: 31
 - Настоящее имя: Денис
 - Контактная информация:
 
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
с z придется править профиль самостоятельно, хотя согласен, добавить пару окошек и передавать их значениия в профиль было бы правильнее, тогда формула в профиле по яркости будет типаy-u-r писал(а):Ай-Ай , то ли туплю, то ли реально отсутствуют в программе два пункта, то ли не нашел....
Установки по Z высота подхода и глубина фрезы.......
"Ткните" пожалуйста..![]()
Код: Выделить всё
 "G1 X"[X] "Y"[Y] " S"[Zmin+((255-bright)/255*Zmax)'#0.#']лучше прогресс бар по кол-ву линий максимум, текущий прогрес обрабатываемая линияКстати про полоски так сказать "занятости" или часы песочные повесить , когда программа обсчитывает результаты.
Иногда не ясно ,закончила обсчет программа или нет , нажимаешь кнопку далее и "висим" сразу сообщение ПРОГРАММА НЕ ОТВЕЧАЕТ...
в новой версии тоже только вариант 1 работает, раскладки вариант 2 3 4 по осям так и не работают
еще пожелание , для ч/б растровых изображений давать яркость тоже, тогда будет возможность использовать один профиль для всего
- 
				MAX3000
 - Опытный
 - Сообщения: 107
 - Зарегистрирован: 17 дек 2015, 11:12
 - Репутация: 18
 - Настоящее имя: MaX
 - Контактная информация:
 
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Всех с Новым Годом!
selenur, по поводу профилей - это второстепенная задача, но хорошо было бы её реализовать. Для чего? Кроме режимов работы станка - это фрезер, выжыгатель и лазер есть еще различные материалы, для которых нужно будет подбирать для каждого индивидуально зависимость мощности лазера S (и/или скорости F) от яркости, так вот эти зависимости и желательно сохранять в отдельный профиль.
			
			
									
									
						Так можно было бы сделать если бы была линейная зависимость мощности лазера от яркости, но это не так. И поэтому намного проще добавить вышеописанную таблицу (или эквалайзер), чем подобрать супер-формулу.test3210 писал(а):В принципе алгоритм как таковой не нужен, если в профиле будет доступна яркость пусть к примеру это будет параметр RGB с диапазоном 0-255 , и задаваемые через окна перед генерацией кода в последнем окне пара параметров (например скорость задать или паузу на точку для разных материалов чтобы профиля не плодить если по быстрому) то больше ничего и не надо, все будет решено внутри профиля с огромной гибкостью. Т-е есть профиль фрезер в профиле яркость преобразуем в глубину реза и получаем к примеру строку типа "Z"[10-(RGB/25)] тогда при яркой точке режем на 10 мм и не режем при черной точке , надо наоборот ? не вопрос "Z"[(RGB/25)]
Лазер ? меняем Z на S , сколько у нас максимум ? 1000 тогда "S"[RGB*3.92)] не 1000 а 255 ? еще проще ... надо резать не от нуля ? тоже решается добавлением константы на сдвиг Не регулируется мощность лазера или это нихром , меняем скорость, либо добавляем паузу перед перемещением на время пропорциональное полутону, математика уже сейчас работает , и все что я написал выше можно сделать на данной программе + якрость
Откатать в таком виде на нескольких станках, нас много , каждый даст тот профиль который получился, дальше можно их встроить в программу, либо в виде алгоритмов либо еще как-то но делать решение в виде алгоритма не имея уверенности что поможет нет смысла
А если добавить прожиг на реверсном ходу то можно сократить лишние перемещения , но такая функция не всем станкам подходит, так что это должна быть опция
selenur, по поводу профилей - это второстепенная задача, но хорошо было бы её реализовать. Для чего? Кроме режимов работы станка - это фрезер, выжыгатель и лазер есть еще различные материалы, для которых нужно будет подбирать для каждого индивидуально зависимость мощности лазера S (и/или скорости F) от яркости, так вот эти зависимости и желательно сохранять в отдельный профиль.
- 
				MAX3000
 - Опытный
 - Сообщения: 107
 - Зарегистрирован: 17 дек 2015, 11:12
 - Репутация: 18
 - Настоящее имя: MaX
 - Контактная информация:
 
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Полностью согласен, без дополнительной страницы никак не обойтись поскольку зависимость мощность-яркость нелинейная.test3210 писал(а):с z придется править профиль самостоятельно, хотя согласен, добавить пару окошек и передавать их значениия в профиль было бы правильнее, тогда формула в профиле по яркости будет типаКод: Выделить всё
"G1 X"[X] "Y"[Y] " S"[Zmin+((255-bright)/255*Zmax)'#0.#']
- 
				test3210
 - Опытный
 - Сообщения: 105
 - Зарегистрирован: 24 дек 2016, 22:16
 - Репутация: 31
 - Настоящее имя: Денис
 - Контактная информация:
 
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
я супер формулу подбирал почти день на фанеру рисуя эту картинку с разными настройкам , потом мне уже будет проще с другим материалом
а пара окошек желательно чтобы была на последней стадии, рядом с профилем, чтобы динамически менять для разных материалов, или в меню впихнуть
			
							
			
									
									
						а пара окошек желательно чтобы была на последней стадии, рядом с профилем, чтобы динамически менять для разных материалов, или в меню впихнуть
- selenur
 - Почётный участник

 - Сообщения: 4605
 - Зарегистрирован: 21 авг 2013, 19:44
 - Репутация: 1622
 - Настоящее имя: Сергей
 - Откуда: Новый Уренгой
 - Контактная информация:
 
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Наверное нужно сделать что-то типа такого: где будет пара графиков, на первом графике:test3210 писал(а):я супер формулу подбирал почти день на фанеру рисуя эту картинку с разными настройкам , потом мне уже будет проще с другим материалом
а пара окошек желательно чтобы была на последней стадии, рядом с профилем, чтобы динамически менять для разных материалов, или в меню впихнуть
указываем какую мощность применять в зависимости от яркости, например на яркости от 255 до 250 мощность равна нулю, а дальше по необходимости...
на втором графике настраиваем зависимость скорости от мощности.
Мой сайт: 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, DXF
И в этом окне настройки, отдельно будут профили для материала.
			
			
									
									Мой сайт: 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, DXF
Совершенно верно, только не "зависимость скорости от мощности", а зависимость скорости от яркости.selenur писал(а):Наверное нужно сделать что-то типа такого: где будет пара графиков, на первом графике:test3210 писал(а):я супер формулу подбирал почти день на фанеру рисуя эту картинку с разными настройкам , потом мне уже будет проще с другим материалом
а пара окошек желательно чтобы была на последней стадии, рядом с профилем, чтобы динамически менять для разных материалов, или в меню впихнуть
указываем какую мощность применять в зависимости от яркости, например на яркости от 255 до 250 мощность равна нулю, а дальше по необходимости...
на втором графике настраиваем зависимость скорости от мощности.
И варианты генерации кода:
1. Мощность с графика, скорость постоянная;
2. Скорость с графика, мощность постоянная;
3. Мощность и скорость с графика (тут конечно возни много, но если долго мучиться - что-нибудь получится).
И все.
					Последний раз редактировалось MAX3000 02 янв 2017, 16:00, всего редактировалось 2 раза.