kicad-footprint-generator icon indicating copy to clipboard operation
kicad-footprint-generator copied to clipboard

Samtec Q Strip/Q Pairs, Basic Blade & Beam, Razor Beam, and mPOWER connector generators

Open calebreister opened this issue 5 years ago • 7 comments

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.

calebreister avatar Jul 22 '19 19:07 calebreister

Code Climate has analyzed commit d03cf162 and detected 0 issues on this pull request.

View more on Code Climate.

codeclimate[bot] avatar Jul 22 '19 19:07 codeclimate[bot]

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.

calebreister avatar Jun 01 '20 17:06 calebreister

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.

calebreister avatar Jul 08 '20 17:07 calebreister

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.

calebreister avatar Aug 23 '20 02:08 calebreister

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.

calebreister avatar Aug 26 '20 03:08 calebreister

@chschlue Should I make a separate PR for the dict inheritance script so it can be added to the main repo sooner?

calebreister avatar Aug 26 '20 03:08 calebreister

Yes, please.

chschlue avatar Aug 26 '20 03:08 chschlue