Gerbv баг при загрузке файла сверловки

Для просмотра Gerber файлов перед заказом печатных плат я пользовался бесплатной программой ViewMate доступной на сайте разработчика http://www.pentalogix.com/

ViewMate работает отлично, но доступен он только под Windows. Под Linux я воспользовался программой Gerbv, сайт разработчика http://gerbv.geda-project.org/

При первой же загрузке Gerber файлов сформированных программой PADS Mentor Graphics выяснилось что файл сверловки загружается неверно, хотя никаких ошибок не выводится. Сами файлы так же без проблем использовались при заказе плат и правильно отображаются программой ViewMate. Значит проблема в программе Gerbv. Внешне это выглядит так:

Часть отверстий отображается неверно, а именно, находятся ниже и левее печатной платы и сконцентрированы в окрестности начала координат, видимо числовые значения координат из файла сверловки считываются неверно, величины значительно меньше необходимых (видимо в 10, 100, 1000 раз, что приближает точки к началу координат как по оси «X», так и по оси «Y»). Я просмотрел исходный текстовый файл сверловки и заметил, что большинство координат сверления указано 6-значными цифрами (видимо те точки, которые отображаются верно), а часть содержат меньше значащих цифр и незначащие нули отсутствуют (видимо эти значения читаются не верно). При помощи текстового редактора я вписал недостающие нули справа от координат записанных короче 6 цифр и снова загрузил файл сверловки в Gerbv — все отверстия стали на свои места, идея оказалась верной. Результат сравнения исходного и полученного файла сверловки программой Meld, а так же его отображение в Gerbv представлено ниже:

Теперь проблема была обнаружена и оставалась задача ее устранить. Возможно со временем проблема будет устранена разработчиками программы Gerbv, но мне нужно было решать задачу «здесь и сейчас». Наиболее простым вариантом оказалось написать программу преобразования файлов простым дописыванием недостающих нулей. Такую программку написал на Python https://www.python.org/

Программа не претендует на идеальность и работает так: исходный файл открывается для чтения и новый для записи. Файлы открываются как текст. В каждой строке проверяется первый символ, если этот символ не «X» то строка просто копируется, если же первый символ «X» то предполагается что это координата сверления и анализируется на длину — должно быть 14 символов (Символы «X» + 6 знаков + «Y» + 6 знаков). Если в строке 14 символов то строка копируется как есть, а если оказывается короче, то передается в подпрограмму в которой дописываются недостающие нули. После обработки всех строк оба файла закрываются. Имена исходного и выходного файлов указываются в командной строке.

Файл программы можно скачать тут:

Файл программы:

Тестовый файл сверловки:

для запуска программы можно использовать терминал:

$ python3 PadcToGerbvDrlCnv_V20200228.py 11_Drill.drl 11_Drill2.drl

После выполнения программы получается текстовый файл с (EOF) в формате Linux (\n) при любых форматах (EOF) исходного файла: Windows (\r\n), Linux (\n), Mac (\r).

Все замечания и предложения по коду программы принимаются к обсуждению в комментариях.

Запись опубликована в рубрике Gerber, Gerbv, Linux. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *