From 65e0fb66c649cdec4313f07a5b388afddd52232e Mon Sep 17 00:00:00 2001 From: Emily Zeng Date: Sat, 28 Oct 2023 01:10:18 -0400 Subject: [PATCH] added mounting, case --- config.yaml | 141 +++++++++++++++++++++++++++++++++++-- footprints/mountinghole.js | 31 ++++++++ 2 files changed, 165 insertions(+), 7 deletions(-) create mode 100644 footprints/mountinghole.js diff --git a/config.yaml b/config.yaml index 8239c69..84dad0b 100644 --- a/config.yaml +++ b/config.yaml @@ -8,6 +8,27 @@ units: py: ky + 2 center_x: 112.65 center_y: -127 + # Defaults to M2 Screws + screwSize: 1.5 + standoffSize: 2.5 + # 65.9, 81 + mounting_1_x: center_x-46.75 + mounting_1_y: center_y+46 + # 146.65, 81 + mounting_2_x: center_x+34 + mounting_2_y: center_y+46 + # 158.5, 146 mm + mounting_3_x: center_x+45.85 + mounting_3_y: center_y-19 + # 125.65, 172 + mounting_4_x: center_x+13 + mounting_4_y: center_y-45 + # 102.65, 142 + mounting_5_x: center_x-10 + mounting_5_y: center_y-15 + # 65.9, 138 + mounting_6_x: center_x-46.75 + mounting_6_y: center_y-11.0 points: zones: matrix: @@ -113,14 +134,101 @@ outlines: - shift: [-23.5, 23.5] - shift: [-51.5, 0] fillet: 2 + case_outline_xl: + - what: polygon + points: + - shift: [center_x-59, center_y+58] + - shift: [119, 0] + - shift: [0, -119] + - shift: [-43, 0] + - shift: [-23.5, 23.5] + - shift: [-52.5, 0] + fillet: 2 + mounting: + - what: circle + where.shift: [mounting_1_x, mounting_1_y] + radius: screwSize + - what: circle + where.shift: [mounting_2_x, mounting_2_y] + radius: screwSize + - what: circle + where.shift: [mounting_3_x, mounting_3_y] + radius: screwSize + - what: circle + where.shift: [mounting_4_x, mounting_4_y] + radius: screwSize + - what: circle + where.shift: [mounting_5_x, mounting_5_y] + radius: screwSize + - what: circle + where.shift: [mounting_6_x, mounting_6_y] + radius: screwSize + standoff: + - what: circle + where.shift: [mounting_1_x, mounting_1_y] + radius: standoffSize + - what: circle + where.shift: [mounting_2_x, mounting_2_y] + radius: standoffSize + - what: circle + where.shift: [mounting_3_x, mounting_3_y] + radius: standoffSize + - what: circle + where.shift: [mounting_4_x, mounting_4_y] + radius: standoffSize + - what: circle + where.shift: [mounting_5_x, mounting_5_y] + radius: standoffSize + - what: circle + where.shift: [mounting_6_x, mounting_6_y] + radius: standoffSize case_outline_combo: - name: case_outline - - operation: stack - name: pcb_outline - - operation: stack - name: keys - - operation: stack - name: thumb + - ^case_outline_xl + - ^pcb_outline + - ^keys + - ^thumb + - ^mounting + - ^standoff +cases: + bottom: + - name: case_outline + extrude: 1 + xlBottom: + - name: case_outline_xl + extrude: 1 + _outerWall: + - name: case_outline_xl + extrude: 5.6 + _innerWall: + - name: case_outline + extrude: 5.6 + wall: + - what: case + name: _outerWall + operation: add + - what: case + name: _innerWall + operation: subtract + _holes: + - name: mounting + extrude: 4 + _standoffs: + - name: standoff + extrude: 4 + case: + - what: case + name: _standoffs + operation: add + - what: case + name: _holes + operation: subtract + - what: case + name: xlBottom + operation: add + - what: case + name: wall + operation: add pcbs: board: outlines.edge: @@ -206,7 +314,26 @@ pcbs: jst: what: jstph_reversible where: - shift: [center_x-11, center_y-17] + shift: [center_x-11, center_y-28.5] + rotate: 180 params: pos: Bplus neg: GND + mounting_hole_1: + what: mountinghole + where.shift: [mounting_1_x, mounting_1_y] + mounting_hole_2: + what: mountinghole + where.shift: [mounting_2_x, mounting_2_y] + mounting_hole_3: + what: mountinghole + where.shift: [mounting_3_x, mounting_3_y] + mounting_hole_4: + what: mountinghole + where.shift: [mounting_4_x, mounting_4_y] + mounting_hole_5: + what: mountinghole + where.shift: [mounting_5_x, mounting_5_y] + mounting_hole_6: + what: mountinghole + where.shift: [mounting_6_x, mounting_6_y] \ No newline at end of file diff --git a/footprints/mountinghole.js b/footprints/mountinghole.js new file mode 100644 index 0000000..4592aa9 --- /dev/null +++ b/footprints/mountinghole.js @@ -0,0 +1,31 @@ +// MountingHole_2.2mm_M2_Pad_Via +// TODO add more sizes as param? +module.exports = { + nets: { + net: undefined + }, + params: { + class: 'HOLE', + }, + body: p => ` + (module "MountingHole_2.2mm_M2_Pad_Via" (version 20210722) (generator pcbnew) (layer "F.Cu") + (tedit 56DDB9C7) + ${p.at /* parametric position */} + + (fp_text reference "${p.ref}" (at 0 -3.2) (layer "F.SilkS") ${p.ref_hide} + (effects (font (size 1 1) (thickness 0.15))) + (tstamp b68bb25c-687d-44b1-b966-dad4cac66b35) + ) + + (fp_circle (center 0 0) (end 2.45 0) (layer "F.CrtYd") (width 0.05) (fill none) (tstamp b2688462-c375-45d3-9095-3425fb17c88f)) + (pad "1" thru_hole circle locked (at 1.166726 1.166726) (size 0.7 0.7) (drill 0.4) (layers *.Cu *.Mask) (tstamp 2a7fc905-328f-4bbb-9222-ca8d15d03a86)) + (pad "1" thru_hole circle locked (at 0 0) (size 4.4 4.4) (drill 2.2) (layers *.Cu *.Mask) (tstamp 47ee1d53-0551-4b6d-bc24-3f3f14c73c36)) + (pad "1" thru_hole circle locked (at 0 1.65) (size 0.7 0.7) (drill 0.4) (layers *.Cu *.Mask) (tstamp 4eef65bc-4add-40d7-8319-14dcdbae0d44)) + (pad "1" thru_hole circle locked (at 1.166726 -1.166726) (size 0.7 0.7) (drill 0.4) (layers *.Cu *.Mask) (tstamp 56155f4d-2ebc-4ad4-8d82-7aa7846deba8)) + (pad "1" thru_hole circle locked (at -1.65 0) (size 0.7 0.7) (drill 0.4) (layers *.Cu *.Mask) (tstamp 787d6162-1d3c-4def-859e-6532ce27c1ef)) + (pad "1" thru_hole circle locked (at -1.166726 -1.166726) (size 0.7 0.7) (drill 0.4) (layers *.Cu *.Mask) (tstamp 8d699d12-7099-4814-bbe6-11bc74c6e8b2)) + (pad "1" thru_hole circle locked (at -1.166726 1.166726) (size 0.7 0.7) (drill 0.4) (layers *.Cu *.Mask) (tstamp 95ab0420-a56b-46ee-98ad-5072a1a93a6f)) + (pad "1" thru_hole circle locked (at 1.65 0) (size 0.7 0.7) (drill 0.4) (layers *.Cu *.Mask) (tstamp cde0acf2-b3b4-46de-9f6e-3ab519744000)) + (pad "1" thru_hole circle locked (at 0 -1.65) (size 0.7 0.7) (drill 0.4) (layers *.Cu *.Mask) (tstamp ff0de415-ae11-46fb-b780-c24aee621212)) + )` +}