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

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

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

Сообщение selenur »

y-u-r писал(а):Не спалось , сломал голову об алгоритм....
Для Layout
Выделяем линию (контур) вываливается окно с установками :
- колличество проходов (помнит)
- глубина одного прохода(помнит)
- толщина фрезы(помнит)
- "галка" проход по центру линии , проход по внешней границе , проход по внутренней границе.
- если это заливка (линия толще фрезы) - смотрим на диаметр фрезы и работаем концентрическими проходами
( Если сложно, можно делать вручную : заранее рисовать спираль, с учетом толщины фрезы )

- Не придумал , как сделать "заливка на заливке". Например квадрат 20мм х 20мм глубина прохода 1мм ,один проход
и сверху еще она заливка 10мм х 10мм глубина 1мм , два прохода. Т.е получается "подвал в подвале" - например углубление под гайку и потом вторая заливка на сквозь . Т.е реализовать возможность ступенек.

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

- "Галка" : вырезать этот контур " последним" . Естественно "галка" в следующих менюшках неактивна.
- большая кнопка сформировать G-код. :thinking:
Посмотрел я программу FlatCAM, для примера создал тестовую плату, и данные экспортировал в Gerber, и вот что удалось получить:
тестовая плата 1:
2017-02-13_165735.jpg (1556 просмотров) <a class='original' href='./download/file.php?id=103138&mode=view' target=_blank>Загрузить оригинал (16.97 КБ)</a>
и получение траектории:
2017-02-13_165754.jpg (1556 просмотров) <a class='original' href='./download/file.php?id=103139&mode=view' target=_blank>Загрузить оригинал (123.59 КБ)</a>
2017-02-13_165811.jpg (1556 просмотров) <a class='original' href='./download/file.php?id=103140&mode=view' target=_blank>Загрузить оригинал (89.07 КБ)</a>
тестовая плата 2:
2017-02-13_170141.jpg (1556 просмотров) <a class='original' href='./download/file.php?id=103141&mode=view' target=_blank>Загрузить оригинал (290.97 КБ)</a>
И например траектория по выбранному участку:
2017-02-13_171028.jpg (1556 просмотров) <a class='original' href='./download/file.php?id=103142&mode=view' target=_blank>Загрузить оригинал (174.09 КБ)</a>
Правда плату я в дип-трейсе делал...
И в программе вроде есть настройки проходы с множественным повтором по оси Z.
Вот ссылка на программу: https://bitbucket.org/jpcgt/flatcam/dow ... nstall.exe посмотри, может она поможет уже сейчас решить все твои задачи. :-)
Мой сайт: 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 »

Интуитивно не понятная штука....
Спасибо ,посмотрю конечно....
Но думаю пока разберусь что и к чему и выясню полезная мне прога или нет..
Ваша прога уже :D "научится" окантовки делать "на раз"....
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

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

Сообщение selenur »

y-u-r писал(а):Интуитивно не понятная штука....
Пипец какая интуитивно не понятная..... часа 2 убил пока понял как g-код получать......
Но как бесплатный вариант, вполне ничего :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Rrickardos
Новичок
Сообщения: 6
Зарегистрирован: 13 фев 2017, 22:52
Репутация: 1
Настоящее имя: Андрей
Контактная информация:

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

Сообщение Rrickardos »

Уважаемый selenur! Решил попробовать Вашу прогу. Вроде как обнаружил глюк: Был выбран файл для тестового выжигания (5x5x50mm_10st_0.10dt.bmp), скачанный из текущей ветки форума. На стр.9 выбираем фильтр 03, и делаем (к примеру) такие настройки фильтра №3:

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

0;0
150;200
255;255
captur1.jpg (1524 просмотра) <a class='original' href='./download/file.php?id=103180&mode=view' target=_blank>Загрузить оригинал (175.54 КБ)</a>
После этого на стр.10 формируем G-код "...S с профилем" и получаем странные значения: S319, S306, S306, S293 и S280

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

G90
  G1   X5  Y0  S255
 G1   X10  Y0  S319
 G1   X15  Y0  S306
 G1   X20  Y0  S293
 G1   X25  Y0  S280
 G1   X30  Y0  S169
captur.jpg (1524 просмотра) <a class='original' href='./download/file.php?id=103181&mode=view' target=_blank>Загрузить оригинал (53.42 КБ)</a>
Правильно ли я понимаю, что максимальное значение S должно быть - 255? Ошибка в интерполяции или я не верно понял логику?

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

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

Сообщение selenur »

При такой настройке S должна была доходить до 255 и всё, странный глюк завтра попробую у себя проверить.
Мой сайт: 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 »

Rrickardos писал(а):Уважаемый selenur! Решил попробовать Вашу прогу. Вроде как обнаружил глюк: Был выбран файл для тестового выжигания (5x5x50mm_10st_0.10dt.bmp), скачанный из текущей ветки форума. На стр.9 выбираем фильтр 03, и делаем (к примеру) такие настройки фильтра №3:

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

0;0
150;200
255;255
captur1.jpg
После этого на стр.10 формируем G-код "...S с профилем" и получаем странные значения: S319, S306, S306, S293 и S280

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

G90
  G1   X5  Y0  S255
 G1   X10  Y0  S319
 G1   X15  Y0  S306
 G1   X20  Y0  S293
 G1   X25  Y0  S280
 G1   X30  Y0  S169
captur.jpg
Правильно ли я понимаю, что максимальное значение S должно быть - 255? Ошибка в интерполяции или я не верно понял логику?

ЗЫ. Спасибо Вам за труды :D
Проверил у себя - тоже такие S-ки. Где-то, что-то не правильно пересчитывается.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

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

Сообщение selenur »

MAX3000 писал(а):
Rrickardos писал(а):Уважаемый selenur! Решил попробовать Вашу прогу. Вроде как обнаружил глюк: Был выбран файл для тестового выжигания (5x5x50mm_10st_0.10dt.bmp), скачанный из текущей ветки форума. На стр.9 выбираем фильтр 03, и делаем (к примеру) такие настройки фильтра №3:

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

0;0
150;200
255;255
Вложение captur1.jpg больше недоступно
После этого на стр.10 формируем G-код "...S с профилем" и получаем странные значения: S319, S306, S306, S293 и S280

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

G90
  G1   X5  Y0  S255
 G1   X10  Y0  S319
 G1   X15  Y0  S306
 G1   X20  Y0  S293
 G1   X25  Y0  S280
 G1   X30  Y0  S169
Вложение captur.jpg больше недоступно
Правильно ли я понимаю, что максимальное значение S должно быть - 255? Ошибка в интерполяции или я не верно понял логику?

ЗЫ. Спасибо Вам за труды :D
Проверил у себя - тоже такие S-ки. Где-то, что-то не правильно пересчитывается.
В формуле у меня косяк, получился :-)
У меня такая формула:

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

sourceBright = 197 //Яркость точки
Bmin  = 150  //минимальная точка яркости с графика
Bmax = 255  //максимальная точка яркости с графика
Smin  = 200  //минимальная точка S с графика
Smax = 255  //максимальная точка S с графика

result = ((Smax - Smin) / ((Bmax - Bmin) / sourceBright)) + Smin;
Сам график и расположение точки:
2017-02-15_083245.jpg (1457 просмотров) <a class='original' href='./download/file.php?id=103308&mode=view' target=_blank>Загрузить оригинал (53.55 КБ)</a>
Так-что нужно сообразить формулу, но с этим постоянным недосыпом, голова вообще не соображает...
Но скоро поправлю ;-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Rrickardos
Новичок
Сообщения: 6
Зарегистрирован: 13 фев 2017, 22:52
Репутация: 1
Настоящее имя: Андрей
Контактная информация:

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

Сообщение Rrickardos »

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

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

Сообщение selenur »

Rrickardos писал(а):Ой. То ли это не 2.0.0.42 версия, то ли ткните носом где такая форма... не могу найти. :thinking:
Если ты про окно где появилась настройка зависимости скорости F от яркости, то эту версию я не выкладывал, т.к. используется одна и та-же формула с косячком :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Rrickardos
Новичок
Сообщения: 6
Зарегистрирован: 13 фев 2017, 22:52
Репутация: 1
Настоящее имя: Андрей
Контактная информация:

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

Сообщение Rrickardos »

selenur писал(а):
В формуле у меня косяк, получился :-)
У меня такая формула:

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

sourceBright = 197 //Яркость точки
Bmin  = 150  //минимальная точка яркости с графика
Bmax = 255  //максимальная точка яркости с графика
Smin  = 200  //минимальная точка S с графика
Smax = 255  //максимальная точка S с графика

result = ((Smax - Smin) / ((Bmax - Bmin) / sourceBright)) + Smin;
Сам график и расположение точки:
Вложение 2017-02-15_083245.jpg больше недоступно
Так-что нужно сообразить формулу, но с этим постоянным недосыпом, голова вообще не соображает...
Но скоро поправлю ;-)
ИМХО формула линейной интерполяции должна быть такая

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

result = (Smax - Smin) / (Bmax - Bmin) *( sourceBright-Bmin) + Smin;
IMG_20170215_1255491.jpg (1430 просмотров) <a class='original' href='./download/file.php?id=103337&mode=view' target=_blank>Загрузить оригинал (440.65 КБ)</a>
Последний раз редактировалось Rrickardos 15 фев 2017, 13:29, всего редактировалось 1 раз.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

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

Сообщение selenur »

:good: сегодня поправлю, и выложу новую версию!
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Rrickardos
Новичок
Сообщения: 6
Зарегистрирован: 13 фев 2017, 22:52
Репутация: 1
Настоящее имя: Андрей
Контактная информация:

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

Сообщение Rrickardos »

Это которая уже с зависимостью скорости от яркости будет? ЗдОрово! Ждем-с!
MAX3000
Опытный
Сообщения: 107
Зарегистрирован: 17 дек 2015, 11:12
Репутация: 18
Настоящее имя: MaX
Контактная информация:

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

Сообщение MAX3000 »

Формула:

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

S = Si + ((Si+1 - Si) / (Bi+1 - Bi)) * ( B - Bi)
Еще можно для каждого отдельного участка расчитать величину dS:
dSi = (Si+1 - Si) / (Bi+1 - Bi)
и если точка B лежит в диапазоне от Bi до Bi+1, то:
S = Si + (B - Bi) * dSi
15-1.jpg (1412 просмотров) <a class='original' href='./download/file.php?id=103343&mode=view' target=_blank>Загрузить оригинал (26.32 КБ)</a>
Последний раз редактировалось MAX3000 15 фев 2017, 15:06, всего редактировалось 1 раз.
Rrickardos
Новичок
Сообщения: 6
Зарегистрирован: 13 фев 2017, 22:52
Репутация: 1
Настоящее имя: Андрей
Контактная информация:

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

Сообщение Rrickardos »

MAX3000 писал(а):Формула:

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

S = Si + ((Si+1 - Si) / (Bi+1 - Bi)) * ( B - Bi)
Еще можно для каждого отдельного участка расчитать величину dS:
dSi = (Si+1 - Si) / (Bi+1 - Bi)
и если точка B лежит в диапазоне от Bi до Bi+1, то:
S = Si + (B - Bi) * dSi
15-1.jpg
Вроде как точно такая же формула... Нет? :thinking: :)
MAX3000
Опытный
Сообщения: 107
Зарегистрирован: 17 дек 2015, 11:12
Репутация: 18
Настоящее имя: MaX
Контактная информация:

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

Сообщение MAX3000 »

Rrickardos писал(а):
MAX3000 писал(а):Формула:

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

S = Si + ((Si+1 - Si) / (Bi+1 - Bi)) * ( B - Bi)
Еще можно для каждого отдельного участка расчитать величину dS:
dSi = (Si+1 - Si) / (Bi+1 - Bi)
и если точка B лежит в диапазоне от Bi до Bi+1, то:
S = Si + (B - Bi) * dSi
15-1.jpg
Вроде как точно такая же формула... Нет? :thinking: :)
Да такая же, просто добавил графики и немножко видоизменил формулы.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

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

Сообщение selenur »

Новая версия 43: https://github.com/selenur/ToolsGenGkod ... 43/v43.zip

Добавлена возможность манипуляции со значением F:
2017-02-15_183605.jpg (1386 просмотров) <a class='original' href='./download/file.php?id=103349&mode=view' target=_blank>Загрузить оригинал (58.08 КБ)</a>
Так-же добавил тестовый профайл: лазер Bright - F — копия.txt
Управление по F пока сырое, т.к. нужно выяснить что делать на светлых участках, станок должен развивать очень большую скорость, или нужно глушить лазер....
Мой сайт: 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 писал(а):Новая версия 43
selenur, протестил на квадрате 5х5, вот что получилось:
15-2.jpg (1377 просмотров) <a class='original' href='./download/file.php?id=103354&mode=view' target=_blank>Загрузить оригинал (52.11 КБ)</a>
Обратный ход формирует отлично, а на прямом ходе - нет последних пикселей.

Тестовая картинка 5х5px:
Test3-5x5-1.rar
(323 байт) 219 скачиваний
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

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

Сообщение selenur »

MAX3000 писал(а):
selenur писал(а):Новая версия 43
selenur, протестил на квадрате 5х5, вот что получилось:
15-2.jpg
Обратный ход формирует отлично, а на прямом ходе - нет последних пикселей.

Тестовая картинка 5х5px:
Test3-5x5-1.rar
ещё пока не сделал....
Мой сайт: 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 писал(а):Новая версия 43: https://github.com/selenur/ToolsGenGkod ... 43/v43.zip

Добавлена возможность манипуляции со значением F:
Вложение 2017-02-15_183605.jpg больше недоступно
Так-же добавил тестовый профайл: лазер Bright - F — копия.txt
Управление по F пока сырое, т.к. нужно выяснить что делать на светлых участках, станок должен развивать очень большую скорость, или нужно глушить лазер....
Можно и то и другое:
15-5.jpg (1371 просмотр) <a class='original' href='./download/file.php?id=103360&mode=view' target=_blank>Загрузить оригинал (58.31 КБ)</a>
15-3.jpg (1371 просмотр) <a class='original' href='./download/file.php?id=103362&mode=view' target=_blank>Загрузить оригинал (115.8 КБ)</a>
15-4.jpg (1371 просмотр) <a class='original' href='./download/file.php?id=103361&mode=view' target=_blank>Загрузить оригинал (147.53 КБ)</a>
В профиле вместо "S500" написал "S"[S] :)
Код правильный получился.
MAX3000
Опытный
Сообщения: 107
Зарегистрирован: 17 дек 2015, 11:12
Репутация: 18
Настоящее имя: MaX
Контактная информация:

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

Сообщение MAX3000 »

Или так - на нуле пусть летает:
15-9.jpg (1358 просмотров) <a class='original' href='./download/file.php?id=103375&mode=view' target=_blank>Загрузить оригинал (62.42 КБ)</a>
:good:
Последний раз редактировалось MAX3000 15 фев 2017, 19:13, всего редактировалось 1 раз.
Ответить

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