I’d like to rekindle this discussion which crops up from time to time.
Back then, in KiCad 6.0.2, importing an SVG that contains polygons with internal holes would import the polygon without the hole. Something relevant was fixed in #6739, and now importing SVGs like these works as expected:
But the story doesn’t stop there, as I discovered trying to import this project. The importer does a really, really impressive job, but the silkscreen suffers the filled-hole symptom:
Just an importer issue you might think. But the issue remains no matter which way I slice it.
For example, the gerber for that layer renders just fine in Gerber Viewer:
but exporting from there to an SVG file suffers the same fate, despite the SVG itself rendering correctly in any of the several viewers I tried (ha! but not the KiCad forum apparently!!)
So I tried some other tools. gerber-to-svg and tracespace produced svgs with the same symptoms. I found tracespace view a handy way to produce the files. I tried various SVG export/manipulation/conversion techniques and couldn’t find a workaround.
Okay, so what about exporting from the Altium original? I could only find a DXF exporter, and alas it only gives me outlines.
Okay, one last option: gerber to Gerber Viewer to pcbnew file. It produced the same result just as you would expect, with one important difference: the polygons for inner holes are there! They’re additive instead of subtractive, but at least we’re not entirely lost.
After exhausting any option I could think of, I came back to this as the best starting point. Thanks to the glorious text file formats of KiCad documents, I was able to create a footprint with these graphics, and then stitch together the inner and outer polygons point by point!
Fortunately, the inner polygons were always already running in the opposite direction, so with just a couple of extra points to join the two together, I’m home.
So ultimately, I think my workaround was just to manually do what SVG is supposed to do automatically (but often doesn’t due to an exceptionally complicated standard). But while the solution is similar, I’m not sure if this is a different issue to #6739, given it affects a path that ostensibly doesn’t involve SVG (ie. gerber straight to pcbnew).
Is this a bug?