Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GenCAD file format support #392

Open
martonmiklos opened this issue Jun 2, 2023 · 7 comments
Open

GenCAD file format support #392

martonmiklos opened this issue Jun 2, 2023 · 7 comments

Comments

@martonmiklos
Copy link

Back in the days Teradyne created a text based format called GenCAD. Leaked spec could be found here

The file format contains the PCB layers, cooper definitions, part footprint definitions, board outline so theoretically all information necessary for the InteractiveHtml generation is available inside it.

I know a couple PCB design tools (Mentor Pads, Mentor Expedition) which is capable to export to this format, so a Mentor - GenCAD - InteractiveHtmlBom conversion would be an option to support those tools.

The OpenBoardView software received GenCAD support lately, we used a Backus-Naur format based "grammar" to parse the file:
https://github.com/OpenBoardView/OpenBoardView/blob/master/src/openboardview/FileFormats/GenCADFileBnf.h

It might be a good starting point to leverage that grammar to eliminate the cumbersome parser creation.

I might start working on it in my fork soon, I opened this issue mainly as a notification in the case if someone would have some shared interest.

@martonmiklos martonmiklos changed the title Gencad support GenCAD file format support Jun 2, 2023
@qu1ck
Copy link
Member

qu1ck commented Jun 2, 2023

This is interesting, there are python libs that can generate bnf parser based on grammar so you can probably use it directly.

@set-soft
Copy link
Contributor

set-soft commented Jun 5, 2023

Interesting, KiCad can generate GenCAD files, but I couldn't verify they are properly created.
I was able to load the copper layers using OpenBoardView and a web based tool. But couldn't verify the silk screen.
I was trying to verify some changes in the generated format, they involve a text rotation, but I couldn't determine if it was a fix or a break (looks like it was unintentional)

@martonmiklos
Copy link
Author

and a web based tool.

Out of curiosity which tool was that?

But couldn't verify the silk screen.

Yeah OpenBoardView was primarily designed to load boardview files and most of them does not supported silkscreen at all, so when we implemented GenCad parsing we have not expanded it's capabilities.

I was trying to verify some changes in the generated format, they involve a text rotation, but I couldn't determine if it was a fix or a break (looks like it was unintentional)

I have a copy of a very old Windows software called IGE. Let me know if you are interested in that.

@set-soft
Copy link
Contributor

set-soft commented Jun 6, 2023

Out of curiosity which tool was that?

I don't remember, it was something like EasyEda or similar free web EDA.

I have a copy of a very old Windows software called IGE. Let me know if you are interested in that.

I just need to determine the impact of the changes generated by KiCad.

Here is the same PCB generated by KiCad 5, 6, 7 and 8: gencad.zip

If you can post an image capture of the silk screen for each file we can determine if the change is a fix or a bug.

@martonmiklos
Copy link
Author

gencad5.cad:
kép

gencad6-7-8.cad:
kép

It turned out that it only supports the Gencad 1.3 specs so the output is not really relevant.

@martonmiklos
Copy link
Author

After struggling with all kind of pyhton parsers I settled at the parsimonious

It has many things to do, but the contour parsing is started rolling:
kép

@martonmiklos
Copy link
Author

@set-soft

I managed to get my paws onto a Teradyne D2B 7.0

Results:
kép

kép

kép

I hope this helps!

martonmiklos added a commit to martonmiklos/InteractiveHtmlBom that referenced this issue Jul 30, 2023
martonmiklos added a commit to martonmiklos/InteractiveHtmlBom that referenced this issue Jul 30, 2023
martonmiklos added a commit to martonmiklos/InteractiveHtmlBom that referenced this issue Jul 30, 2023
martonmiklos added a commit to martonmiklos/InteractiveHtmlBom that referenced this issue Jul 30, 2023
martonmiklos added a commit to martonmiklos/InteractiveHtmlBom that referenced this issue Jul 30, 2023
martonmiklos added a commit to martonmiklos/InteractiveHtmlBom that referenced this issue Aug 5, 2023
martonmiklos added a commit to martonmiklos/InteractiveHtmlBom that referenced this issue Aug 6, 2023
martonmiklos added a commit to martonmiklos/InteractiveHtmlBom that referenced this issue Aug 7, 2023
martonmiklos added a commit to martonmiklos/InteractiveHtmlBom that referenced this issue Aug 10, 2023
martonmiklos added a commit to martonmiklos/InteractiveHtmlBom that referenced this issue Jan 25, 2024
martonmiklos added a commit to martonmiklos/InteractiveHtmlBom that referenced this issue Jan 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants