kicad-footprint-generator
kicad-footprint-generator copied to clipboard
Samtec Q Strip/Q Pairs, Basic Blade & Beam, Razor Beam, and mPOWER connector generators
I wrote this script (and YAML file) to generate nearly every common vertical configuration of the Samtec Q Strip and Q Pairs connector families. It was developed as a result of my work in the kicad-footprint-library. I tried to make the code and data files as clean as possible so that they can hopefully be used as a solid starting point for future contributions.
This PR also contains a hack to work around #395. This was necessary in order get the the script to run.
Code Climate has analyzed commit d03cf162 and detected 0 issues on this pull request.
View more on Code Climate.
As noted in the footprint pull request, I've begun work on the right-angled version of this script. I'm also working on a more generic Razor Beam script. A few of the LSHM footprints already exist in the official library, but my script will be able to implement all of the vertical LSHM, LSS, and LSEM parts.
I've made some minor updates to the QStrip_QPairs_Vertical script to renumber the plane pads. Since these pads are all connected per-bank, I've numbered them P1, P2, etc. with their corresponding banks.
I've also added a RazorBeam_Vertical script capable of generating LSHM and LSEM-series connector footprints. This script does not currently support the LSS connectors since they have a different body shape.
The QStrip_QPairs_Horizontal script is currently a work-in-progress concept that I may or may not end up implementing.
I've added a module to the tools directory called dict_tools.py
. Currently, it has a function that recursively merges dict
objects, and a function that applies a type of "inheritance" to hierarchical dict
objects. This enables a drastic reduction in redundancy within certain JSON/YAML files (much more so than the YAML anchor/reference system). See QStrip_Vertical.json for an example of how the the dictInherit()
function can be used to reduce redundancy.
Here's my current progress on this PR
- [x] QStrip_Vertical.py
- [x] Q Strip/Q Pairs vertical connectors
- [x] Basic Blade & Beam vertical connectors
- [ ] ~~Q Strip_Horizontal.py~~
- [ ] ~~Q Strip/Q Pairs horizontal connectors~~
- [ ] ~~Basic Blade & Beam horizontal connectors~~
- [x] RazorBeam_Vertical.py
- [x] Razor Beam vertical connectors (require migration to JSON)
Needless to say, the scope of this PR has expanded since its original introduction.
@chschlue Should I make a separate PR for the dict inheritance script so it can be added to the main repo sooner?
Yes, please.