Точечное выжигание - gcode-burner

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Zolen
Новичок
Сообщения: 11
Зарегистрирован: 23 ноя 2010, 16:32
Репутация: 2
Откуда: СПб
Контактная информация:

Точечное выжигание - gcode-burner

Сообщение Zolen »

Снимок-gcode-burner.py.png (63425 просмотров) <a class='original' href='./download/file.php?id=4820&mode=view' target=_blank>Загрузить оригинал (288.63 КБ)</a>
ТипСкрипт
РазработчикКоманда разработчиков cnc-club.ru
Написана наPython
ОСКроссплатформенное программное
обеспечение (Windows, Linux,
MacOS)
Версия1.0
ЛицензияGNU GPL
Gcode-burner - программа для создания Gкода для выжигания на станке с ЧПУ из изображения.

Возможности

  • интерполяция цвета, глубиной прожига
  • масштабирование и перемещение рисунка
  • задание ширины "точки"
  • дополнительные заголовки или окончания файла
  • возможность подключения к EMC2, как препроцессор
  • задание общей длинны или ширины рисунка

Подключение к EMC2

Скрипт разрабатывался таким образом, чтобы его можно было подключить к EMC2 как препроцессор. Т.е. при открытии в EMC2 картинки автоматически запустится gcode-burner, а его вывод откроется в EMC2.
Для того, чтобы подключить gcode-burner к EMC2 нужно в ini файле в разделе фильтр написать что-то вроде:

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

PROGRAM_EXTENSION = .png,.gif,.jpg,.jpeg images for gcode-burner
       png = gcode-burner
       gif = gcode-burner
       jpg = gcode-burner
       jpeg = gcode-burner
Подробнее см. инструкцию к EMC2, раздел: 4.2.3 Раздел [FILTER]

Последняя версия

Последняя версия доступна в репозитории git: https://github.com/cnc-club/gcode-burner
Прямая ссылка на архив: https://github.com/cnc-club/gcode-burne ... master.zip
Нам нужны фотографии готовых работ! А также приветствуются любые замечания и пожелания :)!

С этого сообщения началась разработка gcode-burner. Все что сверху добавлено потом.
--Nick

Доброго времени суток.
Подскажите, какие есть способы из фотографии получить g код, который будет на каждый темный пиксель погружать иглу выжигателя в зготовку(как на картинке)?
Насколько я понял, для начала нужно сделать картинку Ч/Б с минимумом уровней серого. А вот дальше я ничего не придумал =(
Буду рад, если кто расскажет свой рецепт или название софта для этого.
ptp00000.jpg (65300 просмотров) <a class='original' href='./download/file.php?id=910&mode=view' target=_blank>Загрузить оригинал (34.53 КБ)</a>
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Точечное выжигание - gcode-burner

Сообщение Nick »

Да не, у меня просто всегда так, с первого раза не заводится, сначала надо пофиксить несколько багов :lol: :freak:!

Ждем отчет. А то у нас еще полноценных испытаний не было. Может что-то поправить надо, чтобы лучше работало :).
Аватара пользователя
viktars
Почётный участник
Почётный участник
Сообщения: 67
Зарегистрирован: 25 мар 2012, 21:54
Репутация: 0
Откуда: Latvia, Vangazi
Контактная информация:

Re: Точечное выжигание - gcode-burner

Сообщение viktars »

Что-то у меня всё наоборот получается. Картинка в axis вверх ногами и ещё зеркальная и выжигает не чёрные точки, а белые. Пришлось картинку сделать негативом. У меня ну очень долго выжигает. Примерно 5 секунд точка. :cheesy:
Я мастер хреновый, но дорогой.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Точечное выжигание - gcode-burner

Сообщение Nick »

viktars писал(а):Картинка в axis вверх ногами
.... интересно, это от станка зависит или у нас косяк....
viktars писал(а):выжигает не чёрные точки, а белые
В настройках можно поменять цвет. Точнее если поменять значения Zmin и Zmax то должно стать все наоборот. Сейчас вообще туда вставлю функцию eval, можно будет все что угодно делать :).
viktars писал(а):У меня ну очень долго выжигает. Примерно 5 секунд точка.
Сделай по-меньше Ztraverse - тогда выжигатель будет не так высоко подниматься = меньше времени на точку. Может есть предложения по улучшению?
Аватара пользователя
viktars
Почётный участник
Почётный участник
Сообщения: 67
Зарегистрирован: 25 мар 2012, 21:54
Репутация: 0
Откуда: Latvia, Vangazi
Контактная информация:

Re: Точечное выжигание - gcode-burner

Сообщение viktars »

Nick писал(а):.... интересно, это от станка зависит или у нас косяк....
мой станочек выжигал контуры рисунков и буквы в правильном расположении.
Nick писал(а):Точнее если поменять значения Zmin и Zmax то должно стать все наоборот.
только мне кажется , что по фанере проведёт полосу, а точки будет делать вверх.
Nick писал(а):Сделай по-меньше Ztraverse
я до этого уже догодался, но и стоночек ещё не идеал.
Я мастер хреновый, но дорогой.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Точечное выжигание - gcode-burner

Сообщение Nick »

Добавил Z function. Этот параметр прогоняется через питоновский eval. По умолчанию он выглядит так
zmin*(1-v)+zmax*v if v<0.9 else None , v - значение интенсивности цвета от 0-1 (черный=0, белый = 1). В данном случае все пиксели светлее 0.9 не будут в Gкоде - должно значительно сократить время обработки.

Также исправил несколько косяков. Новая версия в шапке темы. (Теперь она показывается на каждой странице)
Аватара пользователя
viktars
Почётный участник
Почётный участник
Сообщения: 67
Зарегистрирован: 25 мар 2012, 21:54
Репутация: 0
Откуда: Latvia, Vangazi
Контактная информация:

Re: Точечное выжигание - gcode-burner

Сообщение viktars »

на станке не пробывал, а в axis вижу ,что стало намного лудше :good: ,но изображение вверх ногами (не зеркальное).
Я мастер хреновый, но дорогой.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Точечное выжигание - gcode-burner

Сообщение Nick »

Сейчас сделаю параметры, ими можно будет многое поменять.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Точечное выжигание - gcode-burner

Сообщение Nick »

Сделал, теперь есть галка Add parameterisation, и вверху Gкода будут параметры, которые можно менять. Отразить по Y будет <y-scale> = -1
Хотя, это можно и в настройках сделать, также отрицательное значение поставить и все :)
Аватара пользователя
viktars
Почётный участник
Почётный участник
Сообщения: 67
Зарегистрирован: 25 мар 2012, 21:54
Репутация: 0
Откуда: Latvia, Vangazi
Контактная информация:

Re: Точечное выжигание - gcode-burner

Сообщение viktars »

я от перевёрнутого изображения не страдаю. А с галочкой на Add parameterisation выкидывает ошибку:
около строки 16 в/tmp/tmpBsrEUN/adolf.png
незавершенное выражение

буду без галки
Я мастер хреновый, но дорогой.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Точечное выжигание - gcode-burner

Сообщение Nick »

А с галочкой на Add parameterisation выкидывает ошибку:
Упс... Забыл скобочку ] добавить, вроде исправил...
Аватара пользователя
viktars
Почётный участник
Почётный участник
Сообщения: 67
Зарегистрирован: 25 мар 2012, 21:54
Репутация: 0
Откуда: Latvia, Vangazi
Контактная информация:

Re: Точечное выжигание - gcode-burner

Сообщение viktars »

провозился 4 часа с фотографией (не целой). Пошли полосы. Почему не понял надо разбираться. Толи пропуск шагов по оси z , толи на иглу налипает нагар или ещё чтото. вот видео моей работы http://www.youtube.com/watch?v=J4c5HDfq ... AAAAAAAAAA
Игла , как я понял, должна быть очень острой. Кто-нибудь кроме меня пробовал выжигать? Захотел изменить параметры в step conf в файле мой станок.ini всё вернулось обратно. пришлось переписать фильтр. В шапке темы написано:
PROGRAM_EXTENSION = .png,.gif,.jpg,.jpeg images for gcode-burner
png = gcode-burner
gif = gcode-burner
jpg = gcode-burner
jpeg = gcode-burner

У меня это не работает. У меня так:
PROGRAM_EXTENSION = .png,.gif,.jpg,.jpeg images for python gcode-burner.py
png = python gcode-burner.py
gif = python gcode-burner.py
jpg = python gcode-burner.py
jpeg = python gcode-burner.py
А вообще спасибо за ваши труды, здорово работаете :good:
Я мастер хреновый, но дорогой.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Точечное выжигание - gcode-burner

Сообщение Nick »

А можешь сделать отдельное фото, что бы было видно отдельные точки?
С полутонами не пробовал работать?

Также попробуй сделать по-больше расстояние между точками, получится слегка другое изображение, но оно может оказаться более интересным.
Чтобы получилось так, как на фото в первом сообщении.
Аватара пользователя
viktars
Почётный участник
Почётный участник
Сообщения: 67
Зарегистрирован: 25 мар 2012, 21:54
Репутация: 0
Откуда: Latvia, Vangazi
Контактная информация:

Re: Точечное выжигание - gcode-burner

Сообщение viktars »

сейчас сижу дома и эксперементирую с фотографиями. кажется начинает мешать zmin*(1-v)+zmax*v if v<0.9 else None. Готовлю изображение, гружу, в аксис показывает какието другие точки. меняю 0.9 на другие значения. с какимито фото лудше , а скакимито хуже. на станке час потеряешь и увидишь, что нето, меняешь 0.9 на другое значение и ещё часочек :thinking: . Свою работу я вчера испортил (хотел улудшить), но какой нибудь фрагмент сфотаю, или новое побыстрому :lol: выжгу
Я мастер хреновый, но дорогой.
Аватара пользователя
viktars
Почётный участник
Почётный участник
Сообщения: 67
Зарегистрирован: 25 мар 2012, 21:54
Репутация: 0
Откуда: Latvia, Vangazi
Контактная информация:

Re: Точечное выжигание - gcode-burner

Сообщение viktars »

если я меняю z min z max это влияет на глубину погружения иглы?
Я мастер хреновый, но дорогой.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Точечное выжигание - gcode-burner

Сообщение Nick »

Сейчас объясню как это работает:

zmin*(1-v)+zmax*v if v<0.9 else None

Сначала проверяется:
zmin*(1-v)+zmax*v if v<0.9 else None
Если V, т.е. интенсивоность цвета меньше 0.9 (0.9 - это почти белый = 10%gray), тогда вычисляем первую часть выражения:
zmin*(1-v)+zmax*v if v<0.9 else None
Эта часть, это прямая интерполяция значений Zmin и Zmax, т.е. при v=0 заглубление будет zmin, при v=1 Zmax.

zmin*(1-v)+zmax*vif v<0.9 else None
Если первое условие не сработало, - цвет почти белый, просто игнорируем эту точку

Лучше всего проведи несколько тестов с разными параметрами V<0.9, потом попробуй разные заглубления. Для теста возьми простенькую картинку 15х15 (смайлик например). И еще попробуй разные расстояния между точками.


ЗЫ раньше программа работала с такой функцией zmin*(1-v)+zmax*v if v<1 else None, только она была не видна ;).
Аватара пользователя
viktars
Почётный участник
Почётный участник
Сообщения: 67
Зарегистрирован: 25 мар 2012, 21:54
Репутация: 0
Откуда: Latvia, Vangazi
Контактная информация:

Re: Точечное выжигание - gcode-burner

Сообщение viktars »

фрагмент того , что получилось
Вложения
foto.JPG (2838 просмотров) <a class='original' href='./download/file.php?id=4885&mode=view' target=_blank>Загрузить оригинал (214.98 КБ)</a>
Я мастер хреновый, но дорогой.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Точечное выжигание - gcode-burner

Сообщение Nick »

Как тебе кажется, стоит что-то менять или нет?
может попробовать изменить "квантование" цветов, т.е. пределать изображение в 2-5 цветное?

Мне кажется или все точки выглядят не одинаково?
sandman
Мастер
Сообщения: 257
Зарегистрирован: 31 мар 2011, 19:09
Репутация: 19
Откуда: Германия, Horb am Neckar
Контактная информация:

Re: Точечное выжигание - gcode-burner

Сообщение sandman »

Когда я пробовал, то пришёл к выводу, что на качество выжигаемой картинки влияет ещё скорость погружения иглы, дерево то разное. Чем глубже и темнее точка, тем медленнее должна погружаться игла.
В идеале наверное был бы какой нибудь токовый контроль температуры иглы... У меня не было тогда времени довести дело до конца, попробую как будет время.
Аватара пользователя
viktars
Почётный участник
Почётный участник
Сообщения: 67
Зарегистрирован: 25 мар 2012, 21:54
Репутация: 0
Откуда: Latvia, Vangazi
Контактная информация:

Re: Точечное выжигание - gcode-burner

Сообщение viktars »

Nick писал(а):может попробовать изменить "квантование" цветов, т.е. пределать изображение в 2-5 цветное?
Этот фрагмент примерно 25х19мм. Я может переколдовал с картинкой. Хотел чтобы размер получился поменьше, поэтому глаз это 4 точки :thinking:
На неделе попробую провести эксперементы с другими изображениями.
sandman писал(а):на качество выжигаемой картинки влияет ещё скорость погружения иглы
я думаю скорость может быть одинаковой. Темнота точки зависит от глубины погружения иглы. Игла глубже - дольше в дереве -точка черней. Игла должна быть острой, чтобы самый светлый из тёмных пикселей стабильно выжигал. Сделал иглу из серебряной серьги, чтобы макушка не отгарала :?
Осталось придумать как чистить от нагара. он тоже мешает.
Я мастер хреновый, но дорогой.
sandman
Мастер
Сообщения: 257
Зарегистрирован: 31 мар 2011, 19:09
Репутация: 19
Откуда: Германия, Horb am Neckar
Контактная информация:

Re: Точечное выжигание - gcode-burner

Сообщение sandman »

Осталось придумать как чистить от нагара. он тоже мешает
Наверное ввести в код периодический проезд где нибудь по куску наждачки, там надо то чуть чуть, что бы нагоревшая шапочка отвалилась.
Ответить

Вернуться в «LinuxCNC»