Add SMD toggle

This commit is contained in:
Marco Massarelli 2023-06-15 21:22:03 +02:00
parent 4cc670c38c
commit 77ac0a7457
1 changed files with 87 additions and 0 deletions

View File

@ -0,0 +1,87 @@
module.exports = {
params: {
designator: 'SW',
side: 'F',
reversible: false,
P1: {type: 'net', value: 'SCK'},
P2: {type: 'net', value: 'VCC'},
P3: {type: 'net', value: 'GND'},
MP: {type: 'net', value: 'GND'},
},
body: p => {
const standard_opening = `
(footprint "SW_MSK12C02-HB" (layer "${p.side}.Cu") (tedit 5F70BC98)
${p.at /* parametric position */}
(descr "12V 50mA SMD toggle switch, available at LCSC/JLCPCB (C431541)")
(attr smd)
(fp_text reference "${p.ref}" (at 0 4 ${p.rot}) (layer "${p.side}.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value "SW_MSK12C02-HB" (at 0 5.5 ${p.rot}) (layer "${p.side}.Fab")
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text user "A" (at -0.75 -2.1 ${p.rot}) (layer "Dwgs.User")
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text user "B" (at 0.8 -2.1 ${p.rot}) (layer "Dwgs.User")
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_line (start -3.4 -1.4) (end -3.4 1.4) (width 0.08) (layer "Dwgs.User"))
(fp_line (start -3.4 1.4) (end 3.4 1.4) (width 0.08) (layer "Dwgs.User"))
(fp_line (start -1.5 -2.9) (end -1.5 -1.4) (width 0.08) (layer "Dwgs.User"))
(fp_line (start -0.1 -2.9) (end -1.5 -2.9) (width 0.08) (layer "Dwgs.User"))
(fp_line (start -0.1 -1.4) (end -0.1 -2.9) (width 0.08) (layer "Dwgs.User"))
(fp_line (start 0.1 -2.9) (end 1.5 -2.9) (width 0.08) (layer "Dwgs.User"))
(fp_line (start 0.1 -1.4) (end 0.1 -2.9) (width 0.08) (layer "Dwgs.User"))
(fp_line (start 1.5 -2.9) (end 1.5 -1.4) (width 0.08) (layer "Dwgs.User"))
(fp_line (start 3.4 -1.4) (end -3.4 -1.4) (width 0.08) (layer "Dwgs.User"))
(fp_line (start 3.4 1.4) (end 3.4 -1.4) (width 0.08) (layer "Dwgs.User"))
(pad "" np_thru_hole circle (at -1.5 0 ${180 + p.rot}) (size 0.85 0.85) (drill 0.85) (layers "*.Cu" "*.Mask"))
(pad "" np_thru_hole circle (at 1.5 0 ${180 + p.rot}) (size 0.85 0.85) (drill 0.85) (layers "*.Cu" "*.Mask"))
`
const front = `
(fp_line (start -3.55 -0.65) (end -3.55 0.65) (width 0.12) (layer "F.SilkS"))
(fp_line (start -3.05 -1.55) (end 3.05 -1.55) (width 0.12) (layer "F.SilkS"))
(fp_line (start -2.7 1.55) (end -3.05 1.55) (width 0.12) (layer "F.SilkS"))
(fp_line (start 3.05 1.55) (end 2.7 1.55) (width 0.12) (layer "F.SilkS"))
(fp_line (start 3.55 0.65) (end 3.55 -0.65) (width 0.12) (layer "F.SilkS"))
(pad 1 smd roundrect (at 2.25 2 ${180 + p.rot}) (size 0.6 1.25) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.15) ${p.P1.str})
(pad 2 smd roundrect (at -0.75 2 ${180 + p.rot}) (size 0.6 1.25) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.15) ${p.P2.str})
(pad 3 smd roundrect (at -2.25 2 ${180 + p.rot}) (size 0.6 1.25) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.15) ${p.P3.str})
(pad "MP" smd roundrect (at -3.7 -1.15 ${270 + p.rot}) (size 0.7 1.1) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.15) ${p.MP.str})
(pad "MP" smd roundrect (at -3.7 1.15 ${270 + p.rot}) (size 0.7 1.1) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.15) ${p.MP.str})
(pad "MP" smd roundrect (at 3.7 -1.15 ${270 + p.rot}) (size 0.7 1.1) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.15) ${p.MP.str})
(pad "MP" smd roundrect (at 3.7 1.15 ${270 + p.rot}) (size 0.7 1.1) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.15) ${p.MP.str})
`
const back = `
(fp_line (start -3.55 -0.65) (end -3.55 0.65) (width 0.12) (layer "B.SilkS"))
(fp_line (start -3.05 -1.55) (end 3.05 -1.55) (width 0.12) (layer "B.SilkS"))
(fp_line (start -2.7 1.55) (end -3.05 1.55) (width 0.12) (layer "B.SilkS"))
(fp_line (start 3.05 1.55) (end 2.7 1.55) (width 0.12) (layer "B.SilkS"))
(fp_line (start 3.55 0.65) (end 3.55 -0.65) (width 0.12) (layer "B.SilkS"))
(pad 3 smd roundrect (at 2.25 2 ${180 + p.rot}) (size 0.6 1.25) (layers "B.Cu" "B.Paste" "B.Mask") (roundrect_rratio 0.15) ${p.P3.str})
(pad 2 smd roundrect (at -0.75 2 ${180 + p.rot}) (size 0.6 1.25) (layers "B.Cu" "B.Paste" "B.Mask") (roundrect_rratio 0.15) ${p.P2.str})
(pad 1 smd roundrect (at -2.25 2 ${180 + p.rot}) (size 0.6 1.25) (layers "B.Cu" "B.Paste" "B.Mask") (roundrect_rratio 0.15) ${p.P1.str})
(pad "MP" smd roundrect (at -3.7 -1.15 ${270 + p.rot}) (size 0.7 1.1) (layers "B.Cu" "B.Paste" "B.Mask") (roundrect_rratio 0.15) ${p.MP.str})
(pad "MP" smd roundrect (at -3.7 1.15 ${270 + p.rot}) (size 0.7 1.1) (layers "B.Cu" "B.Paste" "B.Mask") (roundrect_rratio 0.15) ${p.MP.str})
(pad "MP" smd roundrect (at 3.7 -1.15 ${270 + p.rot}) (size 0.7 1.1) (layers "B.Cu" "B.Paste" "B.Mask") (roundrect_rratio 0.15) ${p.MP.str})
(pad "MP" smd roundrect (at 3.7 1.15 ${270 + p.rot}) (size 0.7 1.1) (layers "B.Cu" "B.Paste" "B.Mask") (roundrect_rratio 0.15) ${p.MP.str})
`
const standard_closing = `
)
`
let final = standard_opening;
if(p.side == "F" || p.reversible) {
final += front;
}
if(p.side == "B" || p.reversible) {
final += back;
}
final += standard_closing;
return final;
}
}