diff --git a/ergogen/footprints/choc_pretty.js b/ergogen/footprints/choc_pretty.js index b1e69fa..7d56155 100644 --- a/ergogen/footprints/choc_pretty.js +++ b/ergogen/footprints/choc_pretty.js @@ -33,12 +33,6 @@ module.exports = { (fp_text reference "${p.ref}" (at 0 0) (layer F.SilkS) ${p.ref_hide} (effects (font (size 1.27 1.27) (thickness 0.15)))) (fp_text value "" (at 0 0) (layer F.SilkS) hide (effects (font (size 1.27 1.27) (thickness 0.15)))) - ${'' /* switch marks */} - (fp_line (start -7 -7) (end 7 -7) (layer F.SilkS) (width 0.15)) - (fp_line (start 7 -7) (end 7 7) (layer F.SilkS) (width 0.15)) - (fp_line (start 7 7) (end -7 7) (layer F.SilkS) (width 0.15)) - (fp_line (start -7 7) (end -7 -7) (layer F.SilkS) (width 0.15)) - ${'' /* LED hole marks */} (fp_line (start -2.6 3.1) (end 2.6 3.1) (layer Dwgs.User) (width 0.15)) (fp_line (start 2.6 3.1) (end 2.6 6.3) (layer Dwgs.User) (width 0.15)) @@ -51,67 +45,86 @@ module.exports = { ${'' /* stabilizers */} (pad "" np_thru_hole circle (at 5.5 0) (size 1.7018 1.7018) (drill 1.7018) (layers *.Cu *.Mask)) (pad "" np_thru_hole circle (at -5.5 0) (size 1.7018 1.7018) (drill 1.7018) (layers *.Cu *.Mask)) - ` + `; + const keycap = ` ${'' /* keycap marks */} (fp_line (start -9 -8.5) (end 9 -8.5) (layer Dwgs.User) (width 0.15)) (fp_line (start 9 -8.5) (end 9 8.5) (layer Dwgs.User) (width 0.15)) (fp_line (start 9 8.5) (end -9 8.5) (layer Dwgs.User) (width 0.15)) (fp_line (start -9 8.5) (end -9 -8.5) (layer Dwgs.User) (width 0.15)) - ` + `; + + function switch_marks(reversed) { + let def_side = reversed ? 'F' : 'B'; + + return ` + ${'' /* switch marks */} + (fp_line (start -7 -7) (end 7 -7) (layer ${def_side}.SilkS) (width 0.15)) + (fp_line (start 7 -7) (end 7 7) (layer ${def_side}.SilkS) (width 0.15)) + (fp_line (start 7 7) (end -7 7) (layer ${def_side}.SilkS) (width 0.15)) + (fp_line (start -7 7) (end -7 -7) (layer ${def_side}.SilkS) (width 0.15)) + `; + } + + function pins(reversed) { + let def_neg = reversed ? '' : '-'; + let def_pos = reversed ? '-' : ''; + let def_side = reversed ? 'F' : 'B'; + let def_pin1 = reversed ? p.to : p.from; + let def_pin2 = reversed ? p.from : p.to; - function pins(def_neg, def_pos, def_side) { if (p.hotswap) { return ` ${'' /* hotswap socket marks */} - (fp_line (start 7 -5.6) (end 7 -6.2) (layer B.SilkS) (width 0.15)) - (fp_line (start -1.5 -3.7) (end 1 -3.7) (layer B.SilkS) (width 0.15)) - (fp_arc (start 1 -2.2) (end 2.5 -2.2) (angle -90) (layer B.SilkS) (width 0.15)) - (fp_line (start 1.5 -8.2) (end 2 -7.7) (layer B.SilkS) (width 0.15)) - (fp_line (start 2 -6.7) (end 2 -7.7) (layer B.SilkS) (width 0.15)) - (fp_line (start 7 -6.2) (end 2.5 -6.2) (layer B.SilkS) (width 0.15)) - (fp_line (start -2 -4.2) (end -1.5 -3.7) (layer B.SilkS) (width 0.15)) - (fp_line (start -2 -7.7) (end -1.5 -8.2) (layer B.SilkS) (width 0.15)) - (fp_line (start -1.5 -8.2) (end 1.5 -8.2) (layer B.SilkS) (width 0.15)) - (fp_arc (start 2.5 -6.7) (end 2 -6.7) (angle -90) (layer B.SilkS) (width 0.15)) - (fp_line (start 2.5 -2.2) (end 2.5 -1.5) (layer B.SilkS) (width 0.15)) - (fp_line (start 2.5 -1.5) (end 7 -1.5) (layer B.SilkS) (width 0.15)) - (fp_line (start 7 -1.5) (end 7 -2 ) (layer B.SilkS) (width 0.15)) + (fp_line (start ${def_pos}7 -5.6) (end ${def_pos}7 -6.2) (layer ${def_side}.SilkS) (width 0.15)) + (fp_line (start ${def_neg}1.5 -3.7) (end ${def_pos}1 -3.7) (layer ${def_side}.SilkS) (width 0.15)) + (fp_arc (start ${def_pos}1 -2.2) (end ${def_pos}2.5 -2.2) (angle ${def_neg}90) (layer ${def_side}.SilkS) (width 0.15)) + (fp_line (start ${def_pos}1.5 -8.2) (end ${def_pos}2 -7.7) (layer ${def_side}.SilkS) (width 0.15)) + (fp_line (start ${def_pos}2 -6.7) (end ${def_pos}2 -7.7) (layer ${def_side}.SilkS) (width 0.15)) + (fp_line (start ${def_pos}7 -6.2) (end ${def_pos}2.5 -6.2) (layer ${def_side}.SilkS) (width 0.15)) + (fp_line (start ${def_neg}2 -4.2) (end ${def_neg}1.5 -3.7) (layer ${def_side}.SilkS) (width 0.15)) + (fp_line (start ${def_neg}2 -7.7) (end ${def_neg}1.5 -8.2) (layer ${def_side}.SilkS) (width 0.15)) + (fp_line (start ${def_neg}1.5 -8.2) (end ${def_pos}1.5 -8.2) (layer ${def_side}.SilkS) (width 0.15)) + (fp_arc (start ${def_pos}2.5 -6.7) (end ${def_pos}2 -6.7) (angle ${def_neg}90) (layer ${def_side}.SilkS) (width 0.15)) + (fp_line (start ${def_pos}2.5 -2.2) (end ${def_pos}2.5 -1.5) (layer ${def_side}.SilkS) (width 0.15)) + (fp_line (start ${def_pos}2.5 -1.5) (end ${def_pos}7 -1.5) (layer ${def_side}.SilkS) (width 0.15)) + (fp_line (start ${def_pos}7 -1.5) (end ${def_pos}7 -2 ) (layer ${def_side}.SilkS) (width 0.15)) - (fp_arc (start 2.5 -6.7 ) (end 2 -6.7 ) (angle -90) (layer B.Fab) (width 0.15)) - (fp_line (start -1.5 -8.2 ) (end 1.5 -8.2 ) (layer B.Fab) (width 0.15)) - (fp_line (start -2 -7.7 ) (end -1.5 -8.2 ) (layer B.Fab) (width 0.15)) - (fp_line (start -1.5 -3.7 ) (end 1 -3.7 ) (layer B.Fab) (width 0.15)) - (fp_line (start -2 -4.2 ) (end -1.5 -3.7 ) (layer B.Fab) (width 0.15)) - (fp_line (start 7 -6.2 ) (end 2.5 -6.2 ) (layer B.Fab) (width 0.15)) - (fp_line (start 2 -6.7 ) (end 2 -7.7 ) (layer B.Fab) (width 0.15)) - (fp_line (start 1.5 -8.2 ) (end 2 -7.7 ) (layer B.Fab) (width 0.15)) - (fp_arc (start 1 -2.2 ) (end 2.5 -2.2 ) (angle -90) (layer B.Fab) (width 0.15)) - (fp_line (start 2.5 -1.5 ) (end 7 -1.5 ) (layer B.Fab) (width 0.15)) - (fp_line (start 2.5 -2.2 ) (end 2.5 -1.5 ) (layer B.Fab) (width 0.15)) - (fp_line (start -2 -4.25) (end -2 -7.7 ) (layer B.Fab) (width 0.12)) - (fp_line (start 7 -1.5 ) (end 7 -6.2 ) (layer B.Fab) (width 0.12)) - (fp_line (start 7 -5 ) (end 9.5 -5 ) (layer B.Fab) (width 0.12)) - (fp_line (start 9.5 -5 ) (end 9.5 -2.5 ) (layer B.Fab) (width 0.12)) - (fp_line (start 9.5 -2.5 ) (end 7 -2.5 ) (layer B.Fab) (width 0.12)) - (fp_line (start -2 -4.75) (end -4.5 -4.75) (layer B.Fab) (width 0.12)) - (fp_line (start -4.5 -4.75) (end -4.5 -7.25) (layer B.Fab) (width 0.12)) - (fp_line (start -4.5 -7.25) (end -2 -7.25) (layer B.Fab) (width 0.12)) + (fp_arc (start ${def_pos}2.5 -6.7 ) (end ${def_pos}2 -6.7 ) (angle ${def_neg}90) (layer ${def_side}.Fab) (width 0.15)) + (fp_line (start ${def_neg}1.5 -8.2 ) (end ${def_pos}1.5 -8.2 ) (layer ${def_side}.Fab) (width 0.15)) + (fp_line (start ${def_neg}2 -7.7 ) (end ${def_neg}1.5 -8.2 ) (layer ${def_side}.Fab) (width 0.15)) + (fp_line (start ${def_neg}1.5 -3.7 ) (end ${def_pos}1 -3.7 ) (layer ${def_side}.Fab) (width 0.15)) + (fp_line (start ${def_neg}2 -4.2 ) (end ${def_neg}1.5 -3.7 ) (layer ${def_side}.Fab) (width 0.15)) + (fp_line (start ${def_pos}7 -6.2 ) (end ${def_pos}2.5 -6.2 ) (layer ${def_side}.Fab) (width 0.15)) + (fp_line (start ${def_pos}2 -6.7 ) (end ${def_pos}2 -7.7 ) (layer ${def_side}.Fab) (width 0.15)) + (fp_line (start ${def_pos}1.5 -8.2 ) (end ${def_pos}2 -7.7 ) (layer ${def_side}.Fab) (width 0.15)) + (fp_arc (start ${def_pos}1 -2.2 ) (end ${def_pos}2.5 -2.2 ) (angle ${def_neg}90) (layer ${def_side}.Fab) (width 0.15)) + (fp_line (start ${def_pos}2.5 -1.5 ) (end ${def_pos}7 -1.5 ) (layer ${def_side}.Fab) (width 0.15)) + (fp_line (start ${def_pos}2.5 -2.2 ) (end ${def_pos}2.5 -1.5 ) (layer ${def_side}.Fab) (width 0.15)) + (fp_line (start ${def_neg}2 -4.25) (end ${def_neg}2 -7.7 ) (layer ${def_side}.Fab) (width 0.12)) + (fp_line (start ${def_pos}7 -1.5 ) (end ${def_pos}7 -6.2 ) (layer ${def_side}.Fab) (width 0.12)) + (fp_line (start ${def_pos}7 -5 ) (end ${def_pos}9.5 -5 ) (layer ${def_side}.Fab) (width 0.12)) + (fp_line (start ${def_pos}9.5 -5 ) (end ${def_pos}9.5 -2.5 ) (layer ${def_side}.Fab) (width 0.12)) + (fp_line (start ${def_pos}9.5 -2.5 ) (end ${def_pos}7 -2.5 ) (layer ${def_side}.Fab) (width 0.12)) + (fp_line (start ${def_neg}2 -4.75) (end ${def_neg}4.5 -4.75) (layer ${def_side}.Fab) (width 0.12)) + (fp_line (start ${def_neg}4.5 -4.75) (end ${def_neg}4.5 -7.25) (layer ${def_side}.Fab) (width 0.12)) + (fp_line (start ${def_neg}4.5 -7.25) (end ${def_neg}2 -7.25) (layer ${def_side}.Fab) (width 0.12)) ${'' /* holes */} (pad "" np_thru_hole circle (at ${def_pos}5 -3.75) (size 3 3) (drill 3) (layers *.Cu *.Mask)) (pad "" np_thru_hole circle (at 0 -5.95) (size 3 3) (drill 3) (layers *.Cu *.Mask)) ${'' /* net pads */} - (pad 1 smd rect (at ${def_neg}3.275 -5.95 ${p.r}) (size 2.6 2.6) (layers ${def_side}.Cu ${def_side}.Paste ${def_side}.Mask) ${p.from}) - (pad 2 smd rect (at ${def_pos}8.275 -3.75 ${p.r}) (size 2.6 2.6) (layers ${def_side}.Cu ${def_side}.Paste ${def_side}.Mask) ${p.to}) - ` + (pad 1 smd rect (at ${def_neg}3.275 -5.95 ${p.r}) (size 2.6 2.6) (layers ${def_side}.Cu ${def_side}.Paste ${def_side}.Mask) ${def_pin1}) + (pad 2 smd rect (at ${def_pos}8.275 -3.75 ${p.r}) (size 2.6 2.6) (layers ${def_side}.Cu ${def_side}.Paste ${def_side}.Mask) ${def_pin2}) + `; } else { return ` ${'' /* pins */} - (pad 1 thru_hole circle (at ${def_pos}5 -3.8) (size 2.032 2.032) (drill 1.27) (layers *.Cu *.Mask) ${p.from}) - (pad 2 thru_hole circle (at ${def_pos}0 -5.9) (size 2.032 2.032) (drill 1.27) (layers *.Cu *.Mask) ${p.to}) - ` + (pad 1 thru_hole circle (at ${def_pos}5 -3.8) (size 2.032 2.032) (drill 1.27) (layers *.Cu *.Mask) ${def_pin1}) + (pad 2 thru_hole circle (at ${def_pos}0 -5.9) (size 2.032 2.032) (drill 1.27) (layers *.Cu *.Mask) ${def_pin2}) + `; } } @@ -119,15 +132,18 @@ module.exports = { return ` ${standard} ${p.keycaps ? keycap : ''} - ${pins('-', '', 'B')} - ${pins('', '-', 'F')}) - ` + ${switch_marks(false)} + ${switch_marks(true)} + ${pins(false)} + ${pins(true)} + )`; } else { return ` ${standard} ${p.keycaps ? keycap : ''} - ${pins('-', '', 'B')}) - ` + ${switch_marks(false)} + ${pins(false)} + )`; } } }