Standardized schematic/layout file formats for PCB CAD tools?
As we know there exists numerous different kinds of PCB CAD software. The big ones seem to be Eagle, KiCAD, Altium, OrCAD, Solidworks, DesignSpark and probably a few more.
When it comes to mechanical PCB file formats, there is Gerber which seems to be the universal standard. But also .dxf for mechanical drawings/AutoCAD, which is what one often gets from connector component vendors etc.
What I'm wondering is if there exist similar sort of standardized/de facto standard file formats used for schematics and layouts? Is there some universal format supported by several of the big PCB CAD tools, to allow porting between them?
The reason I'm asking is because I'm investigating what PCB CAD we should aim to use whenever dealing with external consultants, who in turn are used to various different tools. If there was a format which could easily be exported/imported by many tools, we would ideally pick that one.
1 answer
As far as I know, there is no standard format, at least not one supported by many packages.
What I would look for instead is the existence of converters. Check the ability of a tool to export or import in another's format. Then ask around and look at reviews to find the quality of these converters. Anyone can claim to have a converter, and be able to demonstrate it on a carefully-chosen dataset. The failures will be in the corner cases.
One problem is that each tool stores different data in different ways internally. This makes it difficult to come up with a universal standard definition that fits comfortably with different systems.
I would look for a tool that at least lets you at all its internal data. Eagle is well know for this, and probably Kicad does too considering its origins and it being open source.
Even if you know everything about a schematic in one system, it may be difficult to map that to another system. For example, consider part identification. I may have an Eagle schematic that uses a 4401 jellybean transistor. You probably have a 4401 defined in your Altium library too. But how does an Eagle to Altium importer know that the 4401 in the Altium library is really the same part as the 4401 in the Eagle file? Part definitions don't usually specify the electrical parameters. Do you require the names to match? But those can vary too. In Eagle, for example, names are "decorated" with other information, like the codename you chose for the package. Is a "SOT-23" on one system the same as "SOT23" or "SOT23-3" on another? You probably don't want converters to make such assumptions, but then you're back to doing a lot of tedious manual work.
2 comment threads