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

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

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Сообщение selenur »

MAX3000 писал(а):selenur, огромная просьба - сделай полутона, чтобы можно было приступить к тестированию, а затем за .dxf возьмешься. Скорее всего будет достаточно даже какого-то одного формата, например .bmp (или .jpg, или .png - какой проще реализуется) - Photoshop у всех есть, а у кого нет - поставят.
Я уже блоки данных линии, круги сделал, осталось дуги, и большая часть dxf файлов на которых я тестировал будут нормально открываться :-)
На странице где выбирается рисунок, происходит преобразование разноформатных изображений, в изображение одного формата, которое и передается дальше. как-то bmp файлы попадались, с там форматом который не реализован, но пока не могу их найти, что-бы разобраться с косяком.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Сообщение selenur »

Master2608 писал(а):
selenur писал(а):
Master2608 писал(а):нужно чертеж нарисовать карандашом вместо шпинделя :). Походу программа для фрезера нужна.
Нет разницы, для лазера или фрезера, получаемые контуры, в любом случае будут такими.
Файл содержит различные блоки данных, это линии, поли-линии, дуги, окружности, текст, как доберусь до парсинга текстовых блоков, надо будет посмотреть можно ли повлиять на размер текста.
Фрезеру нужна ось Z, а лазеру нет, для карандаша тоже нужна Z, (поднять-опустить).
В постах выше я писал, что данные из которых формируется G-код, состоят из наборов отрезков, и набора точек в каждом из отрезков.
На 10-й странице перед формированием G-кода выбирается профиль, в котором содержится информация, что нужно сделать до начала отрезка, и после.
Для фрезера, гравера и карандаша, там выполняются команды поднятия опускания по оси Z, для лазера m3 m5.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
Rom327
Почётный участник
Почётный участник
Сообщения: 2989
Зарегистрирован: 03 апр 2015, 13:23
Репутация: 437
Настоящее имя: Роман
Откуда: Подольск
Контактная информация:

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Сообщение Rom327 »

selenur писал(а): Тут такой вопрос возник, сейчас пока только объекты с типом линия отображаются (дуги пока ещё не сделал), получается имеем контуры, но фрезой ведь нужно проходить не по этим контурам, а по внешней или внутренней стороне, так? в зависимости от толщины фрезы?
Все правильно! И это должно указываться в профиле. Для начала надо сделать для лазера: там все просто следовать по линии. Попробовать, доработать...
Что касается фрезерования, то тут 2 обязательных параметра: диаметр фрезы и сторона от линии, где происходит обработка... Ну еще можно направление добавить... Если с первым все понятно: забил диаметр фрезы в профиль и все, то со стороной сложнее. Если один контур, тут все ясно и можно сторону определить. А если контуров несколько, то придется выбирать каждый и для каждого указывать сторону. Так сделано в SheetCam-e.
selenur! Прими файлик, может пригодится...
Тест.DXF
(43.96 КБ) 972 скачивания
Это сугубо мое мнение, могу и ошибаться...
https://vk.com/rom327
GRBL настройки: http://blogandbux.blogspot.com/2018/07/ ... revod.html
G коды: http://3d-stanki.ru/spravochnik/program ... stankov-2/
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Сообщение selenur »

Rom327 писал(а):
selenur писал(а): Тут такой вопрос возник, сейчас пока только объекты с типом линия отображаются (дуги пока ещё не сделал), получается имеем контуры, но фрезой ведь нужно проходить не по этим контурам, а по внешней или внутренней стороне, так? в зависимости от толщины фрезы?
Все правильно! И это должно указываться в профиле. Для начала надо сделать для лазера: там все просто следовать по линии. Попробовать, доработать...
Что касается фрезерования, то тут 2 обязательных параметра: диаметр фрезы и сторона от линии, где происходит обработка... Ну еще можно направление добавить... Если с первым все понятно: забил диаметр фрезы в профиль и все, то со стороной сложнее. Если один контур, тут все ясно и можно сторону определить. А если контуров несколько, то придется выбирать каждый и для каждого указывать сторону. Так сделано в SheetCam-e.
selenur! Прими файлик, может пригодится...
Тест.DXF
Вот тут: Re: Программа генерации G-кода, из текста, рисунка, PLT файл #37 я показывал одну из страниц (после недавней переделки внутренностей программы пока не заполняется). Буду использовать эту страницу, где можно будет задать для каждого замкнутого отрезка, отступ, и направление движения.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Сообщение selenur »

MAX3000 писал(а):selenur, огромная просьба - сделай полутона, чтобы можно было приступить к тестированию, а затем за .dxf возьмешься.
С полутонами не всё так просто, и по быстрому мне такое не сделать, я обычно ставлю себе задачу которую нужно реализовать в коде, после этого на протяжении некоторого количества дней хожу продумываю реализацию, и когда в голове складывается логика сажусь и пишу код, таким образом, время потраченное на эту программу в плане написания кода исчисляется одной сотней часов, а вот обдумывание даже не знаю.....
Плюс вот из-за этого:
2016-12-04_233029.jpg (2315 просмотров) <a class='original' href='./download/file.php?id=96730&mode=view' target=_blank>Загрузить оригинал (850.39 КБ)</a>
Я даже попытавшись переключиться на другую задачу, буду думать только как доделать эту....
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Сообщение selenur »

Rom327 писал(а):
selenur писал(а): Тут такой вопрос возник, сейчас пока только объекты с типом линия отображаются (дуги пока ещё не сделал), получается имеем контуры, но фрезой ведь нужно проходить не по этим контурам, а по внешней или внутренней стороне, так? в зависимости от толщины фрезы?
Все правильно! И это должно указываться в профиле. Для начала надо сделать для лазера: там все просто следовать по линии. Попробовать, доработать...
Что касается фрезерования, то тут 2 обязательных параметра: диаметр фрезы и сторона от линии, где происходит обработка... Ну еще можно направление добавить... Если с первым все понятно: забил диаметр фрезы в профиль и все, то со стороной сложнее. Если один контур, тут все ясно и можно сторону определить. А если контуров несколько, то придется выбирать каждый и для каждого указывать сторону. Так сделано в SheetCam-e.
selenur! Прими файлик, может пригодится...
Вложение Тест.DXF больше недоступно
Почти загружается ;-)
2016-12-05_000539.jpg (2304 просмотра) <a class='original' href='./download/file.php?id=96734&mode=view' target=_blank>Загрузить оригинал (454.97 КБ)</a>
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
Rom327
Почётный участник
Почётный участник
Сообщения: 2989
Зарегистрирован: 03 апр 2015, 13:23
Репутация: 437
Настоящее имя: Роман
Откуда: Подольск
Контактная информация:

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Сообщение Rom327 »

selenur писал(а): Почти загружается ;-)
Здорово!
Сразу вопрос: шестиугольник нарисован 6-ю отрезками или кучей отрезков?
Это сугубо мое мнение, могу и ошибаться...
https://vk.com/rom327
GRBL настройки: http://blogandbux.blogspot.com/2018/07/ ... revod.html
G коды: http://3d-stanki.ru/spravochnik/program ... stankov-2/
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Сообщение selenur »

Rom327 писал(а):
selenur писал(а): Почти загружается ;-)
Здорово!
Сразу вопрос: шестиугольник нарисован 6-ю отрезками или кучей отрезков?
В DXF файле это набор из 6-ти отдельных отрезков, которые потом при нажатии кнопки, можно будет объединить в один отрезок.
Вложения
2016-12-05_101438.jpg (2286 просмотров) <a class='original' href='./download/file.php?id=96758&mode=view' target=_blank>Загрузить оригинал (197.9 КБ)</a>
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
Rom327
Почётный участник
Почётный участник
Сообщения: 2989
Зарегистрирован: 03 апр 2015, 13:23
Репутация: 437
Настоящее имя: Роман
Откуда: Подольск
Контактная информация:

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Сообщение Rom327 »

selenur писал(а): В DXF файле это набор из 6-ти отдельных отрезков
Вот это здорово! Скорость будет ого-го!
selenur писал(а):...которые потом при нажатии кнопки, можно будет объединить в один отрезок.
Не совсем ясно как? Если бы отрезки лежали на одной прямой, тогда их можно объединить в один отрезок... :D Наверное ты хотел сказать, что их можно объединить по одинаковым координатам?
Это сугубо мое мнение, могу и ошибаться...
https://vk.com/rom327
GRBL настройки: http://blogandbux.blogspot.com/2018/07/ ... revod.html
G коды: http://3d-stanki.ru/spravochnik/program ... stankov-2/
MAX3000
Опытный
Сообщения: 107
Зарегистрирован: 17 дек 2015, 11:12
Репутация: 18
Настоящее имя: MaX
Контактная информация:

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Сообщение MAX3000 »

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

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Сообщение selenur »

Rom327 писал(а):
selenur писал(а): В DXF файле это набор из 6-ти отдельных отрезков
Вот это здорово! Скорость будет ого-го!
selenur писал(а):...которые потом при нажатии кнопки, можно будет объединить в один отрезок.
Не совсем ясно как? Если бы отрезки лежали на одной прямой, тогда их можно объединить в один отрезок... :D Наверное ты хотел сказать, что их можно объединить по одинаковым координатам?
У 6 отрезков есть 6 общих точек, в связи с чем их объединить не проблема.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Сообщение selenur »

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

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Сообщение MAX3000 »

selenur писал(а):То что описано в примере у меня тоже поддерживается. :-)
Это хорошо - значит львиная доля уже сделана :D
Аватара пользователя
Rom327
Почётный участник
Почётный участник
Сообщения: 2989
Зарегистрирован: 03 апр 2015, 13:23
Репутация: 437
Настоящее имя: Роман
Откуда: Подольск
Контактная информация:

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Сообщение Rom327 »

selenur писал(а): У 6 отрезков есть 6 общих точек, в связи с чем их объединить не проблема.
Объединить то не проблема, но не
selenur писал(а):в один отрезок
Отрезок это часть прямой, ограниченная двумя точками... https://ru.wikipedia.org/wiki/Отрезок :thinking:
Это сугубо мое мнение, могу и ошибаться...
https://vk.com/rom327
GRBL настройки: http://blogandbux.blogspot.com/2018/07/ ... revod.html
G коды: http://3d-stanki.ru/spravochnik/program ... stankov-2/
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Программа генерации G-кода, из текста, рисунка, PLT файл

Сообщение selenur »

Rom327 писал(а):
selenur писал(а): У 6 отрезков есть 6 общих точек, в связи с чем их объединить не проблема.
Объединить то не проблема, но не
selenur писал(а):в один отрезок
Отрезок это часть прямой, ограниченная двумя точками... https://ru.wikipedia.org/wiki/Отрезок :thinking:
Неправильно выразился.... :-)
В одну ломанную линию.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

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

Сообщение selenur »

Выложил 24-ю версию, с поддержкой DXF, есть конечно ещё типы данных, которые не обрабатываю это: DXFPointEntity, DXFSolid, DXFInsert, возможно у вас найдутся файлы содержащие и другие типы данных :-)

В данную программу я планировал добавлять поддержку формата, Gerber, но случайно обнаружил что программа в которой выполняю разработку радио-устройств "DIPTRACE", умеет формировать DXF файлы с учетом размера гравера, и прочего....
При экспорте там есть поле обводка:
2016-12-07_011255.jpg (2192 просмотра) <a class='original' href='./download/file.php?id=96931&mode=view' target=_blank>Загрузить оригинал (225.93 КБ)</a>
И в результате получаем:
2016-12-07_011409.jpg (2192 просмотра) <a class='original' href='./download/file.php?id=96932&mode=view' target=_blank>Загрузить оригинал (566.29 КБ)</a>
И результат в программе для GRBL контроллера:
2016-12-07_011942.jpg (2192 просмотра) <a class='original' href='./download/file.php?id=96933&mode=view' target=_blank>Загрузить оригинал (415.22 КБ)</a>
А так-же для одного будущего проекта, засветки дорожек на фоторезисте лазером, получается получать необходимую информацию (пока это просто отрезки, не доделано ещё):
2016-12-07_011616.jpg (2192 просмотра) <a class='original' href='./download/file.php?id=96934&mode=view' target=_blank>Загрузить оригинал (329.23 КБ)</a>
Новый релиз в первом посте.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
xvovanx
Мастер
Сообщения: 3772
Зарегистрирован: 25 фев 2016, 12:27
Репутация: 920
Настоящее имя: Владимир
Откуда: Latvia
Контактная информация:

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

Сообщение xvovanx »

selenur писал(а):Выложил 24-ю версию..

Новый релиз в первом посте.
Так и не нашел, того чего хотел найти :yawn:
http://www.cnc-club.ru/forum/viewtopic. ... 20#p317592
Сижу пилю 20 версию... :problem:
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

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

Сообщение selenur »

xvovanx писал(а):
selenur писал(а):Выложил 24-ю версию..

Новый релиз в первом посте.
Так и не нашел, того чего хотел найти :yawn:
http://www.cnc-club.ru/forum/viewtopic. ... 20#p317592
Сижу пилю 20 версию... :problem:
Скоро сделаю :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
Predator
Мастер
Сообщения: 9583
Зарегистрирован: 18 июл 2013, 18:26
Репутация: 2531
Контактная информация:

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

Сообщение Predator »

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

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

Сообщение selenur »

Predator писал(а):selenur, Когда уже, на github будешь выкладывать, а не в топик? :)
Пока не разобрался как выложить, т.к. у меня используется в проекте, ещё несколько отдельных проектов (dxf, поддержка множества языков), которые расположены совсем в других каталогах, т.к. эти доп. проекты так-же используются ещё в других проектах.
В связи с чем сгруппировать в одну папку не могу, а если выложу только проект данной программы, то он в принципе не соберется.
А т.к. в день позаниматься данной тематикой у меня доступен всего 1 час перед сном, просто не хватает времени разобраться как сделать :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Ответить

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