Mail Archives: geda-user/2014/07/06/15:55:35
On 07/06/2014 10:08 AM, DJ Delorie wrote:
>> Is there a reliable way to validate that zero-width pads are usable?
> Code review.
Where is the canonical git repo these day? It's been a while since I've
looked at it.
>> 1. Draw a Pad[] with zero width, but with clearance/mask set create
>> desired relief.
>> 2. Give the Pad[] a pin number that is *not* used in the part, that way
>> it will not show up in the netlist and cause rat/routing/connectivity
>> confusion.
> I suspect that a zero-width pad is still "a pad" according to parts of
> the code, so it will still block traces and cause shorts despite being
> zero-width.
Shouldn't it block traces? Isn't that the point of clearance? Although
I guess if you set thickness to zero to try to create a gang mask it
would be annoying if it blocked traces.
Conceptually, it seems like a "zero width pad" solves a couple of
long-standing annoyances. It could be used to clean up the kind of
clearance issue I'm having here, and it could also create gang masks.
If people agreed, I could see a couple of approaches...
1. Declare that a zero width pad is a valid primitive that does not
impact connectivity in any way, is guaranteed not to render on a copper
layer, but allows either or both of thickness and mask-relief to be
non-zero. The current code might do the right thing in a lot of places,
but long term I suspect this would create a lot of special-case checks
in the code and of course becomes burdensome legacy in the spec. It
does not require any new footprint parsing code.
2. Create new primitive(s) for footprint files, perhaps Clear[] and
Mask[], that can attack the problems directly. It also strikes me that
a Keepout[] primitive might share some behavior of Clear[]... it blocks
routing but doesn't draw anti-copper.
- Raw text -