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

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

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

Сообщение MAX3000 »

selenur, ВСЕ ОТЛИЧНО!!! СПАСИБО БОЛЬШОЕ!!!
Проверил программу на 8 и 24 битных bmp- и jpg- файлах. Косяков в обработке не заметил :good:
-----------------
Единственное, если это возможно, подправь генерацию кода.
Генерацию кода делаю на профиле:

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

# Настройка для лазерного выжигателя S - Bright New#
$.$
"G90"
"G0 F800"
"G0 X0 Y0"
"G1 F500"
"S0"
"M3"
LINES
{
"G0 X"[X] "Y"[Y] "S0"
   POINTS
   {
      "G1 X"[X] "Y"[Y] "S"[255-bright]
   }
}
"M5"
"G0 X0 Y0"
"M30"
Файл:
лазер Bright - S New.txt
(238 байт) 960 скачиваний
В результате получается код:

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

 G1 X2.5  Y0  S255
 G1 X2.5  Y0  S229
 G1 X5  Y0  S229
 G1 X5  Y0  S204
Файл:
g-kode-1.rar
(920 байт) 294 скачивания
Где видно - после того как лазер отрисовав одну яркость, приостанавливается в конечной точке, переключается на другую яркость, а затем отрисовывает на этой яркости линию.
Выход конечно есть. Например в программе EditPad можно произвести поиск-замену по регулярным выражениям (можно и в любой лругой, поддерживающей поик-замену по регулярным выражениям):

- Перва обработка:
1-1.jpg (3358 просмотров) <a class='original' href='./download/file.php?id=100924&sid=0c1a46554e265e00c40495b2ead461a9&mode=view' target=_blank>Загрузить оригинал (181.92 КБ)</a>
Файл:
g-kode-1-opt1.rar
(736 байт) 286 скачиваний
- Вторая обработка:
1-2.jpg (3358 просмотров) <a class='original' href='./download/file.php?id=100925&sid=0c1a46554e265e00c40495b2ead461a9&mode=view' target=_blank>Загрузить оригинал (172.08 КБ)</a>
Файл:
g-kode-1-opt2.rar
(732 байт) 303 скачивания
- И результат:
1-3.jpg (3358 просмотров) <a class='original' href='./download/file.php?id=100926&sid=0c1a46554e265e00c40495b2ead461a9&mode=view' target=_blank>Загрузить оригинал (235.84 КБ)</a>
Результат работы программы просто отличный! Но может сможешь и это подправить.
И еще раз - БОЛЬШОЕ СПАСИБО!!! :good:
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

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

Сообщение selenur »

MAX3000 писал(а):Единственное, если это возможно, подправь генерацию кода.
Я просто заменю файл профиля, на твой, и с новой версии будет использоваться именно он ;-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
MAX3000
Опытный
Сообщения: 107
Зарегистрирован: 17 дек 2015, 11:12
Репутация: 18
Настоящее имя: MaX
Контактная информация:

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

Сообщение MAX3000 »

selenur писал(а):
MAX3000 писал(а):Единственное, если это возможно, подправь генерацию кода.
Я просто заменю файл профиля, на твой, и с новой версии будет использоваться именно он ;-)
Конечно замени, но он генерирует файлы, которые нуждаются в дальнейшей обработке (вышеописанной).
Хотя на станке еще не проверял (пока нет возможности), может обработка и не потребуется.
Когда проверю, выложу сравнительные результаты.
Аватара пользователя
rage
Мастер
Сообщения: 1002
Зарегистрирован: 13 окт 2014, 09:14
Репутация: 617
Настоящее имя: Константин
Откуда: Новосибирск
Контактная информация:

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

Сообщение rage »

Отличная программа! Автору респект.
Возникло пару вопросов.
При гравировке растра задается диаметр точки и время прожига.
Так вот, диаметр точки это фактически диаметр точки лазера, или некое "разрешение", и может быть больше фактического диаметра?
Время прожига, не понял на что влияет, по суте в генерируемом г-коде нету задержек типа G4. На что влияет этот пар-р?
Генерируемый г-код получается с пар-ом S, я так понял в диапазоне от 0-255 ? Тогда зачем нужна "Калибровка параметров для лазера"?
Как ее применить? У меня мощность регулируется в приделах 0-1000 соответственно 0-100%%.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

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

Сообщение selenur »

rage писал(а):Отличная программа! Автору респект.
Возникло пару вопросов.
При гравировке растра задается диаметр точки и время прожига.
Так вот, диаметр точки это фактически диаметр точки лазера, или некое "разрешение", и может быть больше фактического диаметра?
Время прожига, не понял на что влияет, по суте в генерируемом г-коде нету задержек типа G4. На что влияет этот пар-р?
Генерируемый г-код получается с пар-ом S, я так понял в диапазоне от 0-255 ? Тогда зачем нужна "Калибровка параметров для лазера"?
Как ее применить? У меня мощность регулируется в приделах 0-1000 соответственно 0-100%%.
Сегодня вечером посмотрю, как доберусь до компьютера, но вроде был отдельный профиль для выжигания точками, принцип работы следующий, запуская примерно какой G-код:

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

m5
s1000 m3 p1000
m5
мы определяемся с диаметром точки, и длительностью включения, подбирая значение S и P, после этого выбираем рисунок, на 9-й странице фильтр №1 или №2, указываем эти 2 параметра, и получаем траекторию из точек, чуть выше есть и сообщения, и пример профиля, и реальный результат.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

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

Сообщение selenur »

Вот 36-я версия: https://github.com/selenur/ToolsGenGkod ... 36/v36.zip
Поправлены только профайлы.
Ответ на вопрос, как сделать выжигание точками:
2017-01-24_235836.jpg (3307 просмотров) <a class='original' href='./download/file.php?id=101021&sid=0c1a46554e265e00c40495b2ead461a9&mode=view' target=_blank>Загрузить оригинал (501.83 КБ)</a>
2017-01-24_235850.jpg (3307 просмотров) <a class='original' href='./download/file.php?id=101022&sid=0c1a46554e265e00c40495b2ead461a9&mode=view' target=_blank>Загрузить оригинал (430.17 КБ)</a>
Результат:
WP_001662.jpg (3307 просмотров) <a class='original' href='./download/file.php?id=101023&sid=0c1a46554e265e00c40495b2ead461a9&mode=view' target=_blank>Загрузить оригинал (336.51 КБ)</a>
Но выжигание по точкам более медленная технология, т.к. приходится выполнять разгон торможение, на каждой точке, при применении вот такой конструкции: Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF #423 как у форумчанина Rom327, возможно и нормально будет, на моем станочке конечно вариант рабочий но не быстрый.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

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

Сообщение selenur »

rage писал(а): Тогда зачем нужна "Калибровка параметров для лазера"?
Как ее применить?
Данная опция только в процессе разработки (не готова), и я её не отключаю, т.к. те пользователи что пользуются моей программой (человек 5 - 10) знают, и не обращают внимание... :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
CactusMan
Кандидат
Сообщения: 55
Зарегистрирован: 04 мар 2015, 21:27
Репутация: 12
Настоящее имя: Павел Попов
Откуда: Тула
Контактная информация:

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

Сообщение CactusMan »

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

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

Сообщение selenur »

CactusMan писал(а):Там в архив 36 версии попали все предыдущие...
упс....... :thinking:
Мой сайт: http://selenur.ru
Исходники моих программ: 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 »

Если что у меня 26,27,28 осталась.
Аватара пользователя
Rom327
Почётный участник
Почётный участник
Сообщения: 2940
Зарегистрирован: 03 апр 2015, 13:23
Репутация: 431
Настоящее имя: Роман
Откуда: Подольск
Контактная информация:

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

Сообщение Rom327 »

selenur писал(а):Но выжигание по точкам более медленная технология, т.к. приходится выполнять разгон торможение, на каждой точке, при применении вот такой конструкции: Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF #423 как у форумчанина Rom327, возможно и нормально будет, на моем станочке конечно вариант рабочий но не быстрый.
Приветствую! Если выжигать точками с паузами, то конечно немного медленнее. Но, так как точки расположены близко друг к другу, то станок на скорость G1 и не выходит. G1 станок набирает только там, где точки далеко друг от друга. Стало быть, можно увеличить ускорение в настройках станка до максимума, пока не будут проявляться срывы или пропуски.
Это сугубо мое мнение, могу и ошибаться...
https://vk.com/rom327
GRBL настройки: http://blogandbux.blogspot.com/2018/07/ ... revod.html
G коды: http://3d-stanki.ru/spravochnik/program ... stankov-2/
Аватара пользователя
Пчеловод
Новичок
Сообщения: 23
Зарегистрирован: 09 янв 2017, 15:14
Репутация: 5
Настоящее имя: Александр
Откуда: Ростовская обл.
Контактная информация:

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

Сообщение Пчеловод »

Роман, а можно поинтересоваться какие у вас движки и ускорением со скоростью?
Аватара пользователя
Rom327
Почётный участник
Почётный участник
Сообщения: 2940
Зарегистрирован: 03 апр 2015, 13:23
Репутация: 431
Настоящее имя: Роман
Откуда: Подольск
Контактная информация:

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

Сообщение Rom327 »

Пчеловод писал(а):Роман, а можно поинтересоваться какие у вас движки и ускорением со скоростью?
Значит так.
Движки Nema17 HS8401,
драйверы на одиночных TB6560, напряжение питания 12В, ток мотора 1А (увеличение добавляет шум(завывание) к работе, больший нагрев и на скорость не влияет.), делитель 16.
TB6560.jpg (3193 просмотра) <a class='original' href='./download/file.php?id=101242&sid=0c1a46554e265e00c40495b2ead461a9&mode=view' target=_blank>Загрузить оригинал (132.87 КБ)</a>
Настройки Grblcontrol:
$120=$121=2000.000 (mm/sec^2),
$110=$111=5000.000 (max rate, mm/min)
Но это на моем конкретном станке. Все параметры подбирались конкретно под него.
Сначала гонял по квадрату и диагоналям и подбирал G0 и $120 и $121, чтобы не было пропусков и срывов.
У меня и на G0=25000 бегает запросто, но ускорения приходится снижать до $120=$121=500.000 (mm/sec^2). Да и зачем рвать железо, если нет такой необходимости.
Ну а G1 больше привязана к программе и материалу. В любом случае методом проб и ошибок находится компромисс между скоростью и качеством. Хороший тест для проверки качества настройки: нарисовать круг диаметром 1-5мм на рабочей скорости. Если получается ровный круг, значит настройка правильная, если некая многогранная фигура, значит есть пропуски и срывы.
Это сугубо мое мнение, могу и ошибаться...
https://vk.com/rom327
GRBL настройки: http://blogandbux.blogspot.com/2018/07/ ... revod.html
G коды: http://3d-stanki.ru/spravochnik/program ... stankov-2/
test3210
Опытный
Сообщения: 105
Зарегистрирован: 24 дек 2016, 22:16
Репутация: 31
Настоящее имя: Денис
Контактная информация:

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

Сообщение test3210 »

Вылезла проблема, много лишних пробелов при генерации кода, и если те что в середине не влияют ни на что , то первый символ пробела перед командами все портит, бенбокс такой код не принимает , позатирал пробелы принимает :( но стереть пробелы в 5к строк кода проблема, а пользовать другие программы для этого не серьезно
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

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

Сообщение selenur »

test3210 писал(а):Вылезла проблема, много лишних пробелов при генерации кода, и если те что в середине не влияют ни на что , то первый символ пробела перед командами все портит, бенбокс такой код не принимает , позатирал пробелы принимает :( но стереть пробелы в 5к строк кода проблема, а пользовать другие программы для этого не серьезно
В каталоге с программой есть папочка profiles в ней содержатся файлы профилей, открой блокнотом нужный профиль, и удали в нем лишние пробелы.
Вот описание содержимого какое может быть: http://selenur.ru/?page_id=516
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
MAX3000
Опытный
Сообщения: 107
Зарегистрирован: 17 дек 2015, 11:12
Репутация: 18
Настоящее имя: MaX
Контактная информация:

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

Сообщение MAX3000 »

MAX3000 писал(а):selenur, ВСЕ ОТЛИЧНО!!! СПАСИБО БОЛЬШОЕ!!!
Проверил программу на 8 и 24 битных bmp- и jpg- файлах. Косяков в обработке не заметил :good:
-----------------
Единственное, если это возможно, подправь генерацию кода.
Генерацию кода делаю на профиле:

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

# Настройка для лазерного выжигателя S - Bright New#
$.$
"G90"
"G0 F800"
"G0 X0 Y0"
"G1 F500"
"S0"
"M3"
LINES
{
"G0 X"[X] "Y"[Y] "S0"
   POINTS
   {
      "G1 X"[X] "Y"[Y] "S"[255-bright]
   }
}
"M5"
"G0 X0 Y0"
"M30"
Файл:
Вложение лазер Bright - S New.txt больше недоступно
В результате получается код:

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

 G1 X2.5  Y0  S255
 G1 X2.5  Y0  S229
 G1 X5  Y0  S229
 G1 X5  Y0  S204
Mои предположения оправдались - от точек перехода яркости нужно избавляться:
1-1.jpg (3127 просмотров) <a class='original' href='./download/file.php?id=101292&sid=0c1a46554e265e00c40495b2ead461a9&mode=view' target=_blank>Загрузить оригинал (72.22 КБ)</a>
Но есть и положительные результаты:
Макрос [SKIP_FIRST_POINT] отрабатывает на отлично и строки после команды G0 - удаляются!
1-2.jpg (3127 просмотров) <a class='original' href='./download/file.php?id=101293&sid=0c1a46554e265e00c40495b2ead461a9&mode=view' target=_blank>Загрузить оригинал (66.81 КБ)</a>
Таким образом файл достаточно прогнать первым регулярным выражением.

selenur, это не кретично, но может сможешь добавить еще один макрос для удаления вышеуказанных строк - например [SKIP_CHANGE_BRIGHT], чтоб с регулярками не возится.

И еще, selenur, большая просьба - доделай немножко программу калибровки:
1-3.jpg (3127 просмотров) <a class='original' href='./download/file.php?id=101295&sid=0c1a46554e265e00c40495b2ead461a9&mode=view' target=_blank>Загрузить оригинал (80.83 КБ)</a>
Для экспериментов пока достаточно чтобы она могла хранить введенные значения (чтобы при каждом запуске не вводить по новой), и сохранять в csv файл с каким-нибудь разделителем между значениями столбцов - например - ;(точка с запятой). Чтоб получался файл с данными из таблицы вида:

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

0;50
1;100
2;102
3;104
4;105
5;107
6;109
7;110
8;112
9;114
10;115
...
и т.д.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

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

Сообщение selenur »

MAX3000 писал(а):selenur, это не кретично, но может сможешь добавить еще один макрос для удаления вышеуказанных строк - например [SKIP_CHANGE_BRIGHT], чтоб с регулярками не возится.
Этот момент я уже давно продумал, осталось только реализовать, а будет так:

есть например в профиле такая строка

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

"G1 X"[X] "Y"[Y] @"S"[255-bright]@ 
что означает в цикле будет постоянно выводиться "G1 X"[X] "Y"[Y] а та часть строки @"S"[255-bright]@ которая обрамлена собачками будет помещаться в буфер, и при каждой итерации цикла сравниваться с новым результатом, и если нет отличий то не выводиться.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

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

Сообщение selenur »

В ближайшие дни к сожалению, навряд ли смогу что либо доработать, т.к. с рождением сына появилось много приятных забот, и на хобби пока времени нет....
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
MAX3000
Опытный
Сообщения: 107
Зарегистрирован: 17 дек 2015, 11:12
Репутация: 18
Настоящее имя: MaX
Контактная информация:

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

Сообщение MAX3000 »

selenur писал(а):В ближайшие дни к сожалению, навряд ли смогу что либо доработать, т.к. с рождением сына появилось много приятных забот, и на хобби пока времени нет....
Поздравляю!
Аватара пользователя
CactusMan
Кандидат
Сообщения: 55
Зарегистрирован: 04 мар 2015, 21:27
Репутация: 12
Настоящее имя: Павел Попов
Откуда: Тула
Контактная информация:

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

Сообщение CactusMan »

MAX3000 писал(а):
selenur писал(а):В ближайшие дни к сожалению, навряд ли смогу что либо доработать, т.к. с рождением сына появилось много приятных забот, и на хобби пока времени нет....
Поздравляю!
Присоединяюсь. :good:
Ответить

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