Added new switch footprints, updated reversibility functionality, integrated hotswap footprints, added orientation to promicro, alphabetized index, and added net and paramter documentation

This commit is contained in:
tapioki
2021-05-23 23:13:17 +02:00
committed by Bán Dénes
parent 3e78e6e557
commit 1ff7e0746e
13 changed files with 483 additions and 377 deletions

View File

@@ -1,12 +1,25 @@
// Any MX switch
// Nets
// from: corresponds to pin 1
// to: corresponds to pin 2
// Params
// hotswap: default is false
// if true, will include holes and pads for Kailh MX hotswap sockets
// reverse: default is false
// if true, will flip the footprint such that the pcb can be reversible
//
// note: hotswap and reverse can be used simultaneously
module.exports = {
nets: ['from', 'to'],
params: {
class: 'S'
class: 'S',
hotswap: false,
reverse: false
},
body: p => `
(module MX (layer F.Cu) (tedit 5DD4F656)
body: p => {
const standard = `
(module MX (layer F.Cu) (tedit 5DD4F656)
${p.at /* parametric position */}
${'' /* footprint reference */}
@@ -22,18 +35,45 @@ module.exports = {
(fp_line (start 7 -7) (end 6 -7) (layer Dwgs.User) (width 0.15))
(fp_line (start 6 7) (end 7 7) (layer Dwgs.User) (width 0.15))
(fp_line (start 7 -7) (end 7 -6) (layer Dwgs.User) (width 0.15))
${''/* pins */}
(pad 1 thru_hole circle (at 2.54 -5.08) (size 2.286 2.286) (drill 1.4986) (layers *.Cu *.Mask) ${p.net.from})
(pad 2 thru_hole circle (at -3.81 -2.54) (size 2.286 2.286) (drill 1.4986) (layers *.Cu *.Mask) ${p.net.to})
${''/* middle shaft */}
(pad "" np_thru_hole circle (at 0 0) (size 3.9878 3.9878) (drill 3.9878) (layers *.Cu *.Mask))
${''/* stabilizers */}
(pad "" np_thru_hole circle (at 5.08 0) (size 1.7018 1.7018) (drill 1.7018) (layers *.Cu *.Mask))
(pad "" np_thru_hole circle (at -5.08 0) (size 1.7018 1.7018) (drill 1.7018) (layers *.Cu *.Mask))
)
`
)
`
function pins(def_neg, def_pos, def_side) {
if(p.param.hotswap == TRUE) {
return `
${'' /* holes */}
(pad "" np_thru_hole circle (at ${def_pos}2.54 -5.08) (size 3 3) (drill 3) (layers *.Cu *.Mask))
(pad "" np_thru_hole circle (at ${def_neg}3.81 -2.54) (size 3 3) (drill 3) (layers *.Cu *.Mask))
${'' /* net pads */}
(pad 1 smd rect (at ${def_neg}7.085 -2.54 180) (size 2.55 2.5) (layers ${def_side}.Cu ${def_side}.Paste ${def_side}.Mask) ${p.net.from})
(pad 2 smd rect (at ${def_pos}5.842 -5.08 180) (size 2.55 2.5) (layers ${def_side}.Cu ${def_side}.Paste ${def_side}.Mask) ${p.net.to})
`
} else {
return `
${''/* pins */}
(pad 1 thru_hole circle (at ${def_pos}2.54 -5.08) (size 2.286 2.286) (drill 1.4986) (layers *.Cu *.Mask) ${p.net.from})
(pad 2 thru_hole circle (at ${def_neg}3.81 -2.54) (size 2.286 2.286) (drill 1.4986) (layers *.Cu *.Mask) ${p.net.to})
`
}
}
if(p.param.reverse){
return `
${standard}
${pins('-', '', 'B')}
${pins('', '-', 'F')})
`
} else {
return `
${standard}
${pins('-', '', 'B')})
`
}
}
}