Форум РадиоКот https://radiokot.ru/forum/ |
|
Простая утилита Excellon To G-Code https://radiokot.ru/forum/viewtopic.php?f=8&t=196733 |
Страница 1 из 1 |
Автор: | Ljubitel [ Вс фев 09, 2025 23:32:23 ] |
Заголовок сообщения: | Простая утилита Excellon To G-Code |
Всем привет. Платы делаю очень не часто. Штук 5-10 в год. Развожу в Altium. Изготавливаю методом фоторезиста. Засвечиваю на HLDI. Сверлю на ЧПУ. Металлизацию делаю серебряной краской + гальваника. С герберами, которые выдает Altium вопросов нет. HLDI Host их принимает напрямую. А вот со сверловкой - надо перевести Excellon от Altium в понятный формат для ЧПУ станка. Из найденного в сети более менее приглянулась GGEasy. Но тоже не без недостатков. Сперва надо сделать базу инструментов. Оптимизация пути инструмента так и не понял есть в ней или нет. И самое главное - не может создать единый файл для всех инструментов. Т.е. в моём случае это выглядит так: Загрузил первый файл, поставил первое сверло, просверлил. Загрузил следующий... и т.д. Собственно плюнул и написал себе небольшую программу, которая берёт Excellon и переводит его в G-Code для моего станка. Оптимизирует расположение инструментов от наименьшего диаметра к наибольшему. Мне это удобно. Начинаю с самого тонкого сверла (реперы для HLDI) и по порядку в сторону увеличения. Также оптимизирует пути движения инструментов (алгоритм "ближайшего соседа"). Ну и собственно позволяет создать единый файл на всю сверловку. После каждого цикла сверления (одним диаметром) возвращает шпиндель на "парковку" - точка (0;0) и заданную высоту, где останавливает выполнение сверловки для смены инструмента. Меняю сверло, нажимаю "ввод" и станок продолжает сверлить. Если надо, может создать и отдельные файлы для каждого инструмента (создает G-Code только для тех отверстий, для которых включено отображение). Ну и бонусом - визуально посмотреть карту сверловки, пути. Может пригодится кому, а то вдруг кто также "мучается" как я ![]() https://github.com/PavelSirotkin/ExcellonToG-Code ![]() |
Автор: | nonpar [ Ср мар 12, 2025 07:33:11 ] |
Заголовок сообщения: | Re: Простая утилита Excellon To G-Code |
Добрый день. Я пошел по другому пути - сделал прошивку для CNC, которая напрямую принимает .drl файлы (контроллер на STM32, платка BluePill). Тоже пришлось решать задачу максимально удобного управления параметрами сверления. Интересно будет сравнить подходы. Можно у вас попросить пример DRL-файла, сделанный Altium, желательно, посложнее? Я тестил на KiCad и SprintLayout. |
Автор: | Ljubitel [ Ср мар 12, 2025 17:34:57 ] | ||
Заголовок сообщения: | Re: Простая утилита Excellon To G-Code | ||
Можно у вас попросить пример DRL-файла, сделанный Altium, желательно, посложнее? Это чтобы дырок побольше ? Приложил. ![]() Если ваш софт нормально работает с файлами от Sprint Layout, то считайте, что всё у Вас нормально. Я, когда писал, думал что есть какие то общие соглашения. Altium работает в положительном квадранте и все координаты инструментов положительные. Уже всё написал. Всё прекрасно. И решил проверить на файлах от Sprint. Каково ж моё удивление было, что точку (0;0) пользователи Sprint ставят "от балды". Пришлось всю логику перелопатить, чтобы программа могла работать с отрицательными координатами. Мой станок управляется LPT портом компьютера программой TurboCNC под DOS. Ему нужны только G-code. Меня всё устраивает. Я ещё под DOS написал программку для финишной обрезки платы по контуру. Смысл в том, что не надо ничего выравнивать. Просто крепишь заготовку к столу как придётся. Затем в левый нижний угол фрезу ставишь - это (0;0). Ставишь в правый - запоминаешь эту координату. В программе вводишь запомненную координату и ширину платы. Она сама строит прямоугольник расположенный по этому вектору и выдаёт G-code для обрезки.
|
Автор: | nonpar [ Ср мар 12, 2025 20:00:00 ] |
Заголовок сообщения: | Re: Простая утилита Excellon To G-Code |
Если ваш софт нормально работает с файлами от Sprint Layout, то считайте, что всё у Вас нормально. Большое спасибо за файл. Нашел в нём минимум два отличия от вариантов, что встречались мне прежде: -в заголовочной таблице инструментов, помимо диаметра сверла, присутствуют другие параметры с нулевыми значениями; -в случае неизменности одной из координат X или Y, её значение опускается. И вот на втором моменте мой парсинг на тесте в боевых условиях словил глюк. Хотя такой вариант задания координат у меня реализован, и я тестил предварительно парсинг на PC-эмуляции) |
Автор: | Ljubitel [ Ср мар 12, 2025 20:19:26 ] |
Заголовок сообщения: | Re: Простая утилита Excellon To G-Code |
-в случае повторения значения одной из координат X или Y, её значение опускается. И вот на втором моменте мой парсинг на тесте в боевых условиях словил глюк. Хотя такой вариант задания координат у меня реализован, и я тестил предварительно парсинг на PC-эмуляции) Так это вроде ж стандарт для Excellon. Так же как и отсутствие десятичной точки. Его давно разрабатывали. Так для экономии места на внешнем носителе и ввели эти вещи. Типа зачем писать десятичные точки? 1000 координат - это 1000 точек. Лишние 1000 байт. Тоже самое и с повторяющейся координатой - если одна из координат не меняется, то пишем только одну, ту что изменилась. |
Автор: | nonpar [ Пт мар 14, 2025 07:30:46 ] |
Заголовок сообщения: | Re: Простая утилита Excellon To G-Code |
А вы не будете возражать, если я переделаю вашу программу, чтобы она могла сохранять оптимизированный drl-код? |
Автор: | Ljubitel [ Пт мар 14, 2025 12:16:05 ] |
Заголовок сообщения: | Re: Простая утилита Excellon To G-Code |
А вы не будете возражать, если я переделаю вашу программу, чтобы она могла сохранять оптимизированный drl-код? Конечно не буду. Исходники для того и выкладываются, чтобы люди ими пользовались. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |