simplified clearance matrix: introduce same-net clearance
Description
KiCad still seems to be missing the concept of a clearance matrix. Sorry if I've overlooked any issues, but the search didn't bring up any related topic.
Before this becomes a case of "not happening for v6", please modify the net class table:
- add "self-clearance"
- add "mutual clearance"
- remove Clearance, set both self and mutual clearance to former "clearance" value for conversion
There will also need to be an attribute that specifies whether the simplified clearance matrix or the full clearance matrix is specified (defaulting to simplified clearance matrix until the rest is implemented). The Net classes panel can later be tabbed and another table for the clearance matrix can be added.
I'm aware that this is not an easy improvement, as it impacts everything from routing, to polygon filling, to DRC. One could mark the use of differentiated clearance settings experimental and leave DRC violation checking and adequate routing to the so-inclined user, but zone filling is out of user control is what ultimately breaks any attempts to work around current limitations.
So, please add a way to specify self-clearance separately, and implement appropriate zone filling.
I'm by no means the only one that gets bitten by this deficit. Maybe it's a communication issue, as the forum thread might suggest.
https://forum.kicad.info/t/crowdfund-clearance-matrix-contracting-kipro-to-implement-it/20362/37
I’d also like to chime in and say that a proper implementation of this feature is tied in to a lot of other tasks, some of which might seem completely unrelated to those unfamiliar with the KiCad codebase. Nobody is saying a clearance matrix shouldn’t be implemented, but as we are trying to move KiCad forward we have to do so in a way that keeps the level of “technical debt” manageable, and gives us a stable platform to build on in the future. Right now there are developers working on things that are pieces in the puzzle that will eventually lead to this particular feature. It might take a while, but we will get there.
In my opinion, KiCad v6 is DOA for power electronics without at least some way to specify more nuanced clearances.
Steps to reproduce
- build a high voltage MOSFET half bridge (e.g. with TO247-4 parts)
- try to specify adequate clearances (three classes with large mutual clearance, small clearance for gate driver lines
KiCad Version
Version: (5.99.0-3347-g98339cd5), release build, Sep 15 2020 09:04:57
Application: Pcbnew
Version: (5.99.0-3347-g98339cd5eb), release build
Libraries:
wxWidgets 3.0.5
libcurl/7.71.0 OpenSSL/1.1.1g (Schannel) zlib/1.2.11 brotli/1.0.7 libidn2/2.3.0 libpsl/0.21.0 (+libidn2/2.3.0) libssh2/1.9.0 nghttp2/1.41.0
Platform: Windows 8 (build 9200), 64-bit edition, 64 bit, Little endian, wxMSW
Build Info:
Date: Sep 15 2020 09:04:57
wxWidgets: 3.0.5 (wchar_t,wx containers,compatible with 2.8)
Boost: 1.73.0
OCE: 6.9.1
Curl: 7.71.0
ngspice: 32
Compiler: GCC 10.2.0 with C++ ABI 1014
Build settings:
KICAD_SCRIPTING=ON
KICAD_SCRIPTING_MODULES=ON
KICAD_SCRIPTING_PYTHON3=OFF
KICAD_SCRIPTING_WXPYTHON=ON
KICAD_SCRIPTING_WXPYTHON_PHOENIX=OFF
KICAD_SCRIPTING_ACTION_MENU=ON
BUILD_GITHUB_PLUGIN=ON
KICAD_USE_OCE=ON
KICAD_SPICE=ON