Pcbnew: zone fill type: Inverse hatch pattern (e.g. for copper balance / thieving)

Description

For copper fills, hatch pattern is already implemented, but inverse hatch pattern is missing. I mean, to be able to fill an area with copper squares, separated with "Hatch width" space lines. We usually order HDI PCBs with very thin prepreg layers, but if we leave the empty areas without copper on the routing layers, the uneven thickness of the pcb results in a bent board. Solid or hatched pattern filling of these spaces usually solve the problem, but there are applications where this is not allowed. One such application is when using NFC antennas embedded in the pcb, where any large copper fill degrades antenna performance. In this case, the inverse hatch pattern is a perfect solution.

In the "Copper Zone Properties" dialog, every required parameter already exists. Adding an inverse of the already existing "Hatch pattern" probably requires less effort. (And please note, this would be a feature where KiCad could beat Altium.)

KiCad Version

Application: Pcbnew

Version: (5.99.0-8890-g2e67cd2db8), release build

Libraries:
	wxWidgets 3.0.5
	libcurl/7.74.0 OpenSSL/1.1.1i zlib/1.2.11 zstd/1.4.5 libidn2/2.3.0 libpsl/0.21.1 (+libidn2/2.3.0) libssh2/1.9.0 nghttp2/1.41.0

Platform: Linux 5.10.7-3-MANJARO x86_64, 64 bit, Little endian, wxGTK, KDE, x11

Build Info:
	Date: Feb  5 2021 01:30:20
	wxWidgets: 3.0.5 (wchar_t,wx containers,compatible with 2.8) GTK+ 3.24
	Boost: 1.75.0
	OCC: 7.5.0
	Curl: 7.74.0
	ngspice: 33
	Compiler: GCC 10.2.0 with C++ ABI 1014

Build settings:
	KICAD_SCRIPTING=ON
	KICAD_SCRIPTING_MODULES=ON
	KICAD_SCRIPTING_PYTHON3=ON
	KICAD_SCRIPTING_WXPYTHON=ON
	KICAD_SCRIPTING_WXPYTHON_PHOENIX=ON
	KICAD_SCRIPTING_ACTION_MENU=ON
	KICAD_USE_OCC=ON
	KICAD_SPICE=ON
Edited by Jon Evans