gerber to pcbnew is kind of a missing feature right now. (And i can tell you from expirience that such a feature is also only partially existing in eagle especially if the gerber is not created by eagle itself. Altium however is quite good at it.)
gerbview has this feature, didn’t use it much
Importing old Gerber as a layer is trivial, the missing feature is to be able to crate a new PCB that matches an old one from some long lost CAD or even hand made method, with some form of checking. Reverse extraction of a netlist would be a bonus.
Sadly not really a conversion. kicad can kind of import tracs. forget about pads. all of them are converted to circular tht pads. (i am sure there is a bug report about that but i can not find it right now with my limited time.)
In my strongly held opinion. Conversion is a red herring. On any design of reasonable complexity it is a fools errand. Importing from production assets like Gerbers will provide very little benefit except a template to retrace manually which can be done with existing tools anyway.
This is coming from a personal experience of porting a mature board of reasonable complexity from eagle to altium . It took three respins despite enormous effort in preparing assets and libraries for clean import and a strong plan to resolve issues . By the time we finished resolving errors in components , missing rules, software bugs, and messed up connections in schematic it would have been easier to rebuild from scratch, which we eventually did, to additional expense
I answered a hidden question. I did not voice any opinion. It is definetly not my place to make the decision if it is worth investing time into this.
As a heads up: The department i work in right now had to convert some gerber files to eagle three times in the few months i am there. So i would say you are wrong here. There are definitely usecases for this feature. (main reason: we work with other companies on the same project. The other company uses different tools. We are not prepared to recreate their design in eagle as it would mean that we would take responsibility should anything go wrong.)
I hear you, the use cases exist, similiar to software dissassembly, but my point is that effort in design validation is enormous.
Production assets are compiled files and I believe should be viewed as decompiling binary programs to source code, it certainly has its use, particulalrly if you have nothing else to go on, but it is missing much information about how it was generated, so while you may get a reasonable facsimile, any future changes to design will behave very differently. You cannot just pick up where you left off
As a simple example. If your original files specify a rule based pullback for planes, an import of the Gerbers will give you a facsimile of the plane, now you want to change the pullback for a small modification, the original outline information has been completely lost or assumed arbitrarily by the importer, you are stuck redrawing those planes for any reasonable certainty in your design . Rinse and repeat.
Of course the level of design certainty varies by user. In my case the requirement was that the designs produce identical Gerbers before and after import.
And that is why this tool is esential. If i can include a gerber generated by my partner company with 100% guarantee that their design is unchanged then i do not need to validate their stuff. And if it does not work with the manufacturer i use? Well it is the responsibility of my partner not mine. (Really in the corporate world this is a major point. Nobody cares if a product is finished on time or on budget. The question really only is: Am i the one who can be made responsible.)
So if I read you correctly, the use case you are describing is a static layout from a third party that you wish to include verbatim. This is very different than a design port, e.g. when switching your company from eagle to kicad.
That is an interesting use case i havent encountered. If you have no need to validate the design or inspect components then it is similar to masking or panelizing . The question I have is if this composition should happen in the EDA or during plotting. But I agree with your point in general, assuming I understood it correctly.
I have not used gerbview in a real project to convert gerbers back to a KiCad PCB, but I did some experiments and it looks quite usable.
I’ve seen some requests for Gerber -> Pcbnew conversions on this forum. Reasons are import f a PCB designed with another program, or a project in which everything exept the gerbers are lost.
It really does not matter much that all pads are converted into holes.
The first time I saw this happen, it made me doubt the usebalility of this function, and then I realised that if you re-create the Footprints in Pcbnew (which is info missing in the gerbers anyway) then the holes in the gerber quickly guide you to where to place the footprints, which also puts the pads in the right place.
The list of DRC errors would somewhat be equal to the original netlist, but I see no tools available to reverse engineer the netlist. Which means, drawing the schematic in pieces by hand, importing in Pcbnew and re-iterate untill DRC errors are gone.
Differences of gerber files can be easily visually compared by importing 2 versions in gerbview.
How did we get here from the original topic?
Your experience is largely what I picture is a typical process. The import serves as a template for re-engineering, when you have nothing else it is better than nothing.
How did we get here from the original topic?
This is my fault, I am still traumatized from managing a large design port at work so jumped on a comment by @Rene_Poschl
It’s there, but I’m not quite sure it’s a ‘feature’ yet.
As mentioned above, it lacks controls, and has some poor assumptions, and limited user controls.
A good yardstick for Gerber Import, would be to ask Can I plot a correct PCB after import ?
(this is not expecting any parts,nets,DRC, merely being able to generate a clone)
Right now, that’s a ‘no’, but it does not need much, to make it a ‘yes’
For those who sniff at Gerber import, there are many use cases, where it is a useful tool.
- for extracting placement and mechanical outlines
- For confirming a translated design. If you can place gerbers on different layers, you can quickly spot divergence.
- For simple edits of an existing proven PCB.
- In KiCad you can import a gerber track set, onto pre-placed parts, and those tracks will net-tag as expected.
Maybe this can fork into a new topic ? (moderators?)
Yes and no.
because import is NOT a correct copy, the user is forced to replace all footprints (and delete the errant holes) before they can plot.
A smarter default would be to import a true copper copy, and add drill-file based hole tags.
That should be achievable, and quite portable.
In rare cases where someone has gerbers, and no drill, some choices around flashed pads could help.
I think it is a case of “what is the problem statement”
If it is something like
Today I am working in Eagle, Tomorrow I would like to be designing in KlCad
This assumes you have every possible piece of information at hand. For this problem, any kind of import is not going to be perfect, and for reasonable complexity re-building from scratch may be the best to go. Of course, for this rebuild you will use references like imported files, or original gerbers, as you mention the use case of using gerbers to validate a translated board.
On the other hand, something like
I have this board I need to redo, but lost everything but the gerbers
Of course one should use every possible trick and tool at their disposal.
In fact, even in the case one loses the gerbers but has a sample, a good xray will work in a pinch
I would appreciate this, as I would like to hear your views on this. My experience is biased, but my problem was strictly in the well defined “A” category
The discussion about converting gerbers is interesting and, to me, important, but it would be better to continue in another thread. Could @Rene_Poschl or someone else move this? I will comment there.
Re-categorised this to wishlist discussion
I have had to reverse engineer existing Gerbers, that no longer have Schematics available.
Changes to the design have to be minimal to keep existing test approvals.
Components can be identified by inspection.
Exactly recreating the original design is almost impossible due to pad shape variation etc.
What would be really handy would be a way of identifying copper connectivity and verifying that it is matching
Depends on what you mean by exact.
It should be possible to clone flash/drawn pads by shape and size, and if a drill file is imported, then a gerber+Drl import, should be plot-fab-ready. Some assist may be needed to ‘snap’ gerber origin to drill origin if they differ.
Maybe some simple XOR is possible between two nominated layers ?
That would allow a carbon-copy to be parked on some document layer, and compared with F.Cu for example.
If you have (manually) footprints placed, with net-names tagged to pins, if you them import a set of gerber polylines, those will nicely auto-connect to the pins, even now.
An update : Looks like good progress is underway on Gerber to KiCad improvements
I submitted a bug report/suggestion list a while back https://bugs.launchpad.net/bugs/1646221
and get this topical report update
from Seth Hillbrand
Didn’t notice this was already in the tracker. I have a few parts of
this that are in progress and this is is generally a good baseline.** Changed in: kicad Status: In Progress
** Changed in: kicad Assignee: Seth Hillbrand
This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.