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:
@@ -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')})
|
||||
`
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user