Как стать автором
Обновить

Пишем бесплатный Gerber-вьювер с открытым исходным кодом под Android с нуля

Время на прочтение6 мин
Количество просмотров7.4K
Всего голосов 42: ↑42 и ↓0+42
Комментарии14

Комментарии 14

НЛО прилетело и опубликовало эту надпись здесь
Одно из применений такого CNC
Лазерная установка для засветки фоторезиста от AlphaCrow
Программа на стороне ПК, уже сделанa в разных вариантах есть и с использованием C#, JavaScript браузерного исполнения, связь с контроллером установки через USB или Uart, но может быть и беспроводное решение. Для привязки к реперным точкам экспонируемой платы используется Веб камера или предустановленные штифты.

P.S. Лазерный меч в руках на аватарке автора проекта имеет ещё и дополнительный смысл контекста его трактования (кроме контекста использования лазера установки HLDI), а именно, что авторская программа для ПК сделана на Forth (Форт) — отсылка к ассоциации изображений мастера Йоды. ?

Я думал, что ваш Gerber хотя бы есть среди https://github.com/antlr/grammars-v4 и можно было бы не писать собственный парсер, а взять antlr4, но увы, он слишком редкий.

И, если, как вы говорите, разработчики САПР не выдерживают спецификацию, а ведь там есть даже PEG грамматика - https://www.ucamco.com/files/downloads/file_en/415/the-gerber-parsing-expression-grammar_en.ebnf?79d8bb116dd0168c5b920615a89297a7

Т.е. построить валидатор по ней - дело пары часов.

Спасибо за интерес к статье. С PEG дела не имел, спасибо за наводку, нужно будет разобраться :) Помимо проверки валидности файла я все же хотел дать шанс САПРам, чтобы можно было открывать их файлы (Mentor Graphics например), несмотря на несоблюдение стандарта.

Хотел попробовать, но не получилось:

  • На голом андроиде невозможно выбрать файл, он просто не видит гербер файлы видимо из-за их расширения. Проблема решилась установкой Total Commander. Видимо вам надо указать это.

  • Попытка открыть файл закончилась неудачей:

    "Can't process gerber!

    There is no valid G-code gerber command but 'G' was found"

  • Исключение в коде при запуске сторонней активити тоже надо обработать :)

Спасибо за фидбэк) Не совсем понял, почему андроид не видит, и чем помог тотал? У меня чистый андроид 11 на эмуляторе и miui на телефоне, проблем с видимостью файлов не было, главное не ставить фильтры типа Документы и т .д.

Почему конкретный гербер не открылся - интересно на него взглянуть конечно :)

Про исключение тоже не понял, можно уточнить?

openFileResult.launch может кинуть исключение

Делал так: в каталог Download закинул папку с гербер файлами. В отрывшемся диалоге открыл левую шторку, выбрал там Download, открыл каталог с герберами. Файлы не виделись. Возможно, перетыкав все кнопки и можно было их как-то увидеть, но сходу не получилось. Если поставить TC, то выбрав его как программу для открытия, файлы находятся без проблем.

если речь о файлах .gbr, то к расширению я не привязывался, т.к. часто герберы называют как попало :)
про исключение понял. сами в коде нашли или крашнулось?

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

В коде попробовал исправить параметры Intent чтобы можно было выбрать файл, не получилось. Ну и увидел, что у вызова нет обёртки.

альтиум вьювер не требует лицензии и позволяет открывать герберы.

когда я писал еще десктопное приложение (в самом начале статьи я писал об этом и о лицензии) нужен был скорее не вьювер, а автоматизированный конвертер в картинки (который обрезает их сразу по контуру + оставляет отступ, дает файлам названия сам). так то и в mentor graphics была возможность смотреть герберы, но она была сильно всратая и без нормального экспорта. а приложение под андроид - это уже другое :)

з.ы. компания, которая спецификацию гербер разрабатывает, тоже запилила свой онлайн вьювер средней всратости у себя на сайте)

Есть же прекрасный бесплатный 3d гербер вьювер.

Как-то странно он показывает:

Здесь слои меди и трафарета, трафарет по факту не отображается. Заливка полигонов тоже не видна, и апертуры зачем-то размытые. Хотелось бы видеть плату вот так:

В том виде, как сейчас - лично я использовать не могу. Зазоры трафарета от апертур не видны, заливка не видна, изображение не имеет фотографический вид. Порадовало, что вы подсвечиваете узлы - этого мне не хватает во вьюверах и самой САПР. И хотелось бы, чтобы программа могла открывать зип-архив с файлами, как это сделано, например, у Резонита.

с апертурами очень прикольно у вас получилось, если не возражаете, приду за гербером :), а заливка отображается же. просто изображение полупрозрачное, и "узлы" видны по этой же причине. нужно будет добавить настройку прозрачности, чтобы можно было ее настроить/отключить.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории