Skip to content
This repository has been archived by the owner on Oct 7, 2020. It is now read-only.

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

Open
wants to merge 67 commits into
base: master
Choose a base branch
from

Conversation

calebreister
Copy link
Contributor

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.

Caleb Reister added 22 commits July 11, 2019 00:25
Update QStrip_Vertical.yaml structure/parameters
finish adding QTS-series connectors to QStrip_Vertical.yaml
pin generation issue in QStrip_Vertical.py
@codeclimate
Copy link

codeclimate bot commented Jul 22, 2019

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

View more on Code Climate.

@calebreister
Copy link
Contributor Author

calebreister commented Jun 1, 2020

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
Copy link
Contributor Author

calebreister commented Aug 23, 2020

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.

@chschlue chschlue added the Pointhi pending Touches KiCadModTree itself so needs input by pointhi label Aug 25, 2020
@calebreister
Copy link
Contributor Author

calebreister commented Aug 26, 2020

Here's my current progress on this PR

  • QStrip_Vertical.py
    • Q Strip/Q Pairs vertical connectors
    • Basic Blade & Beam vertical connectors
  • Q Strip_Horizontal.py
    • Q Strip/Q Pairs horizontal connectors
    • Basic Blade & Beam horizontal connectors
  • RazorBeam_Vertical.py
    • Razor Beam vertical connectors (require migration to JSON)

Needless to say, the scope of this PR has expanded since its original introduction.

@calebreister
Copy link
Contributor Author

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

@chschlue
Copy link
Collaborator

Yes, please.

Caleb Reister added 11 commits August 28, 2020 20:12
dict_tools.py:
    Add support for "+key" parameters in the b argument that are added
    to the corresponding "key" in a. This makes it possible to extend
    existing objects (such as list or str) or add to numeric objects

QStrip_Vertical.py:
- Outdated block comment
- "add-tags" special case

QStrip_Vertical.json
- "add-tags" paramters
+ "layout": {"+tags"} parameters

RazorBeam_Vertical.py:
+ dictInherit() support
- Special cases made unnecessary by "+key" support it dictMerge()

Create RazorBeam_Vertical.json: LSHM, LSS, and LSEM footprint specs
Descriptions are now fully comma-delimited and datasheet links were
moved to the end so that they appear correctly in the footprint browser

Signed-off-by: Caleb Reister <[email protected]>
@calebreister calebreister changed the title Samtec Q Strip/Q Pairs and RazorBeam connector generators Samtec Q Strip/Q Pairs, Basic Blade & Beam, Razor Beam, and mPOWER connector generators Sep 21, 2020
Caleb Reister added 2 commits September 22, 2020 20:02
Fixed: pin placement/numbering error introduced in 19a4add
Changed: simplify plane pad code in preparation to add Q2 support
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Pointhi pending Touches KiCadModTree itself so needs input by pointhi
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants