| delorie.com/archives/browse.cgi | search |
| X-Authentication-Warning: | delorie.com: mail set sender to geda-user-bounces using -f |
| X-Recipient: | geda-user AT delorie DOT com |
| X-Original-DKIM-Signature: | v=1; a=rsa-sha256; c=relaxed/relaxed; |
| d=gmail.com; s=20230601; t=1706075540; x=1706680340; darn=delorie.com; | |
| h=to:subject:message-id:date:from:mime-version:from:to:cc:subject | |
| :date:message-id:reply-to; | |
| bh=og8C8+iC5lHIfJMube4Bhv/u8pas2mIo3Gmo8ZaIjIs=; | |
| b=EikB74OEYck/TU387yLzjV77iI2mZYjwBVrGB8n8a0Uzpj3m4blypcO/Vl/QJbobtU | |
| rSRbYVnDwLfmoByBSF/WJEzblIvdiP+jmJlLy9aSW6SPHeHDEyA+xTkhhBuQc0M1UqHt | |
| JTe53WGF3KpsSAYeeXkMg6msMPnWqpl6x6bUlmhQj3MqziZ8ZQV8fafvVqg1oDCnlPv8 | |
| 2CEopjzHvPPYhIDMscKeERS8Fp7NUDsI+PMx2aKfTzFZzmcAFYX2E8EFT5Cqj3VHQ2ET | |
| GlWaH25DUPBruFdUmupihAXhZKCsAUpGVRHOSOCu3NPGcswEzSJtXusf0CdgREyP9Ic6 | |
| IanA== | |
| X-Google-DKIM-Signature: | v=1; a=rsa-sha256; c=relaxed/relaxed; |
| d=1e100.net; s=20230601; t=1706075540; x=1706680340; | |
| h=to:subject:message-id:date:from:mime-version:x-gm-message-state | |
| :from:to:cc:subject:date:message-id:reply-to; | |
| bh=og8C8+iC5lHIfJMube4Bhv/u8pas2mIo3Gmo8ZaIjIs=; | |
| b=wlfTXKnHdXQ48emErHRxeWve5QuAZwcyjj/iAuIbBdniW6jwYt4ECsKgKC4iAaNFeM | |
| lESCj6QZ4oA3vFhpArnKTyeQ+AX8Z/KX69+4XjZE1Qed2dGLzeaywoastI0RC3r3IraV | |
| lMO3ju068HDqHsXnV4xZei4D7vnSCEwyaEUhiW5L2+OkWaaxhWH3kqFciUjrFHFZgtol | |
| AwuU/s72hO3oujPY+jPcTqAZalEveVWlQJLEWdSyStltOgFiiyyQ1R6t00p99udVJ5UL | |
| cbsJrt+cxcFv87LqA1kY/bRcTrET/jk7wqREfB51oK22EgwTxvCGLIn1u/hbh1ltscqP | |
| b74Q== | |
| X-Gm-Message-State: | AOJu0Yyyl3ERctjiR2icV2hr7FkZx9myCtMpBk4LIlEV0le9+kpBNn2o |
| +BLJFicsAU49T/jfYWBzbivzhwV33kUJI7ZNipxyXwMR5XJyVPEtI095ImFYmhryUc2LTuwwFX3 | |
| 4od7s6JOGOTo61IIJHOG8zgzrwRfOJgFEF/s= | |
| X-Google-Smtp-Source: | AGHT+IHA01RLAwT7d2A9I6xTNXzLCN22QLIZuGpT07KsbbPRK/cebdwOkCv3MitShoi8mvX+D0VN36QUcZcZj8cwSoQ= |
| X-Received: | by 2002:a05:6512:2382:b0:50f:98d:35e4 with SMTP id |
| c2-20020a056512238200b0050f098d35e4mr3820535lfv.0.1706075538350; Tue, 23 Jan | |
| 2024 21:52:18 -0800 (PST) | |
| MIME-Version: | 1.0 |
| From: | "Britton Kerin (britton DOT kerin AT gmail DOT com) [via geda-user AT delorie DOT com]" <geda-user AT delorie DOT com> |
| Date: | Tue, 23 Jan 2024 20:52:06 -0900 |
| Message-ID: | <CAC4O8c_FTDR8o603fWdhz0Rh_OgKybeTKuDM5cnJXNknQCYLoQ@mail.gmail.com> |
| Subject: | [geda-user] Allowing pins/pads with zero clearance to contact polygons |
| To: | geda-user AT delorie DOT com |
| Reply-To: | geda-user AT delorie DOT com |
A while back there was some discussion here about different ways of
connecting pins/pads to polygons (e.g. ground pads to ground plane).
At least some people like to do this by setting the clearance for the
pin/pad to zero, then simply drawing the ground plane over the part.
It's a nice way to do it because it removes the need to have little
hard-to-select traces everywhere to connect e.g. ground pins to ground
plane (which in turn makes it much less painful to move parts around
after the fact.
This used to work without any DRV violations, but a fix to the polygon
clearance tests by Charles Parker in de49a513 seems to show that it
only ever worked by accident.
However the current code in master contains this code that explicitly
allows zero-clearance vias to contact polygons:
case VIA_TYPE:
if (clearance == 0)
{
/* Vias with zero clearance are allowed, make sure it's connected. */
if (obj_touches_poly(&thing1, polygon, GetLayerNumber(PCB->Data, layer)))
break;
else
{
/* not connected to the polygon, raise an error*/
new_polygon_not_connected_violation (layer, polygon);
break;
}
}
I think this same condition should apply to PAD_TYPE and PIN_TYPE objects as
well, because it's essentially correct to take zero to mean zero, and incorrect
to do otherwise.
What I don't agree with is the subsequent requirement that the object touch the
nearby polygon, for the following reasons:
* It adds significantly more meaning to clearance == 0 than that setting
explicitly states
* As implemented it triggers on nearby polygons that aren't meant to be
connected
* As implemented the message doesn't make clear what the problem is (refers
only to flag and doesn't mention clearance) and gives a wrong prescription
for the case of a nearby polygon that isn't supposed to be connected.
* It doesn't catch thin connections (as happens for DRC elsewhere) anyway
* Complete misses with polys that are supposed to be connected are caught by
connectivity anyway
Changing this to honor the literal meaning of clearance == 0 while not adding
any unexpected implicit meaning would be fairly low-risk: it wouldn't change
any existing board, and would only impact users who have deliberately set
clearance to zero. So far as I know none of the available footprint libraries
ship footprints with clearance set that way by default.
Thoughts?
Britton
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |