[VULTURED] Пишем программки на Си для играния с форматом Гербер и т.д.
Moderator: Shaos
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
[VULTURED] Пишем программки на Си для играния с форматом Гербер и т.д.
Вчера вечером начал писать простую программку, которая бы конвертировала герберы в картинку платы с двух сторон с правдоподобной раскраской (чтобы автоматом выдавала вот такое), ну и заодно показывала что она делает в окне. Для графики взял свою либу unigraf (написана мной в 2002, может работать поверх DOS, SVGALib или SDL, используется в моих эмуляторах спринтера и ориона) - заодно исправил там одну багу из-за которого пикселы в нижней части экрана размазывались по вертикали. Пока успехи на лицо - рисует почти правильно, осталось поддержать формат дырок (формат Excellon несколько отличается от формата Gerber) ну и непосредственно сохранение гифов закодить (или заюзать PNG?) - пока предполагается разрешение по умолчанию 1000 точек на дюйм.
P.S. С мая 2019 оно живёт на гитлабе вот в этом каталоге: https://gitlab.com/nedopc/sdk/tree/master/vultured (т.е. оно как бы часть nedoPC SDK теперь)
P.S. С мая 2019 оно живёт на гитлабе вот в этом каталоге: https://gitlab.com/nedopc/sdk/tree/master/vultured (т.е. оно как бы часть nedoPC SDK теперь)
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Недопрограммка для просмотра герберов и конвертации их в
Второй вечер работы над программой - герберы 100% рисует правильно (включая Excellon), причём C/C++ программка получилась всего 440 строк (скомпилированный бинарник в линухе весит 19К). Следует отметить, что я программку писал чисто наугад - глядя в текст герберов и предполагая как же оно должно на самом деле работать. Теперь осталось самое важное:Shaos wrote:Пока успехи на лицо - рисует почти правильно, осталось поддержать формат дырок (формат Excellon несколько отличается от формата Gerber)
P.S. Интересно смотреть как оно прорисовывает - сделаю ка я видео этого процессаShaos wrote:ну и непосредственно сохранение гифов закодить (или заюзать PNG?) - пока предполагается разрешение по умолчанию 1000 точек на дюйм.

Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Залил исходник на Sourceforge (пока без генерации гифов), а с мая 2019 оно живёт гитлабе: https://gitlab.com/nedopc/sdk/blob/master/vultured/grb2gif.cpp
P.S. Более 100 строк в этой программе занимает функция lineto для рисования линий, позаимствованная мной из моей же программы на RW1 (aka ROBBY)
P.S. Более 100 строк в этой программе занимает функция lineto для рисования линий, позаимствованная мной из моей же программы на RW1 (aka ROBBY)
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Выложил сборку просмотрщика под ДОС вместе с герберами двух nedoPC-16 плат на поглядеть (тут для скорости точность ухудшена в 5 раз):
http://nedopc.org/nedopc/files/GRB4DOS.ZIP (169K)
P.S. Самые последние исходники всегда можно посмотреть тут: https://gitlab.com/nedopc/sdk/tree/master/vultured (перенесено в мае 2019)
http://nedopc.org/nedopc/files/GRB4DOS.ZIP (169K)
P.S. Самые последние исходники всегда можно посмотреть тут: https://gitlab.com/nedopc/sdk/tree/master/vultured (перенесено в мае 2019)
Last edited by Shaos on 21 Mar 2010 09:32, edited 1 time in total.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Недопрограммка для просмотра герберов и конвертации их в
Сделал сохранение в GIF (через libgif), но прозрачность дырок никак не могу включить...Shaos wrote:Теперь осталось самое важное:
Shaos wrote:ну и непосредственно сохранение гифов закодить (или заюзать PNG?) - пока предполагается разрешение по умолчанию 1000 точек на дюйм.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Недопрограммка для просмотра герберов и конвертации их в
Сегодня поправил ещё одну неувязочку в поддержке формата, а также добавил поддержку 4-слойных печатных плат - теперь все мои герберы отображаются нормально! Выше обновил досовскую сборкуShaos wrote:Сделал сохранение в GIF (через libgif), но прозрачность дырок никак не могу включить...Shaos wrote:Теперь осталось самое важное:
Shaos wrote:ну и непосредственно сохранение гифов закодить (или заюзать PNG?) - пока предполагается разрешение по умолчанию 1000 точек на дюйм.
Вот примеры сгенерённых файлов (1000 точек на дюйм):
http://nedopc.org/nedopc/16/nedo16v1-top.gif
http://nedopc.org/nedopc/16/nedo16v1-bot.gif
http://nedopc.org/nedopc/16/nedo16v1t-top.gif
http://nedopc.org/nedopc/16/nedo16v1t-bot.gif
http://nedopc.org/nedopc/17/nedo17v1-top.gif
http://nedopc.org/nedopc/17/nedo17v1-bot.gif
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Ещё одно known issue - вместо восьмиугольных контактных площадок моя программа рисует круглыеShaos wrote:Когда сконвертил все свои платы из игла обратил внимание, что на получившихся GIF-ах у SMD компонентов контактные площадки выглядят чуть больше чем надо (а у QFP вообще слипаются) - что там я не до конца расковырял...
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Недопрограммка для просмотра герберов и конвертации их в
А вот и видеоShaos wrote:P.S. Интересно смотреть как оно прорисовывает - сделаю ка я видео этого процесса

В реальности оно работает быстрее - это я ради видео нагенерил более 4000 кадров, чтобы растянуть процесс на две с половиной минуты...
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
На днях написал размножитель герберов https://gitlab.com/nedopc/sdk/blob/master/vultured/grb_mul.c (перенёс на гитлаб в мае 2019)
Пример использования: grb_mul filename NX NY при этом программа принимая на вход набор гербер-файлов
filename.ovl - board dimension (Gerber)
filename.top or filename.L1 - top layer (Gerber)
filename.L2 (optional) - middle upper layer (Gerber)
filename.L3 (optional) - middle lower layer (Gerber)
filename.bot or filename.L4 - bottom layer (Gerber)
filename.smt - top solder mask (Gerber)
filename.smb - bottom solder mask (Gerber)
filename.slk - top silckscreen (Gerber)
filename.drd - drills (Excellon)
создаёт из них другой набор с размноженной копией оригинала NX x NY и суффиксом _NXxNY
Например если NX=1 и NY=3, то в результате получится 3 копии 1х3 и у всех файлов будет суффикс _1x3 (типа filename_1x3.top и т.д.)
Примеры в картинках:


Пример использования: grb_mul filename NX NY при этом программа принимая на вход набор гербер-файлов
filename.ovl - board dimension (Gerber)
filename.top or filename.L1 - top layer (Gerber)
filename.L2 (optional) - middle upper layer (Gerber)
filename.L3 (optional) - middle lower layer (Gerber)
filename.bot or filename.L4 - bottom layer (Gerber)
filename.smt - top solder mask (Gerber)
filename.smb - bottom solder mask (Gerber)
filename.slk - top silckscreen (Gerber)
filename.drd - drills (Excellon)
создаёт из них другой набор с размноженной копией оригинала NX x NY и суффиксом _NXxNY
Например если NX=1 и NY=3, то в результате получится 3 копии 1х3 и у всех файлов будет суффикс _1x3 (типа filename_1x3.top и т.д.)
Примеры в картинках:


Last edited by Shaos on 24 Aug 2010 18:05, edited 4 times in total.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
-
- Devil
- Posts: 909
- Joined: 06 Oct 2006 03:17
- Location: г.Лянтор,Сургутского р-на,ХМАО
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Сырцы открыты - по идее должны собираться вездеfifan wrote:С форматом Gerber- файлов я сталкнулся не давно, когда перешёл с PCAD2006 SP2 на Altium Designer. Этот формат чаще стали просить производители печатных плат. Вопрос к Shaosу: а нет ли утилиты под Windows данной конвертилки?

Одна проблема - стабильно работает только с герберами, сгенерёнными в Eagle
Если очень нужно - могу заточить под Альтиум, но нужны примеры
Я тут за главного - если что шлите мыло на me собака shaos точка net