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 |