Mailing list archives : pcb-rnd

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