ID: | 2484 |
From: | ge...@igor2.repo.hu |
Date: | Sun, 25 Nov 2018 19:24:53 +0100 (CET) |
Subject: | [pcb-rnd] good bye layer assumptions! |
Hi all, one important goal of the layer rewrite (that started bakc in 2017) was to remove all layer assumptions. We inherited the code from PCB with tons of them. Things like "there's only one outline layer" and "there have to be two uneditable mask layers so we don't even store them in the file" are long gone. We still had a few, until today, including "you have to have a top silk and a bottom silk". As of r21124, they are all gone. I am testing with a board that has no layers: I removed _all_ layer groups. And I still can place subcircuits, and the board keeps track on holes and rat lines properly. This is important, because we want the data model to reflect reality precisely. That is, if you have a board without bottom silk ever fabbed, we want to be able to represent that, without "having to add a bottom silk layer, just keep it empty, the software needs it". Please test it and report any bug. Testing is easy: just remove any layer group you are not going to use/fab. There may be subc or import/export related corner cases. Obviously, you have to use lihata (preferrably v6) to save/load "incomplete" layer stacks. Other formats, and more generally other EDA software typically have a much more restricted/hardwired/static layer setup. Typical use cases: - single sided board can be really single sided - no need to have top mask, top paste, etc - home etched boards typically won't have solder mask or paste - if a board is designed explicitly for that use case, those layers can be removed - non-pcb use: "outline-only"; if you want to generate g-code or otherwise cut out something from a plate, you can have a board with only an "unplated routed boundary" layer group and nothing else - non-pcb use: documentation: if you want to use pcb-rnd as a generic 2d CAD, you don't have to abuse silk or copper layers, you can have a board with a few documentation layer groups Limitations: - if top copper or bottom copper is missing, there is no support for blind/buried holes, only thru-holes. This is because our bb works by counting start/end from top/bottom copper - many fabs won't do plated drills if the hole doesn't end on copper layers; which means for no-copper boards you should use unplated holes and slots - most formats won't support "incomplete" stacks; we do our best to convert or warn or throw error. Lihata v1 will enforce having silks. Old versions of pcb-rnd will throw error on missing layers, so do not use this feature if you want to be backward compatible. (But this did not require file format version bump as the format didn't change, we just don't enforce having any of the layer groups). Regards, Igor2
Reply subtree:
2484 [pcb-rnd] good bye layer assumptions! from ge...@igor2.repo.hu