Ever since I started using 3D printing for PCB fixtures and jigs, I’ve imagined an auto-generated soldering fixture for through-hole parts. In my mind it would “simply” be a matter of generating the model for the assembled PCB, subtracting that from a block and voila, you have an inverse of the assembly to hold all the THT parts upside down while they’re soldered to the underside of the PCB. Wrap the magic in a little KiCad plugin and we’re done.
Well I had occasion to give it a go. I have a PCB with top-side components only and a good mixture of SMD and THT.
I didn’t find much prior art, though I struggled to come up with good search terms. This is the best I found: Creating 3D model of a PCB holder for soldering
After some experimenting with the STEP format and exploring some options in FreeCAD, I imported the model into Fusion360 and tried out the plan:
A block and an inverted PCB. Now subtract.
Ah… I got exactly what I asked for, which is not nearly what I wanted. All my lovely models of course, have accurate internal voids, which don’t get subtracted. What I’d really like to do is press the model into the block and subtract anything that touches. Again, my search for solutions to this task came up empty, so I tried manually lowering the model 0.5mm at a time into the block and repeatedly subtracting. But my models were too clever for that, with lots of features finer than 0.5mm that get left behind.
And still, this perfect inverse concept has other issues - I need some wiggle room around each component to accommodate tolerances, and if just one component model is wrong I run the risk of the whole fixture not fitting because it fouls on one feature.
So I dialled my aspirations right back and started with a MVP. The job of THT soldering gets a lot easier if each component is simply held up against the PCB. Alignment is still an issue, but at least the component will sit flat against the PCB.
I hid the PCB itself, manually drew rectangles around each of the same-height THT components, and then pulled each of them up to kiss the closest face of the component.
I’m a long way from my auto-generated, component cradling nirvana, but at least from here I can experiment, demonstrate and find folks who know better!
Speaking of, I realise now thinking of this as a KiCad thing might have been limiting. I really value the community here, but if there’s a more appropriate forum I’m all ears.