nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 23 Sep 2019 04:58



Reply to topic  [ 27 posts ]  Go to page 1, 2  Next
Пишем программки на Си для играния с форматом Гербер... 
Author Message
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17995
Location: Colorado
Reply with quote
Вчера вечером начал писать простую программку, которая бы конвертировала герберы в картинку платы с двух сторон с правдоподобной раскраской (чтобы автоматом выдавала вот такое), ну и заодно показывала что она делает в окне. Для графики взял свою либу unigraf (написана мной в 2002, может работать поверх DOS, SVGALib или SDL, используется в моих эмуляторах спринтера и ориона) - заодно исправил там одну багу из-за которого пикселы в нижней части экрана размазывались по вертикали. Пока успехи на лицо - рисует почти правильно, осталось поддержать формат дырок (формат Excellon несколько отличается от формата Gerber) ну и непосредственно сохранение гифов закодить (или заюзать PNG?) - пока предполагается разрешение по умолчанию 1000 точек на дюйм.

P.S. С мая 2019 оно живёт на гитлабе вот в этом каталоге: https://gitlab.com/nedopc/sdk/tree/master/vultured

_________________
:eugeek: https://twitter.com/Shaos1973


20 Mar 2010 13:59
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17995
Location: Colorado
Reply with quote
Shaos wrote:
Пока успехи на лицо - рисует почти правильно, осталось поддержать формат дырок (формат Excellon несколько отличается от формата Gerber)


Второй вечер работы над программой - герберы 100% рисует правильно (включая Excellon), причём C/C++ программка получилась всего 440 строк (скомпилированный бинарник в линухе весит 19К). Следует отметить, что я программку писал чисто наугад - глядя в текст герберов и предполагая как же оно должно на самом деле работать. Теперь осталось самое важное:

Shaos wrote:
ну и непосредственно сохранение гифов закодить (или заюзать PNG?) - пока предполагается разрешение по умолчанию 1000 точек на дюйм.


P.S. Интересно смотреть как оно прорисовывает - сделаю ка я видео этого процесса :)

_________________
:eugeek: https://twitter.com/Shaos1973


20 Mar 2010 18:25
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17995
Location: Colorado
Reply with quote
Post 
Залил исходник на Sourceforge (пока без генерации гифов), а с мая 2019 оно живёт гитлабе: https://gitlab.com/nedopc/sdk/blob/master/vultured/grb2gif.cpp

P.S. Более 100 строк в этой программе занимает функция lineto для рисования линий, позаимствованная мной из моей же программы на RW1 (aka ROBBY)

_________________
:eugeek: https://twitter.com/Shaos1973


20 Mar 2010 20:11
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17995
Location: Colorado
Reply with quote
Post 
Выложил сборку просмотрщика под ДОС вместе с герберами двух nedoPC-16 плат на поглядеть (тут для скорости точность ухудшена в 5 раз):

http://nedopc.org/nedopc/files/GRB4DOS.ZIP (169K)

P.S. Самые последние исходники всегда можно посмотреть тут: https://gitlab.com/nedopc/sdk/tree/master/vultured (перенесено в мае 2019)

_________________
:eugeek: https://twitter.com/Shaos1973


Last edited by Shaos on 21 Mar 2010 10:32, edited 1 time in total.



20 Mar 2010 21:47
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17995
Location: Colorado
Reply with quote
Shaos wrote:
Теперь осталось самое важное:

Shaos wrote:
ну и непосредственно сохранение гифов закодить (или заюзать PNG?) - пока предполагается разрешение по умолчанию 1000 точек на дюйм.


Сделал сохранение в GIF (через libgif), но прозрачность дырок никак не могу включить...

_________________
:eugeek: https://twitter.com/Shaos1973


20 Mar 2010 23:37
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17995
Location: Colorado
Reply with quote
Shaos wrote:
Shaos wrote:
Теперь осталось самое важное:

Shaos wrote:
ну и непосредственно сохранение гифов закодить (или заюзать PNG?) - пока предполагается разрешение по умолчанию 1000 точек на дюйм.


Сделал сохранение в GIF (через libgif), но прозрачность дырок никак не могу включить...


Сегодня поправил ещё одну неувязочку в поддержке формата, а также добавил поддержку 4-слойных печатных плат - теперь все мои герберы отображаются нормально! Выше обновил досовскую сборку

Вот примеры сгенерённых файлов (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

_________________
:eugeek: https://twitter.com/Shaos1973


21 Mar 2010 10:34
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17995
Location: Colorado
Reply with quote
Post 
Когда сконвертил все свои платы из игла обратил внимание, что на получившихся GIF-ах у SMD компонентов контактные площадки выглядят чуть больше чем надо (а у QFP вообще слипаются) - что там я не до конца расковырял...

_________________
:eugeek: https://twitter.com/Shaos1973


21 Mar 2010 19:35
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17995
Location: Colorado
Reply with quote
Post 
Shaos wrote:
Когда сконвертил все свои платы из игла обратил внимание, что на получившихся GIF-ах у SMD компонентов контактные площадки выглядят чуть больше чем надо (а у QFP вообще слипаются) - что там я не до конца расковырял...


Ещё одно known issue - вместо восьмиугольных контактных площадок моя программа рисует круглые

_________________
:eugeek: https://twitter.com/Shaos1973


22 Mar 2010 19:49
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17995
Location: Colorado
Reply with quote
Shaos wrote:
P.S. Интересно смотреть как оно прорисовывает - сделаю ка я видео этого процесса :)


А вот и видео :)



В реальности оно работает быстрее - это я ради видео нагенерил более 4000 кадров, чтобы растянуть процесс на две с половиной минуты...

_________________
:eugeek: https://twitter.com/Shaos1973


23 Mar 2010 21:44
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17995
Location: Colorado
Reply with quote
Post 
На днях написал размножитель герберов 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 и т.д.)

Примеры в картинках:

Image

Image

_________________
:eugeek: https://twitter.com/Shaos1973


Last edited by Shaos on 24 Aug 2010 19:05, edited 4 times in total.



16 Aug 2010 22:46
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17995
Location: Colorado
Reply with quote
Post 
Quote:
Примеры в картинках:

Image



Вот первый результат:

Image

Получено вот из этого:

Image

Image

т.е. моя программа размножения герберов работает! :kruto:

_________________
:eugeek: https://twitter.com/Shaos1973


23 Aug 2010 20:08
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17995
Location: Colorado
Reply with quote
Post 
Эти программки работают только с герберами, произведёнными в Eagle
Посмотрел чего генерит PCB из gEDA - надо серъёзно переписывать код, чтобы и его поддержать...

_________________
:eugeek: https://twitter.com/Shaos1973


29 Apr 2011 20:49
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17995
Location: Colorado
Reply with quote
Post 
Есть желание (но нету времени) сделать из этих наработок полноценный редактор Гербер-файлов (под GPLv3 естественно)
Кто со мной? :roll:

P.S. Работоспособность размножителя проверена ещё на одной плате - уже с зелёнкой и шелкографией

_________________
:eugeek: https://twitter.com/Shaos1973


03 Sep 2011 22:56
Profile WWW
Doomed

Joined: 06 Oct 2006 04:17
Posts: 581
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Post 
С форматом Gerber- файлов я сталкнулся не давно, когда перешёл с PCAD2006 SP2 на Altium Designer. Этот формат чаще стали просить производители печатных плат. Вопрос к Shaosу: а нет ли утилиты под Windows данной конвертилки?

_________________
:arrow: Сайт о ПК "Специалист" и его клонах


03 Sep 2011 23:19
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17995
Location: Colorado
Reply with quote
Post 
fifan wrote:
С форматом Gerber- файлов я сталкнулся не давно, когда перешёл с PCAD2006 SP2 на Altium Designer. Этот формат чаще стали просить производители печатных плат. Вопрос к Shaosу: а нет ли утилиты под Windows данной конвертилки?


Сырцы открыты - по идее должны собираться везде ;)
Одна проблема - стабильно работает только с герберами, сгенерёнными в Eagle
Если очень нужно - могу заточить под Альтиум, но нужны примеры

_________________
:eugeek: https://twitter.com/Shaos1973


04 Sep 2011 00:45
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 27 posts ]  Go to page 1, 2  Next

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.