Здравствуйте, уважаемые жители Хабро.
Сегодня я хочу поделиться небольшой работой, предназначенной для конвертации карт бурения PCAD в G-код. Гибкий, простой и с открытым исходным кодом.
Правда, извините, извините, на Qt. Писать на нем, конечно, приятно, но деплоить и собирать чужие коды.
Первая часть.
Механика.
Некоторое время назад я отложил проект головы от Prius, и вот почему: Пока я ждал микросхемы, пока экспериментировал со схемами, я четко понял, что хочу делать печатные платы дома.
Да-да, у меня есть опыт работы с технологией лазерной глажки и даже росписи лаком, но хотелось чего-то настоящего.
Было решено использовать пленочный фоторезист и УФ-лампу для ногтей.
Естественно, возникла проблема со сверлением и металлизацией отверстий.
И получается, что отверстия нужно металлизировать до того, как дорожки будут вытравлены на плате.
В противном случае подача тока в каждое отверстие – это целая история.
Получается, что ручное сверление уже не нужно, потому что.
Ориентироваться просто не на что (не будем предлагать бумагу с картами отверстий).
Было решено приделать к имеющемуся 3D-принтеру шпиндель вместо головки Direct и жить так.
И вот решения, которыми я хотел бы поделиться сегодня.
Сменная головка для RepRap
Чтобы принтер можно было легко превратить в дрель и наоборот, было решено сделать головку съемной.Ползунок, прикрученный к ремням, отдельный, все остальное съемное.
Учитывая, что это не бог знает как сложно, выкладывать это в отдельную статью нет смысла.
Здесь только фото и ссылки STL-модели , если кто хочет точно такой же.
В архиве также присутствуют исходники SLDPRT, если вам нужно что-то подправить.
Скачивается медленно - спасибо ADSL от Белтелекома, но должно оставаться там долго.
Результат оказался таким:
Головка-шпиндель
Здесь все просто — после долгих попыток создать свой шпиндель я решил купить его на AliExpress и просто повесить на кронштейн.Фото нет, все еще в процессе.
Генератор G-кода
И вот здесь начинается веселье.С присущим мне глобализмом я пробежался по доступным решениям и понял, что каждое из них способно не только создать кучу проблем при развертывании технологий у себя, но и доставлять их регулярно и методично, вплоть до выхода на пенсию.
Что тебе не понравилось? Негибкость.
Все они большего размера для машин, с предопределенными характеристиками шаблонов и т.п.
Да это не сложно.
Но мне очень не хотелось однажды столкнуться с ситуацией, когда мне нужно будет немного модифицировать алгоритм и я не смогу это сделать.
Например, я никогда не видел инструмента, который мог бы вращать отверстия вокруг оси.
Но после металлизации доску нельзя укладывать 1:1. Но это мысли на будущее.
Мне это пока не нужно.
Но это уже возможно.
В общем, хотелось чего-то простого, легкого, гибкого и.
работоспособного.
Я решила побрызгать сама.
В качестве основы использовались библиотеки Qt 5.11. Приложение написано в консольном стиле.
Архитектура приложения выполнена в стиле Linux. Входными данными для приложения является файл DRL, взятый из PCAD при создании комплекта Geber. (Возможно, вам придется доработать парсер, если вы хотите скормить ему что-нибудь из AltiumDesigner. Но лично я для себя решил от греха подальше снести этого монстра Altium. Почему теперь он появляется в кошмарах, и не дает мне забыть своего имя).
Параметр представляет собой XML-файл.
Вторая половина статьи будет посвящена описанию формата этого файла.
Этот файл по сути определяет механизм генерации G-кода (или, по сути, любого текстового файла) для передачи его (G-кода) на 3D-принтер.
Как работает приложение
- Формат ДХО (M48 или Экселлон ).
В результате получаются инструменты, содержащие список отверстий, просверленных этими инструментами.
- С данными, полученными на шаге 1, идем в XML, ищем там узел скрипта и просто выполняем все, что там написано.
Есть пять операторов, но больше нам не нужно.
- Во время выполнения шага 2 возникли инструкции печати.
Результат выводится в выходной поток.
Часть вторая.
Формат XML-файла Чтобы сделать программу максимально гибкой, была использована библиотека ScriptEngine. Я был немного ошеломлен тем, что теперь реально можно сделать с конфигурацией.
Основной постулат таков: есть много вычисляемых параметров, работа с которыми максимально прозрачна: текст передается модулю ScriptEngine, а результат используется.
Такая же ситуация возникает, если в шаблоне G-Code встречается комбинация ${бла-бла-бла}.
В этом случае в расчет будет передано все, что находится внутри фигурных скобок, а результатом будет заменен весь шаблон.
Исходные коды Гит Пример файла для моего принтера
Теги: #3D принтеры #Периферия #3d принтер #печатные платы #конвертация<xml>
-
Проблемы В Сетях. Странное Падение
19 Oct, 24 -
20 Сентября, Москва – Встреча Аналитиков
19 Oct, 24 -
«Обертка» Важнее Содержания
19 Oct, 24 -
Идеальные Панорамы: Редактор Изображений 2.0
19 Oct, 24 -
Какую Платформу Использует Ваш Смартфон?
19 Oct, 24