A number of KiCad users reproduce historical PCBs and new PCBs inspired by old designs.
I am wondering the best approach to surround signal pads with a ground line of equal distance away from the signal pads and their traces. In this example, there is 1/32" of space between line and pad, and each offset line is 3/64" thick. The edges have a rounded curve.
In the attached example PCB, the ground lines are highlighted with red arrows. FYI, the PCB is a circuit board for a capacitive signal keyboard.
I have looked into exporting an SVG from KiCad to inkscape and using the offset options there, but the results are not as expected. Essentially inkscape does not offset lines as they do boxes, even after trying various group/combine/etc. options for paths. Drawing lines by hand is an option, but there would be several thousand lines needed for the various designs being worked on. CAD programs may be an option, but best to avoid as they are complicated.
Of course a normal copper pour would probably be functionally identical, but not historically accurate.
Unfortunately that did not work, but thanks for that idea - I tried to reproduce this behavior with my PCB’s rectangles and trace lines but was unable to. There was no hugging of the trace lines.
To test this, I quickly drew some rectangles and traces on a new PCB and tried out various combinations of interactive router settings.
You’ve got a nice clean flat PCB. Put it though a flatbed scanner, cleanup the graphics and import it into KiCad. You can also attempt some software to vectorize bitmaps (it’s a market I do not have much knowledge about).
Recent KiCad behavior as improved to the point that imported graphics can be used as conductive copper.
3dogs I don’t really have one but I took a sample project and added some boxes for testing, though anyone can just draw some boxes and lines on the copper layer for testing if they do not want to download the file. kicad-sample-prj-master.zip (29.9 KB)
paul I am making new designs, not scanning originals, but thanks for your reply; that would be something to think about!
You’ve got something to experiment with
Maybe a mixed mode design would work for you.
Design the circuit in KiCad.
Export as SVG to some graphics program.
Design some fancy graphics.
Import fancy graphics into KiCad.
Continue, repeat if necessary.
KiCad is quite capable in the track layout, but not very good at fancy graphics, so using the software that works best for each task seems sensible. If you do this, then define some common reference you can use in both programs.
Just exporting a block to SVG does not seem to work (In KiCad V8) You can define the fancy graphics as a footprint. That keeps it separate from the rest of the PCB and easy to update.
Thanks paul; I mentioned in my OP that I tried this approach by exporting to an editor and it was not successful.
I also am not sure how to bring it back in to Kicad from an SVG. The Stretch plugin does not work on a freshly installed, fully updated system (maybe some of the dependencies or the plugin itself is not tested with the latest version of the dependencies or KiCad).
I just tried: PCB Editor / File / Export / SVG and exported a whole copper layer to SVG. Then opened it in Inkscape. That worked without any problem.
Then I drew a square in Inkscape, saved it (as SVG), and then PCB Editor / File / Import / Graphics, and imported the square on F.Cu. Also without problem. The square was imported as a group, and after ungrouping it in KiCad, I can drag individual corners around. No problem there. I have also opened a random footprint in the Footprint Editor, and then imported the same square in a footprint. Also without problems.
But please don’t ask me how Inkscape works, I am already amazed I could draw a square in it. This is a KiCad forum after all. As a bonus I did a little search: inkscape offset at DuckDuckGo and it shows plenty of tutorials (Text and/or video) of how to create offsets in Inkscape, so apparently it’s capable of doing so.
Last bonus: I also did a quick: SVG editor at DuckDuckGo and apparently there are plenty of other editors that can work with SVG.
Interesting, but the goal here is automation and minimizing manual work. Drawing the boundaries for a copper pour for staggered boxes whose trace line positions vary would also involve a perhaps equal amount of custom line drawing.
Yes, in the intended design, the surrounds are all GND and the rectangles and traces are signals. I am still learning KiCad so please do correct my files as needed for testing.
Also I am not looking for soldermask cutouts. The soldermask is full and there is no exposed copper outside of the through holes connecting to the controller. If you are suggesting that I can somehow do a copper pour and then erase all but the 3/64" line around all signals, that would be great if there were automated or semi-automated steps to do that (does anyone know how that could be easily accomplished?). The gold in the PCB photo is the copper traces and the green is the area of PCB with no copper on that side.
Wouldn’t a gnd zone with clearance setting produce what you desire?
If you want it to “hug” the pads as shown in the image in the OP… a bit more effort for sure. the DRC rules should be able to manage this though by setting a maximum width and then suitable clearance
I’m not an expert on capacitive touch panels, but I would not assume that it would work properly if you fill in all the area with copper, whether or not it is historically accurate. There looks like additional related structures on the bottom side as well, so you may not want to cover them up.
One idea would be to place the buttons, and then use a fill with enough clearance from the active pads to give the appropriate width to accommodate the surrounding ground traces. Assign this fill to a dummy net. Then, pour ground with to fill in the gap between the dummy net and the pads. Finally, delete the dummy fill.
You might need some custom DRC rules, and there might be some other gotchas. It’s just my first thought about how I would approach it.
Thanks to everyone for their help. Inspired by the suggestions to make a copper pour, I drew a rectangle with precise dimensions and placement around the pad, converted it to a to zone/copper pour with the clearance 1/32”, min width 5/64”, and for the trace lines I drew a rectangle around a trace with the same specifications as above, converted it to a to zone/copper pour, and everything is working as expected! I do not consider the matter resolved as someone may have a better way to accomplish this, but I think this is a good workaround that is mostly automated.
This results in the precise specifications that I was hoping for, without needing to go into any other programs.