Keepout "layers"?

Was talking to @rheingoldheavy today, we were discussing keepout areas and the current state of being for these. There was a discussion about this year on the launchpad boards, but the focus was on the 4.0.0 release (yay!). The keepouts are still a completely separate flow that does not play nice with a lot of other things in the current pcbnew tool. What we were discussing is the possibility of having a top and bottom keepout layer. This would allow:

  • Integration into footprints
  • Custom images on the keepout layer (curves, weird shapes, mechanical inputs, etc)
  • Integration with the 3D tool

Could any of the developers comment on the current state of being? This would really help design flows and ensure I don’t run a trace underneath something I shouldn’t…I’m lookin’ out for #1 here :wink:

My 2p:

  • Perhaps it would make sense to separate component placement keepout areas and routing keepout areas

  • Implement a single Placement Keepout layer

  • Implement placement keepout areas that can be drawn only on Placement Keepout layer. Each of the areas shall have a list of board sides it applies to (Top and/or Bottom). Each side in this list shall have a textbox to assign maximum component height that applies to this side. DRC shall check overlappings between placement keepout areas and objects on coutryard layers (taking height into account)

  • Implement a single Routing Keepout layer

  • Implement routing keepout areas that can be drawn only on Routing Keepout layer. Each of the areas shall have a list of electrical layers it applies to. Each layer in this list shall have three checkboxes associated with it: Trace, Via, Copper Pour. As I understand this is partly the way it’s implemented at the moment apart form the fact that only one electrical layers can be selected in keepout area properties. In footprint editor the list of associated electrical layers could contain “Top”, “Bottom”, “Internal”.

I like the idea of two different types of keepouts.

The placement keepout I agree should be on it’s own layer. Actually, two layers, top placement keepout and bottom keepout layer. As I recall, IPC footprints (at least when generated with a generic IPC footprint generator) have their own keepout layers to keep other components from being placed too close (so the pick and place head(s) don’t collide with already placed parts). So much like the silkscreen, when moving a component from one side of the board to the other, the component’s keepout should follow it. Then the designer can draw their own keepouts at board level. I just looked up and IPC-7351 calls it the “courtyard”, and the 4.x stable KiCAD has front and back courtyard layers. I haven’t used them yet so I don’t know if KiCAD’s DRC takes them into account. Might the courtyard layers be a good option for drawing keepout areas?

I’m not sure if the routing keepout needs its own layer, maybe an “all internal routing keepout”? I’d think that routing keepouts on the top and bottom layer could be implemented in the top or bottom copper layer.

As far as drawing a keepout area (either type, or on any particular layer), using the same technique as copper pour zones would make it easiest for the software to understand what is on the inside and what is on the outside. It would also eliminate user error of accidentally not completely closing the boundary like is so easy when drawing using line segments.

Here is a link to an appropriate wishlist bug, please feel free to add your voice: