From 2d017624b06f9ec4ecf70b05b8382dd90931beb1 Mon Sep 17 00:00:00 2001 From: Tilman Baumann Date: Tue, 28 May 2024 16:53:30 +0100 Subject: [PATCH] Better footprints mostly --- .gitmodules | 3 + input/config.yaml | 162 ++- input/footprints/ceoloide | 1 + input/footprints/choc.js | 199 --- input/footprints/diode.js | 85 -- input/footprints/icon_bat.js | 56 - input/footprints/nice_nano_pretty.js | 1820 -------------------------- input/footprints/nice_view.js | 236 ---- input/footprints/pads.js | 175 --- input/footprints/smd_0805.js | 220 ---- input/footprints/switch_power.js | 116 -- input/footprints/switch_reset.js | 90 -- input/footprints/text.js | 44 - package-lock.json | 519 +------- 14 files changed, 147 insertions(+), 3579 deletions(-) create mode 160000 input/footprints/ceoloide delete mode 100644 input/footprints/choc.js delete mode 100644 input/footprints/diode.js delete mode 100644 input/footprints/icon_bat.js delete mode 100644 input/footprints/nice_nano_pretty.js delete mode 100644 input/footprints/nice_view.js delete mode 100644 input/footprints/pads.js delete mode 100644 input/footprints/smd_0805.js delete mode 100644 input/footprints/switch_power.js delete mode 100644 input/footprints/switch_reset.js delete mode 100644 input/footprints/text.js diff --git a/.gitmodules b/.gitmodules index 4310edc..3afb707 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "input/footprints/infused-kim"] path = input/footprints/infused-kim url = git@github.com:infused-kim/kb_ergogen_fp.git +[submodule "input/footprints/ceoloide"] + path = input/footprints/ceoloide + url = git@github.com:ceoloide/ergogen-footprints.git diff --git a/input/config.yaml b/input/config.yaml index 2328426..fa70344 100644 --- a/input/config.yaml +++ b/input/config.yaml @@ -21,14 +21,11 @@ units: font_yo: 0.5 * font_y # Nice Nano - # The nice nano footprint's center doesn't account - # for the 2.54mm "overhang" of the PCB beyond the pins. - mcu_overhang_y: 2.54 mcu_spacing_x: 2.72 mcu_x: 17.78 + mcu_spacing_x - mcu_y: 30.48 + mcu_overhang_y + mcu_y: 33.02 mcu_xo: 0.5 * mcu_x - mcu_yo: 0.5 * mcu_y + 0.5 * mcu_overhang_y + mcu_yo: 0.5 * mcu_y # Nice!View display disp_x: 14 @@ -228,7 +225,7 @@ points: controller: anchor: ref: matrix_enter_f - shift: [cfx_x_1_5u/2 + mcu_xo +1, kyo -2.25 - mcu_yo] + shift: [cfx_x_1_5u/2 + mcu_xo, kyo - mcu_yo] key: name: mcu width: mcu_x @@ -340,52 +337,56 @@ outlines: pcbs: left: + template: kicad8 outlines: left: outline: pcb_left footprints: choc: - what: choc + what: ceoloide/switch_choc_v1_v2 where: - [/^matrix_.*/, key, -1_5u] - [/^spaces_.*/, key, -space] params: - keycaps: true - reverse: false + include_keycap: true + choc_v2_support: false + solder: true hotswap: true - keycaps_x: 16.5 - keycaps_y: 16.5 + keycap_width: 16.5 + keycap_height: 16.5 from: "{{colrow}}" to: "{{column_net}}" choc_1_5u: - what: choc + what: ceoloide/switch_choc_v1_v2 where: - [/^matrix_.*/, 1_5u] - /leftcluster_.*/ params: - keycaps: true - reverse: false + include_keycap: true + choc_v2_support: false + solder: true hotswap: true from: "{{colrow}}" to: "{{column_net}}" - keycaps_x: cfx_x_1_5u - keycaps_y: 16.5 + keycap_width: cfx_x_1_5u + keycap_height: 16.5 choc_space: - what: choc + what: ceoloide/switch_choc_v1_v2 where: - [/^spaces_.*/, key, -1_5u, space] params: - keycaps: true - reverse: false + include_keycap: true + choc_v2_support: false + solder: true hotswap: true - keycaps_x: cfx_x_space + keycap_width: cfx_x_space - keycaps_y: 16.5 + keycap_height: 16.5 from: "{{colrow}}" to: "{{column_net}}" diode: - what: diode + what: ceoloide/diode_tht_sod123 where: - /^matrix_.*/ - /leftcluster_.*/ @@ -393,15 +394,16 @@ pcbs: params: from: "{{colrow}}" to: "{{row_net}}" - tht: false # No through hole side: B # Bottom only adjust: shift: [-1.4, -6] rotate: 180 # Controller Area promicro: - what: promicro + what: ceoloide/mcu_nice_nano params: + reverse_mount: true + include_extra_pins: true # Pin Assignments (Controller on top facing down) # Right Side P0: "DPD" # Display Data @@ -418,7 +420,7 @@ pcbs: P9: "R7" # Row # Left Side - RAW: "BAT_P" # Battery Pos + # RAW: # Battery Pos # GND # Ground / Battery Neg # RST # Reset pin # VCC # External Power @@ -434,99 +436,110 @@ pcbs: where: ref: mcu shift: [0, 0] - rotate: -90 display: - what: nice_view + what: ceoloide/display_nice_view params: - reverse: false MOSI: DPD SCK: DPC CS: DPE - show_labels: false - jumpers_at_bottom: false where: ref: mcu - shift: [0, -1] # Move the display down a bit to be sure the cable fits between the headers + shift: [0, -1.5] # Move the display down a bit to be sure the cable fits between the headers pads_bat: - what: jstph + what: ceoloide/battery_connector_jst_ph_2 params: - pos: BAT_P - neg: GND where: ref: mcu - shift: [-batc_x, -mcu_y/2 - 5] + shift: [-batc_x, -mcu_y/2 - 6] #rotate: 270 reset: - what: button + what: ceoloide/reset_switch_smd_side params: + side: B from: GND to: RST where: - ref: mcu - shift: [batc_x, -mcu_y/2 - 8] + ref: matrix_enter_f + shift: [cfx_x_1_5u/2 + mcu_xo - 10, ky * 0.5 - 2] + power: + what: ceoloide/power_switch_smd_side + params: + side: B + # from: GND + # to: RST + adjust: + rotate: 90 + where: + ref: matrix_enter_f + shift: [cfx_x_1_5u/2 + mcu_xo, ky * 0.5 - 1.5] right: + template: kicad8 outlines: right: outline: pcb_right footprints: choc: - what: choc + what: ceoloide/switch_choc_v1_v2 where: - [/^mirror.*/, key, -1_5u, -space] - /rightcluster_.*/ params: - keycaps: true - reverse: false + include_keycap: true + choc_v2_support: false + solder: true hotswap: true - keycaps_x: 16.5 - keycaps_y: 16.5 + keycap_width: 16.5 + keycap_height: 16.5 from: "{{colrow}}" to: "{{column_net}}" choc_1_5u: - what: choc + what: ceoloide/switch_choc_v1_v2 where: - [/^mirror.*/, 1_5u] - [/rightcluster_.*/, 1_5u] - [/right.*/, 1_5u] params: - keycaps: true - reverse: false + include_keycap: true + choc_v2_support: false + solder: true hotswap: true - keycaps_x: cfx_x_1_5u - keycaps_y: 16.5 + keycap_width: cfx_x_1_5u + keycap_height: 16.5 from: "{{colrow}}" to: "{{column_net}}" choc_space: - what: choc + what: ceoloide/switch_choc_v1_v2 where: - [/^mirror.*/, key, -1_5u, space] params: - keycaps: true - reverse: false + include_keycap: true + choc_v2_support: false + solder: true hotswap: true - keycaps_x: cfx_x_space - keycaps_y: 16.5 + keycap_width: cfx_x_space + keycap_height: 16.5 from: "{{colrow}}" to: "{{column_net}}" diode: - what: diode + what: ceoloide/diode_tht_sod123 where: - [/^mirror.*/, key] - /rightcluster_.*/ params: from: "{{colrow}}" to: "{{row_net}}" - tht: false # No through hole side: B # Bottom only adjust: shift: [1.4, -6] rotate: 180 # Controller Area promicro: - what: promicro + what: ceoloide/mcu_nice_nano params: + reverse_mount: true + include_extra_pins: true # Pin Assignments (Controller on top facing down) # Right Side P0: "DPD" # Display Data @@ -543,7 +556,7 @@ pcbs: P9: "R7" # Row # Left Side - RAW: "BAT_P" # Battery Pos + # RAW: # Battery Pos # GND # Ground / Battery Neg # RST # Reset pin # VCC # External Power @@ -559,34 +572,45 @@ pcbs: where: ref: mirror_mcu shift: [0, 0] - rotate: 90 display: - what: nice_view + what: ceoloide/display_nice_view params: - reverse: false MOSI: DPD SCK: DPC CS: DPE - show_labels: false - jumpers_at_bottom: false where: ref: mirror_mcu - shift: [0, -1] # Move the display down a bit to be sure the cable fits between the headers + shift: [0, -1.5] # Move the display down a bit to be sure the cable fits between the headers pads_bat: - what: jstph + what: ceoloide/battery_connector_jst_ph_2 params: - pos: BAT_P - neg: GND where: ref: mirror_mcu - shift: [-batc_x, -mcu_y/2 - 5] + shift: [-batc_x, -mcu_y/2 - 6] #rotate: 270 reset: - what: button + what: ceoloide/reset_switch_smd_side params: + side: B from: GND to: RST + where: + ref: mirror_matrix_enter_f + shift: [cfx_x_1_5u/2 + mcu_xo - 10, ky * 0.5 - 2] + power: + what: ceoloide/power_switch_smd_side + params: + side: B + # from: GND + # to: RST + adjust: + rotate: -90 + where: + ref: mirror_matrix_enter_f + shift: [cfx_x_1_5u/2 + mcu_xo, ky * 0.5 - 1.5] + logo: + what: ceoloide/utility_ergogen_logo where: ref: mirror_mcu - shift: [batc_x, -mcu_y/2 - 8] + shift: [-batc_x, -mcu_y/2 - 15] diff --git a/input/footprints/ceoloide b/input/footprints/ceoloide new file mode 160000 index 0000000..feb194f --- /dev/null +++ b/input/footprints/ceoloide @@ -0,0 +1 @@ +Subproject commit feb194fbc753aca7074028fcc73a2d617b5975f8 diff --git a/input/footprints/choc.js b/input/footprints/choc.js deleted file mode 100644 index fb47fdd..0000000 --- a/input/footprints/choc.js +++ /dev/null @@ -1,199 +0,0 @@ -// Kailh Choc PG1350 -// 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 choc hotswap sockets -// reverse: default is false -// if true, will flip the footprint such that the pcb can be reversible -// keycaps: default is false -// if true, will add choc sized keycap box around the footprint -// -// note: hotswap and reverse can be used simultaneously -// -// Changes compared to original ergogen footprint: -// - Added hotswap socket outlines to silk screen -// - Moved switch corner marks from user layer to silk screen -// - Added option to show 1.5u keycap outline -// - Changed keycap outline to show the exact choc keycap dimensions instead of padded dimensions (17.5mm length vs 18mm) - -module.exports = { - params: { - designator: 'S', - hotswap: false, - hotswap_tht: false, - reverse: false, - keycaps: false, - keycaps_x: 18, - keycaps_y: 17, - show_1_5u_outline: false, - from: undefined, - to: undefined - }, - body: p => { - - const keycap_xo = 0.5 * p.keycaps_x; - const keycap_yo = 0.5 * p.keycaps_y; - - const standard = ` - (module PG1350 (layer F.Cu) (tedit 5DD50112) - ${p.at /* parametric position */} - (attr virtual) - - ${'' /* footprint reference */} - (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)))) - - ${''/* corner marks - front */} - (fp_line (start -7 -6) (end -7 -7) (layer F.SilkS) (width 0.15)) - (fp_line (start -7 7) (end -6 7) (layer F.SilkS) (width 0.15)) - (fp_line (start -6 -7) (end -7 -7) (layer F.SilkS) (width 0.15)) - (fp_line (start -7 7) (end -7 6) (layer F.SilkS) (width 0.15)) - (fp_line (start 7 6) (end 7 7) (layer F.SilkS) (width 0.15)) - (fp_line (start 7 -7) (end 6 -7) (layer F.SilkS) (width 0.15)) - (fp_line (start 6 7) (end 7 7) (layer F.SilkS) (width 0.15)) - (fp_line (start 7 -7) (end 7 -6) (layer F.SilkS) (width 0.15)) - - ${''/* corner marks - back */} - (fp_line (start -7 -6) (end -7 -7) (layer B.SilkS) (width 0.15)) - (fp_line (start -7 7) (end -6 7) (layer B.SilkS) (width 0.15)) - (fp_line (start -6 -7) (end -7 -7) (layer B.SilkS) (width 0.15)) - (fp_line (start -7 7) (end -7 6) (layer B.SilkS) (width 0.15)) - (fp_line (start 7 6) (end 7 7) (layer B.SilkS) (width 0.15)) - (fp_line (start 7 -7) (end 6 -7) (layer B.SilkS) (width 0.15)) - (fp_line (start 6 7) (end 7 7) (layer B.SilkS) (width 0.15)) - (fp_line (start 7 -7) (end 7 -6) (layer B.SilkS) (width 0.15)) - - - ${''/* middle shaft */} - (pad "" np_thru_hole circle (at 0 0) (size 3.429 3.429) (drill 3.429) (layers *.Cu *.Mask)) - - ${''/* 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 hotswap = ` - ${''/* Middle hole for hot swap sockets */} - (pad "" np_thru_hole circle (at 0 -5.95) (size 3 3) (drill 3) (layers *.Cu *.Mask)) - ` - - const hotswap_tht = ` - (pad 2 thru_hole circle (at 0 5.9) (size 2.032 2.032) (drill 1.27) (layers *.Cu *.Mask) ${p.to.str}) - ` - const tht = ` - (pad 2 thru_hole circle (at 0 -5.9) (size 2.032 2.032) (drill 1.27) (layers *.Cu *.Mask) ${p.to.str}) - ` - - const keycap = ` - ${'' /* keycap marks - 1u */} - (fp_line (start ${ -keycap_xo } ${ -keycap_yo }) (end ${ keycap_xo } ${ -keycap_yo }) (layer Dwgs.User) (width 0.15)) - (fp_line (start ${ keycap_xo } ${ -keycap_yo }) (end ${ keycap_xo } ${ keycap_yo }) (layer Dwgs.User) (width 0.15)) - (fp_line (start ${ keycap_xo } ${ keycap_yo }) (end ${ -keycap_xo } ${ keycap_yo }) (layer Dwgs.User) (width 0.15)) - (fp_line (start ${ -keycap_xo } ${ keycap_yo }) (end ${ -keycap_xo } ${ -keycap_yo }) (layer Dwgs.User) (width 0.15)) - ` - - function pins(def_neg, def_pos, def_side) { - let pad_1 = ` - (pad 1 connect custom (at ${def_neg}3.275 -5.95 ${p.rot}) (size 0.5 0.5) (layers ${def_side}.Cu ${def_side}.Mask) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy -1.3 -1.3) (xy -1.3 1.3) (xy 0.05 1.3) (xy 1.3 0.25) (xy 1.3 -1.3) - ) (width 0)) - ) ${p.from.str}) - `; - if(def_side == 'B') { - pad_1 = ` - (pad 1 connect custom (at ${def_neg}3.275 -5.95 ${p.rot}) (size 0.5 0.5) (layers ${def_side}.Cu ${def_side}.Mask) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy -1.3 -1.3) (xy -1.3 0.25) (xy -0.05 1.3) (xy 1.3 1.3) (xy 1.3 -1.3) - ) (width 0)) - ) ${p.from.str}) - ` - } - - const hotswap = ` - ${'' /* holes */} - (pad "" np_thru_hole circle (at ${def_pos}5 -3.75) (size 3 3) (drill 3) (layers *.Cu *.Mask)) - - ${'' /* net pads */} - ${pad_1} - (pad 2 smd rect (at ${def_pos}8.275 -3.75 ${p.rot}) (size 2.6 2.6) (layers ${def_side}.Cu ${def_side}.Paste ${def_side}.Mask) ${p.to.str}) - - ${''/* hotswap outline - front */} - (fp_line (start -2 -6.7) (end -2 -7.7) (layer "F.SilkS") (width 0.15) (tstamp 1da291cc-3aa5-4632-8f99-7dae246a7f56)) - (fp_line (start -7 -1.5) (end -7 -2) (layer "F.SilkS") (width 0.15) (tstamp 238b4f36-a253-431c-a93e-34af7da002ac)) - (fp_line (start -7 -6.2) (end -2.5 -6.2) (layer "F.SilkS") (width 0.15) (tstamp 4bee3b93-9a25-4a62-bc3b-7a216b6aba9d)) - (fp_line (start -2.5 -2.2) (end -2.5 -1.5) (layer "F.SilkS") (width 0.15) (tstamp 5193b92c-0f95-414f-9c12-4288fbf1289f)) - (fp_line (start -7 -5.6) (end -7 -6.2) (layer "F.SilkS") (width 0.15) (tstamp 7b669a9c-8885-4737-8192-e35d45fe2c93)) - (fp_line (start -1.5 -8.2) (end -2 -7.7) (layer "F.SilkS") (width 0.15) (tstamp 7e881b05-98b1-4290-99fa-d895271485f2)) - (fp_line (start -2.5 -1.5) (end -7 -1.5) (layer "F.SilkS") (width 0.15) (tstamp 8ef8ab63-d78b-49e0-89aa-d7de17fdbe74)) - (fp_line (start 2 -7.7) (end 1.5 -8.2) (layer "F.SilkS") (width 0.15) (tstamp 9b4b514c-b288-40ab-af4d-fb8827371f01)) - (fp_line (start 1.5 -3.7) (end -1 -3.7) (layer "F.SilkS") (width 0.15) (tstamp 9d6f01bf-507b-4b70-82a7-182a04da9e3f)) - (fp_line (start 1.5 -8.2) (end -1.5 -8.2) (layer "F.SilkS") (width 0.15) (tstamp c1815e63-5999-4d25-8dc0-c63ae372e426)) - (fp_line (start 2 -4.2) (end 1.5 -3.7) (layer "F.SilkS") (width 0.15) (tstamp d868ec48-42f4-4608-baef-8e135bf87a69)) - (fp_arc (start -0.91 -2.11) (end -0.8 -3.7) (angle -90) (layer F.SilkS) (width 0.15)) - (fp_arc (start -2.55 -6.75) (end -2.52 -6.2) (angle -90) (layer F.SilkS) (width 0.15)) - - ${''/* hotswap outline - back */} - (fp_line (start -1.5 -3.7) (end 1 -3.7) (layer "B.SilkS") (width 0.15) (tstamp 0ebc7e3d-c040-4c6e-aaf8-1870c68a4ff3)) - (fp_line (start 2 -6.7) (end 2 -7.7) (layer "B.SilkS") (width 0.15) (tstamp 119cd2ee-6025-406f-acfc-adcac3592135)) - (fp_line (start -2 -4.2) (end -1.5 -3.7) (layer "B.SilkS") (width 0.15) (tstamp 21f7e9f1-0a4c-49be-a4ca-8c8253ab27e6)) - (fp_line (start 1.5 -8.2) (end 2 -7.7) (layer "B.SilkS") (width 0.15) (tstamp 5d8b52e3-6cf3-4957-a7be-c8e9a1edb540)) - (fp_line (start -2 -7.7) (end -1.5 -8.2) (layer "B.SilkS") (width 0.15) (tstamp 6752af1f-7117-4db8-a4d6-67772bc5edb1)) - (fp_line (start -1.5 -8.2) (end 1.5 -8.2) (layer "B.SilkS") (width 0.15) (tstamp 6a9026f4-97ad-4ca6-b8a7-4b78e7eaa11b)) - (fp_line (start 2.5 -2.2) (end 2.5 -1.5) (layer "B.SilkS") (width 0.15) (tstamp 7982b0aa-ef8e-47f9-a2a9-295924d921de)) - (fp_line (start 2.5 -1.5) (end 7 -1.5) (layer "B.SilkS") (width 0.15) (tstamp 9ceea79f-ef80-4e41-a251-1e78376f0a53)) - (fp_line (start 7 -5.6) (end 7 -6.2) (layer "B.SilkS") (width 0.15) (tstamp a587fbd2-119d-431c-964c-d65c1fee09ba)) - (fp_line (start 7 -1.5) (end 7 -2) (layer "B.SilkS") (width 0.15) (tstamp aede887e-5713-4410-b301-8003185f738f)) - (fp_line (start 7 -6.2) (end 2.5 -6.2) (layer "B.SilkS") (width 0.15) (tstamp c0ed410a-0280-4a8c-8ff3-f58b7b1340fc)) - (fp_arc (start 0.97 -2.17) (end 2.5 -2.17) (angle -90) (layer B.SilkS) (width 0.15)) - (fp_arc (start 2.499999 -6.7) (end 2 -6.690001) (angle -88.9) (layer B.SilkS) (width 0.15)) - `; - - const tht = ` - ${''/* 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.str}) - ` - - const hotswap_tht = ` - ${''/* pins - with inverse y direction */} - (pad 1 thru_hole circle (at ${def_pos}5 3.8) (size 2.032 2.032) (drill 1.27) (layers *.Cu *.Mask) ${p.from.str}) - ` - - let final = ''; - if(p.hotswap) { - final += hotswap; - if(p.hotswap_tht) { - final += hotswap_tht; - } - } else { - final += tht; - } - - return final; - } - if(p.reverse) { - return ` - ${standard} - ${p.keycaps ? keycap : ''} - ${p.hotswap ? hotswap : tht} - ${p.hotswap && p.hotswap_tht ? hotswap_tht : ''} - ${pins('-', '', 'B')} - ${pins('', '-', 'F')}) - ` - } else { - return ` - ${standard} - ${p.keycaps ? keycap : ''} - ${pins('-', '', 'B')}) - ` - } - } - } diff --git a/input/footprints/diode.js b/input/footprints/diode.js deleted file mode 100644 index dc290ee..0000000 --- a/input/footprints/diode.js +++ /dev/null @@ -1,85 +0,0 @@ -module.exports = { - params: { - designator: 'D', - from: undefined, - to: undefined, - smd: true, - tht: true, - side: 'both' - }, - body: p => { - - const header = ` - - (module ComboDiode (layer F.Cu) (tedit 5B24D78E) - - - ${p.at /* parametric position */} - - ${'' /* footprint reference */} - (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)))) - ` - const symbol_f = ` - ${''/* diode symbols */} - (fp_line (start 0.25 0) (end 0.75 0) (layer F.SilkS) (width 0.1)) - (fp_line (start 0.25 0.4) (end -0.35 0) (layer F.SilkS) (width 0.1)) - (fp_line (start 0.25 -0.4) (end 0.25 0.4) (layer F.SilkS) (width 0.1)) - (fp_line (start -0.35 0) (end 0.25 -0.4) (layer F.SilkS) (width 0.1)) - (fp_line (start -0.35 0) (end -0.35 0.55) (layer F.SilkS) (width 0.1)) - (fp_line (start -0.35 0) (end -0.35 -0.55) (layer F.SilkS) (width 0.1)) - (fp_line (start -0.75 0) (end -0.35 0) (layer F.SilkS) (width 0.1)) - ` - const symbol_b = ` - (fp_line (start 0.25 0) (end 0.75 0) (layer B.SilkS) (width 0.1)) - (fp_line (start 0.25 0.4) (end -0.35 0) (layer B.SilkS) (width 0.1)) - (fp_line (start 0.25 -0.4) (end 0.25 0.4) (layer B.SilkS) (width 0.1)) - (fp_line (start -0.35 0) (end 0.25 -0.4) (layer B.SilkS) (width 0.1)) - (fp_line (start -0.35 0) (end -0.35 0.55) (layer B.SilkS) (width 0.1)) - (fp_line (start -0.35 0) (end -0.35 -0.55) (layer B.SilkS) (width 0.1)) - (fp_line (start -0.75 0) (end -0.35 0) (layer B.SilkS) (width 0.1)) - ` - - const smd_f = ` - ${''/* SMD pads on both sides */} - (pad 1 smd rect (at -1.65 0 ${p.rot}) (size 0.9 1.2) (layers F.Cu F.Paste F.Mask) ${p.to.str}) - (pad 2 smd rect (at 1.65 0 ${p.rot}) (size 0.9 1.2) (layers F.Cu F.Paste F.Mask) ${p.from.str}) - ` - const smd_b = ` - (pad 2 smd rect (at 1.65 0 ${p.rot}) (size 0.9 1.2) (layers B.Cu B.Paste B.Mask) ${p.from.str}) - (pad 1 smd rect (at -1.65 0 ${p.rot}) (size 0.9 1.2) (layers B.Cu B.Paste B.Mask) ${p.to.str}) - ` - const tht = ` - ${''/* THT terminals */} - (pad 1 thru_hole rect (at -3.81 0 ${p.rot}) (size 1.778 1.778) (drill 0.9906) (layers *.Cu *.Mask) ${p.to.str}) - (pad 2 thru_hole circle (at 3.81 0 ${p.rot}) (size 1.905 1.905) (drill 0.9906) (layers *.Cu *.Mask) ${p.from.str}) - ` - const end = ` - ) - - ` - let final = header; - if (p.side == 'both' || p.side == 'F') { - final += symbol_f; - } - if (p.side == 'both' || p.side == 'B') { - final += symbol_b; - } - if (p.smd) { - if (p.side == 'both') { - final += smd_f; - final += smd_b; - } else if (p.side == 'F') { - final += smd_f; - } else if (p.side == 'B') { - final += smd_b; - } - } - if (p.tht) { - final += tht; - } - final += end; - return final; - - } -} \ No newline at end of file diff --git a/input/footprints/icon_bat.js b/input/footprints/icon_bat.js deleted file mode 100644 index 75ebdec..0000000 --- a/input/footprints/icon_bat.js +++ /dev/null @@ -1,56 +0,0 @@ -module.exports = { - params: { - designator: 'ICON', - side: 'F', - reverse: false, - spacing: 1 - }, - body: p => { - const spacing_adj = p.spacing / 2; - - const top = ` - (module icon_bat (layer F.Cu) (tedit 64461058) - ${p.at /* parametric position */} - (attr virtual) - - `; - - const front = ` - (fp_text reference "${p.ref}" (at 0 3 ${p.rot}) (layer F.SilkS) ${p.ref_hide} - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_circle (center ${-0.55 - spacing_adj} 0) (end ${-0.05 - spacing_adj} 0) (layer F.SilkS) (width 0.1)) - (fp_line (start ${-0.55 - spacing_adj} -0.3) (end ${-0.55 - spacing_adj} 0.3) (layer F.SilkS) (width 0.1)) - (fp_line (start ${-0.85 - spacing_adj} 0) (end ${-0.25 - spacing_adj} 0) (layer F.SilkS) (width 0.1)) - - (fp_circle (center ${0.55 + spacing_adj} 0) (end ${1.05 + spacing_adj} 0) (layer F.SilkS) (width 0.1)) - (fp_line (start ${0.25 + spacing_adj} 0) (end ${0.85 + spacing_adj} 0) (layer F.SilkS) (width 0.1)) - ` - - const back = ` - (fp_circle (center ${-0.55 - spacing_adj} 0) (end ${-1.05 - spacing_adj} 0) (layer B.SilkS) (width 0.1)) - (fp_line (start ${-0.25 - spacing_adj} 0) (end ${-0.85 - spacing_adj} 0) (layer B.SilkS) (width 0.1)) - - (fp_circle (center ${0.55 + spacing_adj} 0) (end ${0.05 + spacing_adj} 0) (layer B.SilkS) (width 0.1)) - (fp_line (start ${0.55 + spacing_adj} -0.3) (end ${0.55 + spacing_adj} 0.3) (layer B.SilkS) (width 0.1)) - (fp_line (start ${0.85 + spacing_adj} 0) (end ${0.25 + spacing_adj} 0) (layer B.SilkS) (width 0.1)) - ` - - const bottom = ` - ) - ` - - let final = top; - - if(p.side == "F" || p.reverse) { - final += front; - } - if(p.side == "B" || p.reverse) { - final += back; - } - - final += bottom; - - return final; - } -} diff --git a/input/footprints/nice_nano_pretty.js b/input/footprints/nice_nano_pretty.js deleted file mode 100644 index 96b50a7..0000000 --- a/input/footprints/nice_nano_pretty.js +++ /dev/null @@ -1,1820 +0,0 @@ -// Arduino ProMicro atmega32u4au -// Take care to bridge the pads on the correct side of the pcb -// To orient the MCU up, meaning power led faces away from pcb, bridge the pads on the side of the pcb with the MCU -// To orient the MCU down, meaning power led faces the pcb, bridge the pads on the opposite side of the pcb -// -// From: -// https://github.com/Albert-IV/ergogen-contrib/blob/main/src/footprints/promicro_pretty.js -// -// But you must use the ergogen v4 updated version from this PR: -// https://github.com/Albert-IV/ergogen-contrib/pull/2 - -module.exports = { - params: { - class: 'MCU', - RAW: {type: 'net', value: 'RAW'}, - GND: {type: 'net', value: 'GND'}, - RST: {type: 'net', value: 'RST'}, - VCC: {type: 'net', value: 'VCC'}, - P21: {type: 'net', value: 'P21'}, - P20: {type: 'net', value: 'P20'}, - P19: {type: 'net', value: 'P19'}, - P18: {type: 'net', value: 'P18'}, - P15: {type: 'net', value: 'P15'}, - P14: {type: 'net', value: 'P14'}, - P16: {type: 'net', value: 'P16'}, - P10: {type: 'net', value: 'P10'}, - P1: {type: 'net', value: 'P1'}, - P0: {type: 'net', value: 'P0'}, - P2: {type: 'net', value: 'P2'}, - P3: {type: 'net', value: 'P3'}, - P4: {type: 'net', value: 'P4'}, - P5: {type: 'net', value: 'P5'}, - P6: {type: 'net', value: 'P6'}, - P7: {type: 'net', value: 'P7'}, - P8: {type: 'net', value: 'P8'}, - P9: {type: 'net', value: 'P9'}, - - show_labels: false, - label_layer: 'Fab', - RAW_label: '', - GND_label: '', - RST_label: '', - VCC_label: '', - P21_label: '', - P20_label: '', - P19_label: '', - P18_label: '', - P15_label: '', - P14_label: '', - P16_label: '', - P10_label: '', - P1_label: '', - P0_label: '', - P2_label: '', - P3_label: '', - P4_label: '', - P5_label: '', - P6_label: '', - P7_label: '', - P8_label: '', - P9_label: '', - }, - body: p => { - const get_pin_net_name = (p, pin_name) => { - return p[pin_name].name; - }; - - const get_pin_label_override = (p, pin_name) => { - prop_name = `${pin_name}_label`; - return p[prop_name]; - }; - - const get_pin_label = (p, pin_name) => { - label = get_pin_label_override(p, pin_name); - if(label == '') { - label = get_pin_net_name(p, pin_name); - } - - if(label === undefined) { - label = '""'; - } - - return label; - }; - - const pin_labels = ` - (fp_text user ${ get_pin_label(p, 'P21') } (at -3.81 -2.75) (layer B.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (fp_text user ${ get_pin_label(p, 'P2') } (at -3.81 2.75) (layer B.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (fp_text user ${ get_pin_label(p, 'P2') } (at -3.81 2.75) (layer F.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_text user ${ get_pin_label(p, 'P21') } (at -3.81 -2.75) (layer F.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_text user ${ get_pin_label(p, 'VCC') } (at -6.35 -2.75) (layer F.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_text user ${ get_pin_label(p, 'GND') } (at -6.35 2.75) (layer F.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_text user ${ get_pin_label(p, 'GND') } (at -6.35 2.75) (layer B.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (fp_text user ${ get_pin_label(p, 'VCC') } (at -6.35 -2.75) (layer B.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (fp_text user ${ get_pin_label(p, 'RST') } (at -8.89 -2.75) (layer F.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_text user ${ get_pin_label(p, 'GND') } (at -8.89 2.75) (layer F.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_text user ${ get_pin_label(p, 'GND') } (at -8.89 2.75) (layer B.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (fp_text user ${ get_pin_label(p, 'RST') } (at -8.89 -2.75) (layer B.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (fp_text user ${ get_pin_label(p, 'GND') } (at -11.43 -2.75) (layer F.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_text user ${ get_pin_label(p, 'P0') } (at -11.43 2.75) (layer F.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_text user ${ get_pin_label(p, 'P0') } (at -11.43 2.75) (layer B.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (fp_text user ${ get_pin_label(p, 'GND') } (at -11.43 -2.75) (layer B.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (fp_text user ${ get_pin_label(p, 'RAW') } (at -13.97 -2.75) (layer F.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_text user ${ get_pin_label(p, 'P1') } (at -13.97 2.75) (layer F.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_text user ${ get_pin_label(p, 'P1') } (at -13.97 2.75) (layer B.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (fp_text user ${ get_pin_label(p, 'RAW') } (at -13.97 -2.75) (layer B.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (fp_text user ${ get_pin_label(p, 'P20') } (at -1.27 -2.75) (layer F.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_text user ${ get_pin_label(p, 'P3') } (at -1.27 2.75) (layer F.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_text user ${ get_pin_label(p, 'P3') } (at -1.27 2.75) (layer B.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (fp_text user ${ get_pin_label(p, 'P20') } (at -1.27 -2.75) (layer B.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (fp_text user ${ get_pin_label(p, 'P19') } (at 1.27 -2.75) (layer F.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_text user ${ get_pin_label(p, 'P4') } (at 1.27 2.75) (layer F.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_text user ${ get_pin_label(p, 'P4') } (at 1.27 2.75) (layer B.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (fp_text user ${ get_pin_label(p, 'P19') } (at 1.27 -2.75) (layer B.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (fp_text user ${ get_pin_label(p, 'P18') } (at 3.81 -2.75) (layer F.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_text user ${ get_pin_label(p, 'P5') } (at 3.81 2.75) (layer F.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_text user ${ get_pin_label(p, 'P5') } (at 3.81 2.75) (layer B.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (fp_text user ${ get_pin_label(p, 'P18') } (at 3.81 -2.75) (layer B.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (fp_text user ${ get_pin_label(p, 'P15') } (at 6.35 -2.75) (layer F.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_text user ${ get_pin_label(p, 'P6') } (at 6.35 2.75) (layer F.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_text user ${ get_pin_label(p, 'P6') } (at 6.35 2.75) (layer B.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (fp_text user ${ get_pin_label(p, 'P15') } (at 6.35 -2.75) (layer B.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (fp_text user ${ get_pin_label(p, 'P14') } (at 8.89 -2.75) (layer F.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_text user ${ get_pin_label(p, 'P7') } (at 8.89 2.75) (layer F.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_text user ${ get_pin_label(p, 'P7') } (at 8.89 2.75) (layer B.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (fp_text user ${ get_pin_label(p, 'P14') } (at 8.89 -2.75) (layer B.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (fp_text user ${ get_pin_label(p, 'P16') } (at 11.43 -2.75) (layer F.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_text user ${ get_pin_label(p, 'P8') } (at 11.43 2.75) (layer F.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_text user ${ get_pin_label(p, 'P8') } (at 11.43 2.75) (layer B.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (fp_text user ${ get_pin_label(p, 'P16') } (at 11.43 -2.75) (layer B.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (fp_text user ${ get_pin_label(p, 'P10') } (at 13.97 -2.75) (layer F.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_text user ${ get_pin_label(p, 'P9') } (at 13.97 2.75) (layer F.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15))) - ) - (fp_text user ${ get_pin_label(p, 'P9') } (at 13.97 2.75) (layer B.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (fp_text user ${ get_pin_label(p, 'P10') } (at 13.97 -2.75) (layer B.${p.label_layer}) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - ` - - return ` - (module ProMicro (layer F.Cu) (tedit 6135B927) - ${p.at /* parametric position */} - (attr virtual) - - ${'' /* footprint description, tags and reference */} - (descr "Solder-jumper reversible Pro Micro footprint") - (tags "promicro ProMicro reversible solder jumper") - (fp_text reference "${p.ref}" (at -16.256 -0.254 ${p.rot + 90}) (layer F.SilkS) ${p.ref_hide} - (effects (font (size 1 1) (thickness 0.15))) - ) - - ${''/* extra border around "RAW", in case the rectangular shape is not distinctive enough */} - (fp_line (start -15.24 6.35) (end -12.7 6.35) (layer F.SilkS) (width 0.15)) - (fp_line (start -15.24 6.35) (end -15.24 8.89) (layer F.SilkS) (width 0.15)) - (fp_line (start -12.7 6.35) (end -12.7 8.89) (layer F.SilkS) (width 0.15)) - (fp_line (start -12.7 8.89) (end -15.24 8.89) (layer F.SilkS) (width 0.15)) - (fp_line (start -15.24 -6.35) (end -12.7 -6.35) (layer B.SilkS) (width 0.15)) - (fp_line (start -15.24 -6.35) (end -15.24 -8.89) (layer B.SilkS) (width 0.15)) - (fp_line (start -12.7 -6.35) (end -12.7 -8.89) (layer B.SilkS) (width 0.15)) - (fp_line (start -12.7 -8.89) (end -15.24 -8.89) (layer B.SilkS) (width 0.15)) - - (fp_circle (center 13.97 0.762) (end 14.095 0.762) (layer B.Mask) (width 0.25)) - (fp_circle (center 13.97 0.762) (end 14.095 0.762) (layer F.Mask) (width 0.25)) - (fp_circle (center 13.97 -0.762) (end 14.095 -0.762) (layer B.Mask) (width 0.25)) - (fp_circle (center 13.97 -0.762) (end 14.095 -0.762) (layer F.Mask) (width 0.25)) - (fp_circle (center 11.43 0.762) (end 11.555 0.762) (layer B.Mask) (width 0.25)) - (fp_circle (center 11.43 0.762) (end 11.555 0.762) (layer F.Mask) (width 0.25)) - (fp_circle (center 11.43 -0.762) (end 11.555 -0.762) (layer B.Mask) (width 0.25)) - (fp_circle (center 11.43 -0.762) (end 11.555 -0.762) (layer F.Mask) (width 0.25)) - (fp_circle (center 8.89 0.762) (end 9.015 0.762) (layer B.Mask) (width 0.25)) - (fp_circle (center 8.89 0.762) (end 9.015 0.762) (layer F.Mask) (width 0.25)) - (fp_circle (center 8.89 -0.762) (end 9.015 -0.762) (layer B.Mask) (width 0.25)) - (fp_circle (center 8.89 -0.762) (end 9.015 -0.762) (layer F.Mask) (width 0.25)) - (fp_circle (center 6.35 0.762) (end 6.475 0.762) (layer B.Mask) (width 0.25)) - (fp_circle (center 6.35 0.762) (end 6.475 0.762) (layer F.Mask) (width 0.25)) - (fp_circle (center 6.35 -0.762) (end 6.475 -0.762) (layer B.Mask) (width 0.25)) - (fp_circle (center 6.35 -0.762) (end 6.475 -0.762) (layer F.Mask) (width 0.25)) - (fp_circle (center 3.81 0.762) (end 3.935 0.762) (layer B.Mask) (width 0.25)) - (fp_circle (center 3.81 0.762) (end 3.935 0.762) (layer F.Mask) (width 0.25)) - (fp_circle (center 3.81 -0.762) (end 3.935 -0.762) (layer B.Mask) (width 0.25)) - (fp_circle (center 3.81 -0.762) (end 3.935 -0.762) (layer F.Mask) (width 0.25)) - (fp_circle (center 1.27 0.762) (end 1.395 0.762) (layer B.Mask) (width 0.25)) - (fp_circle (center 1.27 0.762) (end 1.395 0.762) (layer F.Mask) (width 0.25)) - (fp_circle (center 1.27 -0.762) (end 1.395 -0.762) (layer B.Mask) (width 0.25)) - (fp_circle (center 1.27 -0.762) (end 1.395 -0.762) (layer F.Mask) (width 0.25)) - (fp_circle (center -1.27 0.762) (end -1.145 0.762) (layer B.Mask) (width 0.25)) - (fp_circle (center -1.27 0.762) (end -1.145 0.762) (layer F.Mask) (width 0.25)) - (fp_circle (center -1.27 -0.762) (end -1.145 -0.762) (layer B.Mask) (width 0.25)) - (fp_circle (center -1.27 -0.762) (end -1.145 -0.762) (layer F.Mask) (width 0.25)) - (fp_circle (center -3.81 0.762) (end -3.685 0.762) (layer B.Mask) (width 0.25)) - (fp_circle (center -3.81 0.762) (end -3.685 0.762) (layer F.Mask) (width 0.25)) - (fp_circle (center -3.81 -0.762) (end -3.685 -0.762) (layer B.Mask) (width 0.25)) - (fp_circle (center -3.81 -0.762) (end -3.685 -0.762) (layer F.Mask) (width 0.25)) - (fp_circle (center -6.35 0.762) (end -6.225 0.762) (layer B.Mask) (width 0.25)) - (fp_circle (center -6.35 0.762) (end -6.225 0.762) (layer F.Mask) (width 0.25)) - (fp_circle (center -6.35 -0.762) (end -6.225 -0.762) (layer B.Mask) (width 0.25)) - (fp_circle (center -6.35 -0.762) (end -6.225 -0.762) (layer F.Mask) (width 0.25)) - (fp_circle (center -8.89 0.762) (end -8.765 0.762) (layer B.Mask) (width 0.25)) - (fp_circle (center -8.89 0.762) (end -8.765 0.762) (layer F.Mask) (width 0.25)) - (fp_circle (center -8.89 -0.762) (end -8.765 -0.762) (layer B.Mask) (width 0.25)) - (fp_circle (center -8.89 -0.762) (end -8.765 -0.762) (layer F.Mask) (width 0.25)) - (fp_circle (center -11.43 -0.762) (end -11.305 -0.762) (layer B.Mask) (width 0.25)) - (fp_circle (center -11.43 -0.762) (end -11.305 -0.762) (layer F.Mask) (width 0.25)) - (fp_circle (center -11.43 0.762) (end -11.305 0.762) (layer B.Mask) (width 0.25)) - (fp_circle (center -11.43 0.762) (end -11.305 0.762) (layer F.Mask) (width 0.25)) - (fp_circle (center -13.97 0.762) (end -13.845 0.762) (layer B.Mask) (width 0.25)) - (fp_circle (center -13.97 0.762) (end -13.845 0.762) (layer F.Mask) (width 0.25)) - (fp_circle (center -13.97 -0.762) (end -13.845 -0.762) (layer B.Mask) (width 0.25)) - (fp_circle (center -13.97 -0.762) (end -13.845 -0.762) (layer F.Mask) (width 0.25)) - (fp_poly (pts (xy 14.478 -5.08) (xy 13.462 -5.08) (xy 13.462 -6.096) (xy 14.478 -6.096)) (layer B.Mask) (width 0.1)) - (fp_poly (pts (xy 11.938 -5.08) (xy 10.922 -5.08) (xy 10.922 -6.096) (xy 11.938 -6.096)) (layer B.Mask) (width 0.1)) - (fp_poly (pts (xy 9.398 -5.08) (xy 8.382 -5.08) (xy 8.382 -6.096) (xy 9.398 -6.096)) (layer B.Mask) (width 0.1)) - (fp_poly (pts (xy 6.858 -5.08) (xy 5.842 -5.08) (xy 5.842 -6.096) (xy 6.858 -6.096)) (layer B.Mask) (width 0.1)) - (fp_poly (pts (xy 4.318 -5.08) (xy 3.302 -5.08) (xy 3.302 -6.096) (xy 4.318 -6.096)) (layer B.Mask) (width 0.1)) - (fp_poly (pts (xy 1.778 -5.08) (xy 0.762 -5.08) (xy 0.762 -6.096) (xy 1.778 -6.096)) (layer B.Mask) (width 0.1)) - (fp_poly (pts (xy -0.762 -5.08) (xy -1.778 -5.08) (xy -1.778 -6.096) (xy -0.762 -6.096)) (layer B.Mask) (width 0.1)) - (fp_poly (pts (xy -3.302 -5.08) (xy -4.318 -5.08) (xy -4.318 -6.096) (xy -3.302 -6.096)) (layer B.Mask) (width 0.1)) - (fp_poly (pts (xy -5.842 -5.08) (xy -6.858 -5.08) (xy -6.858 -6.096) (xy -5.842 -6.096)) (layer B.Mask) (width 0.1)) - (fp_poly (pts (xy -8.382 -5.08) (xy -9.398 -5.08) (xy -9.398 -6.096) (xy -8.382 -6.096)) (layer B.Mask) (width 0.1)) - (fp_poly (pts (xy -10.922 -5.08) (xy -11.938 -5.08) (xy -11.938 -6.096) (xy -10.922 -6.096)) (layer B.Mask) (width 0.1)) - (fp_poly (pts (xy -13.462 -5.08) (xy -14.478 -5.08) (xy -14.478 -6.096) (xy -13.462 -6.096)) (layer B.Mask) (width 0.1)) - (fp_poly (pts (xy 13.462 5.08) (xy 14.478 5.08) (xy 14.478 6.096) (xy 13.462 6.096)) (layer B.Mask) (width 0.1)) - (fp_poly (pts (xy 10.922 5.08) (xy 11.938 5.08) (xy 11.938 6.096) (xy 10.922 6.096)) (layer B.Mask) (width 0.1)) - (fp_poly (pts (xy 8.382 5.08) (xy 9.398 5.08) (xy 9.398 6.096) (xy 8.382 6.096)) (layer B.Mask) (width 0.1)) - (fp_poly (pts (xy 5.842 5.08) (xy 6.858 5.08) (xy 6.858 6.096) (xy 5.842 6.096)) (layer B.Mask) (width 0.1)) - (fp_poly (pts (xy 3.302 5.08) (xy 4.318 5.08) (xy 4.318 6.096) (xy 3.302 6.096)) (layer B.Mask) (width 0.1)) - (fp_poly (pts (xy 0.762 5.08) (xy 1.778 5.08) (xy 1.778 6.096) (xy 0.762 6.096)) (layer B.Mask) (width 0.1)) - (fp_poly (pts (xy -1.778 5.08) (xy -0.762 5.08) (xy -0.762 6.096) (xy -1.778 6.096)) (layer B.Mask) (width 0.1)) - (fp_poly (pts (xy -4.318 5.08) (xy -3.302 5.08) (xy -3.302 6.096) (xy -4.318 6.096)) (layer B.Mask) (width 0.1)) - (fp_poly (pts (xy -6.858 5.08) (xy -5.842 5.08) (xy -5.842 6.096) (xy -6.858 6.096)) (layer B.Mask) (width 0.1)) - (fp_poly (pts (xy -9.398 5.08) (xy -8.382 5.08) (xy -8.382 6.096) (xy -9.398 6.096)) (layer B.Mask) (width 0.1)) - (fp_poly (pts (xy -11.938 5.08) (xy -10.922 5.08) (xy -10.922 6.096) (xy -11.938 6.096)) (layer B.Mask) (width 0.1)) - (fp_poly (pts (xy -14.478 5.08) (xy -13.462 5.08) (xy -13.462 6.096) (xy -14.478 6.096)) (layer B.Mask) (width 0.1)) - (fp_poly (pts (xy -13.462 -5.08) (xy -14.478 -5.08) (xy -14.478 -6.096) (xy -13.462 -6.096)) (layer F.Mask) (width 0.1)) - (fp_poly (pts (xy 1.778 -5.08) (xy 0.762 -5.08) (xy 0.762 -6.096) (xy 1.778 -6.096)) (layer F.Mask) (width 0.1)) - (fp_poly (pts (xy -10.922 -5.08) (xy -11.938 -5.08) (xy -11.938 -6.096) (xy -10.922 -6.096)) (layer F.Mask) (width 0.1)) - (fp_poly (pts (xy -8.382 -5.08) (xy -9.398 -5.08) (xy -9.398 -6.096) (xy -8.382 -6.096)) (layer F.Mask) (width 0.1)) - (fp_poly (pts (xy -3.302 -5.08) (xy -4.318 -5.08) (xy -4.318 -6.096) (xy -3.302 -6.096)) (layer F.Mask) (width 0.1)) - (fp_poly (pts (xy -0.762 -5.08) (xy -1.778 -5.08) (xy -1.778 -6.096) (xy -0.762 -6.096)) (layer F.Mask) (width 0.1)) - (fp_poly (pts (xy 6.858 -5.08) (xy 5.842 -5.08) (xy 5.842 -6.096) (xy 6.858 -6.096)) (layer F.Mask) (width 0.1)) - (fp_poly (pts (xy 11.938 -5.08) (xy 10.922 -5.08) (xy 10.922 -6.096) (xy 11.938 -6.096)) (layer F.Mask) (width 0.1)) - (fp_poly (pts (xy -5.842 -5.08) (xy -6.858 -5.08) (xy -6.858 -6.096) (xy -5.842 -6.096)) (layer F.Mask) (width 0.1)) - (fp_poly (pts (xy 4.318 -5.08) (xy 3.302 -5.08) (xy 3.302 -6.096) (xy 4.318 -6.096)) (layer F.Mask) (width 0.1)) - (fp_poly (pts (xy 9.398 -5.08) (xy 8.382 -5.08) (xy 8.382 -6.096) (xy 9.398 -6.096)) (layer F.Mask) (width 0.1)) - (fp_poly (pts (xy 14.478 -5.08) (xy 13.462 -5.08) (xy 13.462 -6.096) (xy 14.478 -6.096)) (layer F.Mask) (width 0.1)) - (fp_poly (pts (xy 13.462 5.08) (xy 14.478 5.08) (xy 14.478 6.096) (xy 13.462 6.096)) (layer F.Mask) (width 0.1)) - (fp_poly (pts (xy 10.922 5.08) (xy 11.938 5.08) (xy 11.938 6.096) (xy 10.922 6.096)) (layer F.Mask) (width 0.1)) - (fp_poly (pts (xy 8.382 5.08) (xy 9.398 5.08) (xy 9.398 6.096) (xy 8.382 6.096)) (layer F.Mask) (width 0.1)) - (fp_poly (pts (xy 5.842 5.08) (xy 6.858 5.08) (xy 6.858 6.096) (xy 5.842 6.096)) (layer F.Mask) (width 0.1)) - (fp_poly (pts (xy 3.302 5.08) (xy 4.318 5.08) (xy 4.318 6.096) (xy 3.302 6.096)) (layer F.Mask) (width 0.1)) - (fp_poly (pts (xy 0.762 5.08) (xy 1.778 5.08) (xy 1.778 6.096) (xy 0.762 6.096)) (layer F.Mask) (width 0.1)) - (fp_poly (pts (xy -1.778 5.08) (xy -0.762 5.08) (xy -0.762 6.096) (xy -1.778 6.096)) (layer F.Mask) (width 0.1)) - (fp_poly (pts (xy -4.318 5.08) (xy -3.302 5.08) (xy -3.302 6.096) (xy -4.318 6.096)) (layer F.Mask) (width 0.1)) - (fp_poly (pts (xy -6.858 5.08) (xy -5.842 5.08) (xy -5.842 6.096) (xy -6.858 6.096)) (layer F.Mask) (width 0.1)) - (fp_poly (pts (xy -9.398 5.08) (xy -8.382 5.08) (xy -8.382 6.096) (xy -9.398 6.096)) (layer F.Mask) (width 0.1)) - (fp_poly (pts (xy -11.938 5.08) (xy -10.922 5.08) (xy -10.922 6.096) (xy -11.938 6.096)) (layer F.Mask) (width 0.1)) - (fp_poly (pts (xy -14.478 5.08) (xy -13.462 5.08) (xy -13.462 6.096) (xy -14.478 6.096)) (layer F.Mask) (width 0.1)) - (pad 2 smd custom (at -11.43 -0.762 ${p.rot}) (size 0.25 0.25) (layers F.Cu) - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end 0.766 -0.766) (width 0.25)) - (gr_line (start 0.766 -0.766) (end 0.766 -3.298) (width 0.25)) - (gr_line (start 0.766 -3.298) (end 0 -4.064) (width 0.25)) - ) ${p.GND.str}) - (pad "" thru_hole circle (at -13.97 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask) - (zone_connect 0)) - (pad "" thru_hole circle (at -11.43 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) - (pad "" thru_hole circle (at -8.89 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) - (pad "" thru_hole circle (at -6.35 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) - (pad "" thru_hole circle (at -3.81 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) - (pad "" thru_hole circle (at -1.27 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) - (pad "" thru_hole circle (at 1.27 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) - (pad "" thru_hole circle (at 3.81 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) - (pad "" thru_hole circle (at 6.35 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) - (pad "" thru_hole circle (at 8.89 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) - (pad "" thru_hole circle (at 11.43 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) - (pad "" thru_hole circle (at 13.97 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) - (pad "" thru_hole circle (at 13.97 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) - (pad "" thru_hole circle (at 11.43 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) - (pad "" thru_hole circle (at 8.89 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) - (pad "" thru_hole circle (at 6.35 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) - (pad "" thru_hole circle (at 3.81 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) - (pad "" thru_hole circle (at 1.27 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) - (pad "" thru_hole circle (at -1.27 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) - (pad "" thru_hole circle (at -3.81 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) - (pad "" thru_hole circle (at -6.35 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) - (pad "" thru_hole circle (at -8.89 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) - (pad "" thru_hole circle (at -11.43 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) - (pad "" thru_hole circle (at -13.97 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) - (pad "" smd custom (at -13.97 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers F.Cu F.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 24 smd custom (at -13.97 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P1.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at -13.97 6.35 ${p.rot + 180}) (size 0.25 1) (layers F.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" thru_hole rect (at -13.97 7.62 ${p.rot}) (size 1.6 1.6) (drill 1.1) (layers F.Cu F.Mask) - (zone_connect 0)) - (pad "" thru_hole rect (at -13.97 -7.62 ${p.rot}) (size 1.6 1.6) (drill 1.1) (layers B.Cu B.Mask) - (zone_connect 0)) - (pad "" smd custom (at -11.43 6.35 ${p.rot + 180}) (size 0.25 1) (layers F.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at -11.43 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers F.Cu F.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 23 smd custom (at -11.43 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P0.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at -8.89 6.35 ${p.rot + 180}) (size 0.25 1) (layers F.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at -8.89 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers F.Cu F.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 22 smd custom (at -8.89 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.GND.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at -6.35 6.35 ${p.rot + 180}) (size 0.25 1) (layers F.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at -6.35 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers F.Cu F.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 21 smd custom (at -6.35 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.GND.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at -3.81 6.35 ${p.rot + 180}) (size 0.25 1) (layers F.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at -3.81 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers F.Cu F.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 20 smd custom (at -3.81 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P2.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at -1.27 6.35 ${p.rot + 180}) (size 0.25 1) (layers F.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at -1.27 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers F.Cu F.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 19 smd custom (at -1.27 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P3.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at 1.27 6.35 ${p.rot + 180}) (size 0.25 1) (layers F.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at 1.27 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers F.Cu F.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 18 smd custom (at 1.27 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P4.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at 3.81 6.35 ${p.rot + 180}) (size 0.25 1) (layers F.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at 3.81 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers F.Cu F.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 17 smd custom (at 3.81 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P5.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at 6.35 6.35 ${p.rot + 180}) (size 0.25 1) (layers F.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at 6.35 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers F.Cu F.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 16 smd custom (at 6.35 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P6.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at 8.89 6.35 ${p.rot + 180}) (size 0.25 1) (layers F.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at 8.89 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers F.Cu F.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 15 smd custom (at 8.89 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P7.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at 11.43 6.35 ${p.rot + 180}) (size 0.25 1) (layers F.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at 11.43 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers F.Cu F.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 14 smd custom (at 11.43 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P8.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at 13.97 6.35 ${p.rot + 180}) (size 0.25 1) (layers F.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at 13.97 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers F.Cu F.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 13 smd custom (at 13.97 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P9.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad 1 smd custom (at -13.97 -4.826 ${p.rot}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.RAW.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad 3 smd custom (at -8.89 -4.826 ${p.rot}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.RST.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at -8.89 -6.35 ${p.rot}) (size 0.25 1) (layers F.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at -8.89 -5.842 ${p.rot}) (size 0.1 0.1) (layers F.Cu F.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad "" smd custom (at -13.97 -5.842 ${p.rot}) (size 0.1 0.1) (layers F.Cu F.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad "" smd custom (at -11.43 -6.35 ${p.rot}) (size 0.25 1) (layers F.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad 2 smd custom (at -11.43 -4.826 ${p.rot}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.GND.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at -13.97 -6.35 ${p.rot}) (size 0.25 1) (layers F.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad 4 smd custom (at -6.35 -4.826 ${p.rot}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.VCC.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at -11.43 -5.842 ${p.rot}) (size 0.1 0.1) (layers F.Cu F.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad "" smd custom (at -6.35 -5.842 ${p.rot}) (size 0.1 0.1) (layers F.Cu F.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 6 smd custom (at -1.27 -4.826 ${p.rot}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P20.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad 7 smd custom (at 1.27 -4.826 ${p.rot}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P19.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at 13.97 -6.35 ${p.rot}) (size 0.25 1) (layers F.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at 1.27 -5.842 ${p.rot}) (size 0.1 0.1) (layers F.Cu F.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad "" smd custom (at 8.89 -6.35 ${p.rot}) (size 0.25 1) (layers F.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad 8 smd custom (at 3.81 -4.826 ${p.rot}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P18.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at 1.27 -6.35 ${p.rot}) (size 0.25 1) (layers F.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad 12 smd custom (at 13.97 -4.826 ${p.rot}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P10.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at 3.81 -5.842 ${p.rot}) (size 0.1 0.1) (layers F.Cu F.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad "" smd custom (at 6.35 -6.35 ${p.rot}) (size 0.25 1) (layers F.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at 13.97 -5.842 ${p.rot}) (size 0.1 0.1) (layers F.Cu F.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad "" smd custom (at -3.81 -6.35 ${p.rot}) (size 0.25 1) (layers F.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at 3.81 -6.35 ${p.rot}) (size 0.25 1) (layers F.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at -1.27 -6.35 ${p.rot}) (size 0.25 1) (layers F.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad 9 smd custom (at 6.35 -4.826 ${p.rot}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P15.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at -6.35 -6.35 ${p.rot}) (size 0.25 1) (layers F.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at -3.81 -5.842 ${p.rot}) (size 0.1 0.1) (layers F.Cu F.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad "" smd custom (at -1.27 -5.842 ${p.rot}) (size 0.1 0.1) (layers F.Cu F.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad "" smd custom (at 6.35 -5.842 ${p.rot}) (size 0.1 0.1) (layers F.Cu F.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 10 smd custom (at 8.89 -4.826 ${p.rot}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P14.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at 8.89 -5.842 ${p.rot}) (size 0.1 0.1) (layers F.Cu F.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad "" smd custom (at 11.43 -5.842 ${p.rot}) (size 0.1 0.1) (layers F.Cu F.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 11 smd custom (at 11.43 -4.826 ${p.rot}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P16.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at 11.43 -6.35 ${p.rot}) (size 0.25 1) (layers F.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad 5 smd custom (at -3.81 -4.826 ${p.rot}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P21.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at -13.97 6.35 ${p.rot + 180}) (size 0.25 1) (layers B.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad 1 smd custom (at -13.97 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.RAW.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at -13.97 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers B.Cu B.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad "" smd custom (at -11.43 6.35 ${p.rot + 180}) (size 0.25 1) (layers B.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at -11.43 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers B.Cu B.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 2 smd custom (at -11.43 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers B.Cu B.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at -8.89 6.35 ${p.rot + 180}) (size 0.25 1) (layers B.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at -8.89 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers B.Cu B.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 3 smd custom (at -8.89 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.RST.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at -6.35 6.35 ${p.rot + 180}) (size 0.25 1) (layers B.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at -6.35 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers B.Cu B.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 4 smd custom (at -6.35 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.VCC.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at -3.81 6.35 ${p.rot + 180}) (size 0.25 1) (layers B.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at -3.81 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers B.Cu B.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 5 smd custom (at -3.81 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P21.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at -1.27 6.35 ${p.rot + 180}) (size 0.25 1) (layers B.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at -1.27 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers B.Cu B.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 6 smd custom (at -1.27 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P20.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at 1.27 6.35 ${p.rot + 180}) (size 0.25 1) (layers B.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at 1.27 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers B.Cu B.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 7 smd custom (at 1.27 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P19.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at 3.81 6.35 ${p.rot + 180}) (size 0.25 1) (layers B.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at 3.81 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers B.Cu B.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 8 smd custom (at 3.81 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P18.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at 6.35 6.35 ${p.rot + 180}) (size 0.25 1) (layers B.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at 6.35 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers B.Cu B.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 9 smd custom (at 6.35 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P15.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at 8.89 6.35 ${p.rot + 180}) (size 0.25 1) (layers B.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at 8.89 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers B.Cu B.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 10 smd custom (at 8.89 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P14.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at 11.43 6.35 ${p.rot + 180}) (size 0.25 1) (layers B.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at 11.43 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers B.Cu B.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 11 smd custom (at 11.43 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P16.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at 13.97 6.35 ${p.rot + 180}) (size 0.25 1) (layers B.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at 13.97 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers B.Cu B.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 12 smd custom (at 13.97 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P10.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at -13.97 -6.35 ${p.rot}) (size 0.25 1) (layers B.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at -13.97 -5.842 ${p.rot}) (size 0.1 0.1) (layers B.Cu B.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 24 smd custom (at -13.97 -4.826 ${p.rot}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P1.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad 23 smd custom (at -11.43 -4.826 ${p.rot}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P0.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at -11.43 -6.35 ${p.rot}) (size 0.25 1) (layers B.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at -11.43 -5.842 ${p.rot}) (size 0.1 0.1) (layers B.Cu B.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 22 smd custom (at -8.89 -4.826 ${p.rot}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.GND.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at -8.89 -6.35 ${p.rot}) (size 0.25 1) (layers B.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at -8.89 -5.842 ${p.rot}) (size 0.1 0.1) (layers B.Cu B.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 21 smd custom (at -6.35 -4.826 ${p.rot}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.GND.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at -6.35 -6.35 ${p.rot}) (size 0.25 1) (layers B.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at -6.35 -5.842 ${p.rot}) (size 0.1 0.1) (layers B.Cu B.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 20 smd custom (at -3.81 -4.826 ${p.rot}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P2.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at -3.81 -6.35 ${p.rot}) (size 0.25 1) (layers B.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at -3.81 -5.842 ${p.rot}) (size 0.1 0.1) (layers B.Cu B.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 19 smd custom (at -1.27 -4.826 ${p.rot}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P3.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at -1.27 -6.35 ${p.rot}) (size 0.25 1) (layers B.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at -1.27 -5.842 ${p.rot}) (size 0.1 0.1) (layers B.Cu B.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 18 smd custom (at 1.27 -4.826 ${p.rot}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P4.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at 1.27 -6.35 ${p.rot}) (size 0.25 1) (layers B.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at 1.27 -5.842 ${p.rot}) (size 0.1 0.1) (layers B.Cu B.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 17 smd custom (at 3.81 -4.826 ${p.rot}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P5.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at 3.81 -6.35 ${p.rot}) (size 0.25 1) (layers B.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at 3.81 -5.842 ${p.rot}) (size 0.1 0.1) (layers B.Cu B.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 16 smd custom (at 6.35 -4.826 ${p.rot}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P6.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at 6.35 -6.35 ${p.rot}) (size 0.25 1) (layers B.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at 6.35 -5.842 ${p.rot}) (size 0.1 0.1) (layers B.Cu B.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 15 smd custom (at 8.89 -4.826 ${p.rot}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P7.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at 8.89 -6.35 ${p.rot}) (size 0.25 1) (layers B.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at 8.89 -5.842 ${p.rot}) (size 0.1 0.1) (layers B.Cu B.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 14 smd custom (at 11.43 -4.826 ${p.rot}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P8.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at 11.43 -6.35 ${p.rot}) (size 0.25 1) (layers B.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at 11.43 -5.842 ${p.rot}) (size 0.1 0.1) (layers B.Cu B.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 13 smd custom (at 13.97 -4.826 ${p.rot}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P9.str} - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) - ) (width 0)) - )) - (pad "" smd custom (at 13.97 -6.35 ${p.rot}) (size 0.25 1) (layers B.Cu) - (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - )) - (pad "" smd custom (at 13.97 -5.842 ${p.rot}) (size 0.1 0.1) (layers B.Cu B.Mask) - (clearance 0.1) (zone_connect 0) - (options (clearance outline) (anchor rect)) - (primitives - (gr_poly (pts - (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) - ) (width 0)) - )) - (pad 23 smd custom (at -11.43 0.762 ${p.rot + 180}) (size 0.25 0.25) (layers F.Cu) ${p.P0.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end 0.762 -0.762) (width 0.25)) - (gr_line (start 0.762 -0.762) (end 0.762 -3.302) (width 0.25)) - (gr_line (start 0.762 -3.302) (end 0 -4.064) (width 0.25)) - )) - (pad 23 smd custom (at -11.43 0.762 ${p.rot + 180}) (size 0.25 0.25) (layers B.Cu) ${p.P0.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) - (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) - (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) - )) - (pad 2 smd custom (at -11.43 -0.762 ${p.rot}) (size 0.25 0.25) (layers B.Cu) ${p.GND.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) - (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) - (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) - )) - (pad 2 thru_hole circle (at -11.43 -0.762 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers *.Cu) ${p.GND.str}) - (pad 23 thru_hole circle (at -11.43 0.762 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers *.Cu) ${p.P0.str}) - (pad 24 thru_hole circle (at -13.97 0.762 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers *.Cu) ${p.P1.str}) - (pad 1 thru_hole circle (at -13.97 -0.762 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers *.Cu) ${p.RAW.str}) - (pad 24 smd custom (at -13.97 0.762 ${p.rot + 180}) (size 0.25 0.25) (layers B.Cu) ${p.P1.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) - (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) - (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) - )) - (pad 1 smd custom (at -13.97 -0.762 ${p.rot}) (size 0.25 0.25) (layers B.Cu) ${p.RAW.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) - (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) - (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) - )) - (pad 1 smd custom (at -13.97 -0.762 ${p.rot}) (size 0.25 0.25) (layers F.Cu) ${p.RAW.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end 0.766 -0.766) (width 0.25)) - (gr_line (start 0.766 -0.766) (end 0.766 -3.298) (width 0.25)) - (gr_line (start 0.766 -3.298) (end 0 -4.064) (width 0.25)) - )) - (pad 24 smd custom (at -13.97 0.762 ${p.rot + 180}) (size 0.25 0.25) (layers F.Cu) ${p.P1.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end 0.762 -0.762) (width 0.25)) - (gr_line (start 0.762 -0.762) (end 0.762 -3.302) (width 0.25)) - (gr_line (start 0.762 -3.302) (end 0 -4.064) (width 0.25)) - )) - (pad 22 thru_hole circle (at -8.89 0.762 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers *.Cu) ${p.GND.str}) - (pad 3 thru_hole circle (at -8.89 -0.762 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers *.Cu) ${p.RST.str}) - (pad 22 smd custom (at -8.89 0.762 ${p.rot + 180}) (size 0.25 0.25) (layers B.Cu) ${p.GND.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) - (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) - (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) - )) - (pad 3 smd custom (at -8.89 -0.762 ${p.rot}) (size 0.25 0.25) (layers B.Cu) ${p.RST.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) - (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) - (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) - )) - (pad 3 smd custom (at -8.89 -0.762 ${p.rot}) (size 0.25 0.25) (layers F.Cu) ${p.RST.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end 0.766 -0.766) (width 0.25)) - (gr_line (start 0.766 -0.766) (end 0.766 -3.298) (width 0.25)) - (gr_line (start 0.766 -3.298) (end 0 -4.064) (width 0.25)) - )) - (pad 22 smd custom (at -8.89 0.762 ${p.rot + 180}) (size 0.25 0.25) (layers F.Cu) ${p.GND.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end 0.762 -0.762) (width 0.25)) - (gr_line (start 0.762 -0.762) (end 0.762 -3.302) (width 0.25)) - (gr_line (start 0.762 -3.302) (end 0 -4.064) (width 0.25)) - )) - (pad 21 thru_hole circle (at -6.35 0.762 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers *.Cu) ${p.GND.str}) - (pad 4 thru_hole circle (at -6.35 -0.762 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers *.Cu) ${p.VCC.str}) - (pad 21 smd custom (at -6.35 0.762 ${p.rot + 180}) (size 0.25 0.25) (layers B.Cu) ${p.GND.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) - (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) - (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) - )) - (pad 4 smd custom (at -6.35 -0.762 ${p.rot}) (size 0.25 0.25) (layers B.Cu) ${p.VCC.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) - (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) - (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) - )) - (pad 4 smd custom (at -6.35 -0.762 ${p.rot}) (size 0.25 0.25) (layers F.Cu) ${p.VCC.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end 0.766 -0.766) (width 0.25)) - (gr_line (start 0.766 -0.766) (end 0.766 -3.298) (width 0.25)) - (gr_line (start 0.766 -3.298) (end 0 -4.064) (width 0.25)) - )) - (pad 21 smd custom (at -6.35 0.762 ${p.rot + 180}) (size 0.25 0.25) (layers F.Cu) ${p.GND.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end 0.762 -0.762) (width 0.25)) - (gr_line (start 0.762 -0.762) (end 0.762 -3.302) (width 0.25)) - (gr_line (start 0.762 -3.302) (end 0 -4.064) (width 0.25)) - )) - (pad 20 thru_hole circle (at -3.81 0.762 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers *.Cu) ${p.P2.str}) - (pad 5 thru_hole circle (at -3.81 -0.762 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers *.Cu) ${p.P21.str}) - (pad 20 smd custom (at -3.81 0.762 ${p.rot + 180}) (size 0.25 0.25) (layers B.Cu) ${p.P2.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) - (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) - (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) - )) - (pad 5 smd custom (at -3.81 -0.762 ${p.rot}) (size 0.25 0.25) (layers B.Cu) ${p.P21.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) - (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) - (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) - )) - (pad 5 smd custom (at -3.81 -0.762 ${p.rot}) (size 0.25 0.25) (layers F.Cu) ${p.P21.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end 0.766 -0.766) (width 0.25)) - (gr_line (start 0.766 -0.766) (end 0.766 -3.298) (width 0.25)) - (gr_line (start 0.766 -3.298) (end 0 -4.064) (width 0.25)) - )) - (pad 20 smd custom (at -3.81 0.762 ${p.rot + 180}) (size 0.25 0.25) (layers F.Cu) ${p.P2.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end 0.762 -0.762) (width 0.25)) - (gr_line (start 0.762 -0.762) (end 0.762 -3.302) (width 0.25)) - (gr_line (start 0.762 -3.302) (end 0 -4.064) (width 0.25)) - )) - (pad 19 thru_hole circle (at -1.27 0.762 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers *.Cu) ${p.P3.str}) - (pad 6 thru_hole circle (at -1.27 -0.762 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers *.Cu) ${p.P20.str}) - (pad 19 smd custom (at -1.27 0.762 ${p.rot + 180}) (size 0.25 0.25) (layers B.Cu) ${p.P3.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) - (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) - (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) - )) - (pad 6 smd custom (at -1.27 -0.762 ${p.rot}) (size 0.25 0.25) (layers B.Cu) ${p.P20.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) - (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) - (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) - )) - (pad 6 smd custom (at -1.27 -0.762 ${p.rot}) (size 0.25 0.25) (layers F.Cu) ${p.P20.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end 0.766 -0.766) (width 0.25)) - (gr_line (start 0.766 -0.766) (end 0.766 -3.298) (width 0.25)) - (gr_line (start 0.766 -3.298) (end 0 -4.064) (width 0.25)) - )) - (pad 19 smd custom (at -1.27 0.762 ${p.rot + 180}) (size 0.25 0.25) (layers F.Cu) ${p.P3.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end 0.762 -0.762) (width 0.25)) - (gr_line (start 0.762 -0.762) (end 0.762 -3.302) (width 0.25)) - (gr_line (start 0.762 -3.302) (end 0 -4.064) (width 0.25)) - )) - (pad 18 thru_hole circle (at 1.27 0.762 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers *.Cu) ${p.P4.str}) - (pad 7 thru_hole circle (at 1.27 -0.762 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers *.Cu) ${p.P19.str}) - (pad 18 smd custom (at 1.27 0.762 ${p.rot + 180}) (size 0.25 0.25) (layers B.Cu) ${p.P4.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) - (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) - (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) - )) - (pad 7 smd custom (at 1.27 -0.762 ${p.rot}) (size 0.25 0.25) (layers B.Cu) ${p.P19.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) - (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) - (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) - )) - (pad 7 smd custom (at 1.27 -0.762 ${p.rot}) (size 0.25 0.25) (layers F.Cu) ${p.P19.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end 0.766 -0.766) (width 0.25)) - (gr_line (start 0.766 -0.766) (end 0.766 -3.298) (width 0.25)) - (gr_line (start 0.766 -3.298) (end 0 -4.064) (width 0.25)) - )) - (pad 18 smd custom (at 1.27 0.762 ${p.rot + 180}) (size 0.25 0.25) (layers F.Cu) ${p.P4.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end 0.762 -0.762) (width 0.25)) - (gr_line (start 0.762 -0.762) (end 0.762 -3.302) (width 0.25)) - (gr_line (start 0.762 -3.302) (end 0 -4.064) (width 0.25)) - )) - (pad 17 thru_hole circle (at 3.81 0.762 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers *.Cu) ${p.P5.str}) - (pad 8 thru_hole circle (at 3.81 -0.762 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers *.Cu) ${p.P18.str}) - (pad 17 smd custom (at 3.81 0.762 ${p.rot + 180}) (size 0.25 0.25) (layers B.Cu) ${p.P5.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) - (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) - (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) - )) - (pad 8 smd custom (at 3.81 -0.762 ${p.rot}) (size 0.25 0.25) (layers B.Cu) ${p.P18.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) - (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) - (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) - )) - (pad 8 smd custom (at 3.81 -0.762 ${p.rot}) (size 0.25 0.25) (layers F.Cu) ${p.P18.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end 0.766 -0.766) (width 0.25)) - (gr_line (start 0.766 -0.766) (end 0.766 -3.298) (width 0.25)) - (gr_line (start 0.766 -3.298) (end 0 -4.064) (width 0.25)) - )) - (pad 17 smd custom (at 3.81 0.762 ${p.rot + 180}) (size 0.25 0.25) (layers F.Cu) ${p.P5.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end 0.762 -0.762) (width 0.25)) - (gr_line (start 0.762 -0.762) (end 0.762 -3.302) (width 0.25)) - (gr_line (start 0.762 -3.302) (end 0 -4.064) (width 0.25)) - )) - (pad 16 thru_hole circle (at 6.35 0.762 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers *.Cu) ${p.P6.str}) - (pad 9 thru_hole circle (at 6.35 -0.762 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers *.Cu) ${p.P15.str}) - (pad 16 smd custom (at 6.35 0.762 ${p.rot + 180}) (size 0.25 0.25) (layers B.Cu) ${p.P6.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) - (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) - (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) - )) - (pad 9 smd custom (at 6.35 -0.762 ${p.rot}) (size 0.25 0.25) (layers B.Cu) ${p.P15.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) - (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) - (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) - )) - (pad 9 smd custom (at 6.35 -0.762 ${p.rot}) (size 0.25 0.25) (layers F.Cu) ${p.P15.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end 0.766 -0.766) (width 0.25)) - (gr_line (start 0.766 -0.766) (end 0.766 -3.298) (width 0.25)) - (gr_line (start 0.766 -3.298) (end 0 -4.064) (width 0.25)) - )) - (pad 16 smd custom (at 6.35 0.762 ${p.rot + 180}) (size 0.25 0.25) (layers F.Cu) ${p.P6.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end 0.762 -0.762) (width 0.25)) - (gr_line (start 0.762 -0.762) (end 0.762 -3.302) (width 0.25)) - (gr_line (start 0.762 -3.302) (end 0 -4.064) (width 0.25)) - )) - (pad 15 thru_hole circle (at 8.89 0.762 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers *.Cu) ${p.P7.str}) - (pad 10 thru_hole circle (at 8.89 -0.762 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers *.Cu) ${p.P14.str}) - (pad 15 smd custom (at 8.89 0.762 ${p.rot + 180}) (size 0.25 0.25) (layers B.Cu) ${p.P7.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) - (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) - (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) - )) - (pad 10 smd custom (at 8.89 -0.762 ${p.rot}) (size 0.25 0.25) (layers B.Cu) ${p.P14.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) - (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) - (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) - )) - (pad 10 smd custom (at 8.89 -0.762 ${p.rot}) (size 0.25 0.25) (layers F.Cu) ${p.P14.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end 0.766 -0.766) (width 0.25)) - (gr_line (start 0.766 -0.766) (end 0.766 -3.298) (width 0.25)) - (gr_line (start 0.766 -3.298) (end 0 -4.064) (width 0.25)) - )) - (pad 15 smd custom (at 8.89 0.762 ${p.rot + 180}) (size 0.25 0.25) (layers F.Cu) ${p.P7.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end 0.762 -0.762) (width 0.25)) - (gr_line (start 0.762 -0.762) (end 0.762 -3.302) (width 0.25)) - (gr_line (start 0.762 -3.302) (end 0 -4.064) (width 0.25)) - )) - (pad 14 thru_hole circle (at 11.43 0.762 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers *.Cu) ${p.P8.str}) - (pad 11 thru_hole circle (at 11.43 -0.762 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers *.Cu) ${p.P16.str}) - (pad 14 smd custom (at 11.43 0.762 ${p.rot + 180}) (size 0.25 0.25) (layers B.Cu) ${p.P8.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) - (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) - (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) - )) - (pad 11 smd custom (at 11.43 -0.762 ${p.rot}) (size 0.25 0.25) (layers B.Cu) ${p.P16.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) - (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) - (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) - )) - (pad 11 smd custom (at 11.43 -0.762 ${p.rot}) (size 0.25 0.25) (layers F.Cu) ${p.P16.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end 0.766 -0.766) (width 0.25)) - (gr_line (start 0.766 -0.766) (end 0.766 -3.298) (width 0.25)) - (gr_line (start 0.766 -3.298) (end 0 -4.064) (width 0.25)) - )) - (pad 14 smd custom (at 11.43 0.762 ${p.rot + 180}) (size 0.25 0.25) (layers F.Cu) ${p.P8.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end 0.762 -0.762) (width 0.25)) - (gr_line (start 0.762 -0.762) (end 0.762 -3.302) (width 0.25)) - (gr_line (start 0.762 -3.302) (end 0 -4.064) (width 0.25)) - )) - (pad 13 thru_hole circle (at 13.97 0.762 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers *.Cu) ${p.P9.str}) - (pad 12 thru_hole circle (at 13.97 -0.762 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers *.Cu) ${p.P10.str}) - (pad 13 smd custom (at 13.97 0.762 ${p.rot + 180}) (size 0.25 0.25) (layers B.Cu) ${p.P9.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) - (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) - (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) - )) - (pad 12 smd custom (at 13.97 -0.762 ${p.rot}) (size 0.25 0.25) (layers B.Cu) ${p.P10.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) - (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) - (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) - )) - (pad 12 smd custom (at 13.97 -0.762 ${p.rot}) (size 0.25 0.25) (layers F.Cu) ${p.P10.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end 0.766 -0.766) (width 0.25)) - (gr_line (start 0.766 -0.766) (end 0.766 -3.298) (width 0.25)) - (gr_line (start 0.766 -3.298) (end 0 -4.064) (width 0.25)) - )) - (pad 13 smd custom (at 13.97 0.762 ${p.rot + 180}) (size 0.25 0.25) (layers F.Cu) ${p.P9.str} - (zone_connect 0) - (options (clearance outline) (anchor circle)) - (primitives - (gr_line (start 0 0) (end 0.762 -0.762) (width 0.25)) - (gr_line (start 0.762 -0.762) (end 0.762 -3.302) (width 0.25)) - (gr_line (start 0.762 -3.302) (end 0 -4.064) (width 0.25)) - )) - - ${''/* Outline of nice!nano */} - (fp_line (start 15.24 8.89) (end 15.24 -8.89) (layer F.Fab) (width 0.15)) - (fp_line (start -15.24 8.89) (end 15.24 8.89) (layer F.Fab) (width 0.15)) - (fp_line (start -17.78 -8.89) (end -17.78 8.89) (layer F.Fab) (width 0.15)) - (fp_line (start -17.78 8.89) (end -15.24 8.89) (layer F.Fab) (width 0.15)) - (fp_line (start -15.24 -8.89) (end -17.78 -8.89) (layer F.Fab) (width 0.15)) - (fp_line (start 15.24 -8.89) (end -15.24 -8.89) (layer F.Fab) (width 0.15)) - - (fp_line (start 15.24 8.89) (end 15.24 -8.89) (layer B.Fab) (width 0.15)) - (fp_line (start -15.24 8.89) (end 15.24 8.89) (layer B.Fab) (width 0.15)) - (fp_line (start -17.78 -8.89) (end -17.78 8.89) (layer B.Fab) (width 0.15)) - (fp_line (start -17.78 8.89) (end -15.24 8.89) (layer B.Fab) (width 0.15)) - (fp_line (start -15.24 -8.89) (end -17.78 -8.89) (layer B.Fab) (width 0.15)) - (fp_line (start 15.24 -8.89) (end -15.24 -8.89) (layer B.Fab) (width 0.15)) - - (fp_line (start -19.304 -3.556) (end -17.78 -3.556) (layer Dwgs.User) (width 0.15)) - (fp_line (start -17.78 3.81) (end -19.304 3.81) (layer Dwgs.User) (width 0.15)) - (fp_line (start -19.304 3.81) (end -19.304 -3.556) (layer Dwgs.User) (width 0.15)) - ${''/* Labels for pins */} - ${ p.show_labels ? pin_labels : ''} - ) - ` - } - } diff --git a/input/footprints/nice_view.js b/input/footprints/nice_view.js deleted file mode 100644 index 09def9e..0000000 --- a/input/footprints/nice_view.js +++ /dev/null @@ -1,236 +0,0 @@ -module.exports = { - params: { - designator: 'DISP', - side: 'F', - reverse: false, - MOSI: {type: 'net', value: 'MOSI'}, - SCK: {type: 'net', value: 'SCK'}, - VCC: {type: 'net', value: 'VCC'}, - GND: {type: 'net', value: 'GND'}, - CS: {type: 'net', value: 'CS'}, - show_labels: {type: 'boolean', value: true}, - jumpers_at_bottom: false, - }, - body: p => { - - let dst_nets = [ - p.MOSI.str, - p.SCK.str, - p.VCC.str, - p.GND.str, - p.CS.str, - ]; - local_nets = [ - p.local_net("1").str, - p.local_net("2").str, - p.VCC.str, - p.local_net("4").str, - p.local_net("5").str, - ]; - - let socket_nets = dst_nets; - if(p.reverse) { - socket_nets = local_nets; - } else if(p.side == 'B') { - socket_nets = dst_nets.slice().reverse(); - } - - let jumpers_offset = 0; - let jumpers_rot = 0; - let labels_offset = 0; - let label_vcc_offset = 0; - - let jumpers_front_top = dst_nets; - let jumpers_front_bottom = local_nets; - let jumpers_back_top = dst_nets; - let jumpers_back_bottom = local_nets.slice().reverse(); - if(p.jumpers_at_bottom) { - jumpers_offset = 5.7; - jumpers_rot = 180; - labels_offset = jumpers_offset + 2 + 1 + 0.1; - label_vcc_offset = 4.85; - - jumpers_front_top = local_nets; - jumpers_front_bottom = dst_nets; - jumpers_back_top = local_nets.slice().reverse(); - jumpers_back_bottom = dst_nets; - } - - const top = ` - (module nice!view (layer F.Cu) (tedit 6448AF5B) - ${p.at /* parametric position */} - (attr virtual) - (fp_text reference "${p.ref}" (at 0 20 ${p.rot}) (layer ${p.side}.SilkS) ${p.ref_hide} - (effects (font (size 1 1) (thickness 0.15))) - ) - ` - const front = ` - (fp_line (start -6.5 -18) (end 6.5 -18) (layer F.Fab) (width 0.15)) - (fp_line (start 6.5 18) (end -6.5 18) (layer F.Fab) (width 0.15)) - (fp_line (start -7 17.5) (end -7 -17.5) (layer F.Fab) (width 0.15)) - (fp_line (start 7 17.5) (end 7 -17.5) (layer F.Fab) (width 0.15)) - (fp_line (start -6.41 15.37) (end -6.41 18.03) (layer F.SilkS) (width 0.12)) - (fp_line (start 6.41 18.03) (end -6.41 18.03) (layer F.SilkS) (width 0.12)) - (fp_line (start 6.88 14.9) (end 6.88 18.45) (layer F.CrtYd) (width 0.15)) - (fp_line (start 6.88 18.45) (end -6.82 18.45) (layer F.CrtYd) (width 0.15)) - (fp_line (start -6.82 18.45) (end -6.82 14.9) (layer F.CrtYd) (width 0.15)) - (fp_line (start -6.82 14.9) (end 6.88 14.9) (layer F.CrtYd) (width 0.15)) - (fp_line (start 6.41 15.37) (end 6.41 18.03) (layer F.SilkS) (width 0.12)) - (fp_line (start 6.41 15.37) (end -6.41 15.37) (layer F.SilkS) (width 0.12)) - (fp_arc (start -6.5 17.5) (end -7 17.5) (angle -90) (layer F.Fab) (width 0.15)) - (fp_arc (start 6.5 17.5) (end 6.5 18) (angle -90) (layer F.Fab) (width 0.15)) - (fp_arc (start 6.5 -17.5) (end 6.5 -18) (angle 90) (layer F.Fab) (width 0.15)) - (fp_arc (start -6.5 -17.5) (end -6.5 -18) (angle -90) (layer F.Fab) (width 0.15)) - (fp_text user %R (at 0 20 ${p.rot}) (layer F.Fab) - (effects (font (size 1 1) (thickness 0.15))) - ) - - ` - - const front_jumpers = ` - (fp_line (start 5.93 ${12.9 + jumpers_offset}) (end 5.93 ${14.9 + jumpers_offset}) (layer F.Fab) (width 0.15)) - (fp_line (start -5.93 ${14.9 + jumpers_offset}) (end -5.93 ${12.9 + jumpers_offset}) (layer F.Fab) (width 0.15)) - (fp_line (start -5.93 ${12.9 + jumpers_offset}) (end -4.23 ${12.9 + jumpers_offset}) (layer F.Fab) (width 0.15)) - (fp_line (start -4.23 ${14.9 + jumpers_offset}) (end -5.93 ${14.9 + jumpers_offset}) (layer F.Fab) (width 0.15)) - (fp_line (start -4.23 ${12.9 + jumpers_offset}) (end -4.23 ${14.9 + jumpers_offset}) (layer F.Fab) (width 0.15)) - (fp_line (start -3.39 ${14.9 + jumpers_offset}) (end -3.39 ${12.9 + jumpers_offset}) (layer F.Fab) (width 0.15)) - (fp_line (start -3.39 ${12.9 + jumpers_offset}) (end -1.69 ${12.9 + jumpers_offset}) (layer F.Fab) (width 0.15)) - (fp_line (start -1.69 ${14.9 + jumpers_offset}) (end -3.39 ${14.9 + jumpers_offset}) (layer F.Fab) (width 0.15)) - (fp_line (start -1.69 ${12.9 + jumpers_offset}) (end -1.69 ${14.9 + jumpers_offset}) (layer F.Fab) (width 0.15)) - (fp_line (start 3.39 ${12.9 + jumpers_offset}) (end 3.39 ${14.9 + jumpers_offset}) (layer F.Fab) (width 0.15)) - (fp_line (start 3.39 ${14.9 + jumpers_offset}) (end 1.69 ${14.9 + jumpers_offset}) (layer F.Fab) (width 0.15)) - (fp_line (start 1.69 ${14.9 + jumpers_offset}) (end 1.69 ${12.9 + jumpers_offset}) (layer F.Fab) (width 0.15)) - (fp_line (start 1.69 ${12.9 + jumpers_offset}) (end 3.39 ${12.9 + jumpers_offset}) (layer F.Fab) (width 0.15)) - (fp_line (start 5.93 ${14.9 + jumpers_offset}) (end 4.23 ${14.9 + jumpers_offset}) (layer F.Fab) (width 0.15)) - (fp_line (start 4.23 ${14.9 + jumpers_offset}) (end 4.23 ${12.9 + jumpers_offset}) (layer F.Fab) (width 0.15)) - (fp_line (start 4.23 ${12.9 + jumpers_offset}) (end 5.93 ${12.9 + jumpers_offset}) (layer F.Fab) (width 0.15)) - - (pad 14 smd rect (at -5.08 ${13.45 + jumpers_offset} ${90 + p.rot}) (size 0.6 1.2) (layers F.Cu F.Mask) ${ jumpers_front_top[0] }) - (pad 15 smd rect (at -2.54 ${13.45 + jumpers_offset} ${90 + p.rot}) (size 0.6 1.2) (layers F.Cu F.Mask) ${ jumpers_front_top[1] }) - (pad 16 smd rect (at 2.54 ${13.45 + jumpers_offset} ${90 + p.rot}) (size 0.6 1.2) (layers F.Cu F.Mask) ${ jumpers_front_top[3] }) - (pad 17 smd rect (at 5.08 ${13.45 + jumpers_offset} ${90 + p.rot}) (size 0.6 1.2) (layers F.Cu F.Mask) ${ jumpers_front_top[4] }) - - (pad 10 smd rect (at -5.08 ${14.35 + jumpers_offset} ${90 + p.rot}) (size 0.6 1.2) (layers F.Cu F.Mask) ${ jumpers_front_bottom[0] }) - (pad 11 smd rect (at -2.54 ${14.35 + jumpers_offset} ${90 + p.rot}) (size 0.6 1.2) (layers F.Cu F.Mask) ${ jumpers_front_bottom[1] }) - (pad 12 smd rect (at 2.54 ${14.35 + jumpers_offset} ${90 + p.rot}) (size 0.6 1.2) (layers F.Cu F.Mask) ${ jumpers_front_bottom[3] }) - (pad 13 smd rect (at 5.08 ${14.35 + jumpers_offset} ${90 + p.rot}) (size 0.6 1.2) (layers F.Cu F.Mask) ${ jumpers_front_bottom[4] }) - ` - - const back = ` - (fp_line (start 6.41 15.37) (end 6.41 18.03) (layer B.SilkS) (width 0.12)) - (fp_line (start 6.41 15.37) (end -6.41 15.37) (layer B.SilkS) (width 0.12)) - (fp_line (start 6.41 18.03) (end -6.41 18.03) (layer B.SilkS) (width 0.12)) - (fp_line (start 6.88 14.9) (end 6.88 18.45) (layer B.CrtYd) (width 0.15)) - (fp_line (start 6.88 18.45) (end -6.82 18.45) (layer B.CrtYd) (width 0.15)) - (fp_line (start -6.82 18.45) (end -6.82 14.9) (layer B.CrtYd) (width 0.15)) - (fp_line (start -6.82 14.9) (end 6.88 14.9) (layer B.CrtYd) (width 0.15)) - (fp_line (start -6.41 15.37) (end -6.41 18.03) (layer B.SilkS) (width 0.12)) - (fp_line (start -6.5 18) (end 6.5 18) (layer B.Fab) (width 0.15)) - (fp_line (start 7 -17.5) (end 7 17.5) (layer B.Fab) (width 0.15)) - (fp_line (start 6.5 -18) (end -6.5 -18) (layer B.Fab) (width 0.15)) - (fp_line (start -7 -17.5) (end -7 17.5) (layer B.Fab) (width 0.15)) - (fp_arc (start -6.5 -17.5) (end -7 -17.5) (angle 90) (layer B.Fab) (width 0.15)) - (fp_arc (start 6.5 -17.5) (end 6.5 -18) (angle 90) (layer B.Fab) (width 0.15)) - (fp_arc (start 6.5 17.5) (end 6.5 18) (angle -90) (layer B.Fab) (width 0.15)) - (fp_arc (start -6.5 17.5) (end -6.5 18) (angle 90) (layer B.Fab) (width 0.15)) - ` - - const back_jumpers = ` - (fp_line (start -5.93 ${12.9 + jumpers_offset}) (end -5.93 ${14.9 + jumpers_offset}) (layer B.Fab) (width 0.15)) - (fp_line (start -5.93 ${14.9 + jumpers_offset}) (end -4.23 ${14.9 + jumpers_offset}) (layer B.Fab) (width 0.15)) - (fp_line (start -4.23 ${12.9 + jumpers_offset}) (end -5.93 ${12.9 + jumpers_offset}) (layer B.Fab) (width 0.15)) - (fp_line (start -4.23 ${14.9 + jumpers_offset}) (end -4.23 ${12.9 + jumpers_offset}) (layer B.Fab) (width 0.15)) - (fp_line (start -3.39 ${14.9 + jumpers_offset}) (end -1.69 ${14.9 + jumpers_offset}) (layer B.Fab) (width 0.15)) - (fp_line (start -1.69 ${12.9 + jumpers_offset}) (end -3.39 ${12.9 + jumpers_offset}) (layer B.Fab) (width 0.15)) - (fp_line (start 4.23 ${14.9 + jumpers_offset}) (end 5.93 ${14.9 + jumpers_offset}) (layer B.Fab) (width 0.15)) - (fp_line (start 5.93 ${14.9 + jumpers_offset}) (end 5.93 ${12.9 + jumpers_offset}) (layer B.Fab) (width 0.15)) - (fp_line (start 3.39 ${12.9 + jumpers_offset}) (end 1.69 ${12.9 + jumpers_offset}) (layer B.Fab) (width 0.15)) - (fp_line (start -1.69 ${14.9 + jumpers_offset}) (end -1.69 ${12.9 + jumpers_offset}) (layer B.Fab) (width 0.15)) - (fp_line (start -3.39 ${12.9 + jumpers_offset}) (end -3.39 ${14.9 + jumpers_offset}) (layer B.Fab) (width 0.15)) - (fp_line (start 1.69 ${12.9 + jumpers_offset}) (end 1.69 ${14.9 + jumpers_offset}) (layer B.Fab) (width 0.15)) - (fp_line (start 1.69 ${14.9 + jumpers_offset}) (end 3.39 ${14.9 + jumpers_offset}) (layer B.Fab) (width 0.15)) - (fp_line (start 3.39 ${14.9 + jumpers_offset}) (end 3.39 ${12.9 + jumpers_offset}) (layer B.Fab) (width 0.15)) - (fp_line (start 5.93 ${12.9 + jumpers_offset}) (end 4.23 ${12.9 + jumpers_offset}) (layer B.Fab) (width 0.15)) - (fp_line (start 4.23 ${12.9 + jumpers_offset}) (end 4.23 ${14.9 + jumpers_offset}) (layer B.Fab) (width 0.15)) - - (pad 24 smd rect (at 5.08 ${13.45 + jumpers_offset} ${270 + p.rot}) (size 0.6 1.2) (layers B.Cu B.Mask) ${ jumpers_back_top[0] }) - (pad 25 smd rect (at 2.54 ${13.45 + jumpers_offset} ${270 + p.rot}) (size 0.6 1.2) (layers B.Cu B.Mask) ${ jumpers_back_top[1] }) - (pad 26 smd rect (at -2.54 ${13.45 + jumpers_offset} ${270 + p.rot}) (size 0.6 1.2) (layers B.Cu B.Mask) ${ jumpers_back_top[3] }) - (pad 27 smd rect (at -5.08 ${13.45 + jumpers_offset} ${270 + p.rot}) (size 0.6 1.2) (layers B.Cu B.Mask) ${ jumpers_back_top[4] }) - - (pad 20 smd rect (at 5.08 ${14.35 + jumpers_offset} ${270 + p.rot}) (size 0.6 1.2) (layers B.Cu B.Mask) ${ jumpers_back_bottom[0] }) - (pad 21 smd rect (at 2.54 ${14.35 + jumpers_offset} ${270 + p.rot}) (size 0.6 1.2) (layers B.Cu B.Mask) ${ jumpers_back_bottom[1] }) - (pad 22 smd rect (at -2.54 ${14.35 + jumpers_offset} ${270 + p.rot}) (size 0.6 1.2) (layers B.Cu B.Mask) ${ jumpers_back_bottom[3] }) - (pad 23 smd rect (at -5.08 ${14.35 + jumpers_offset} ${270 + p.rot}) (size 0.6 1.2) (layers B.Cu B.Mask) ${ jumpers_back_bottom[4] }) - ` - - const labels = ` - (fp_text user DA (at -5.08 ${12.5 + labels_offset} ${p.rot}) (layer F.SilkS) - (effects (font (size 1 0.7) (thickness 0.1))) - ) - (fp_text user CS (at 5.12 ${12.5 + labels_offset} ${p.rot}) (layer F.SilkS) - (effects (font (size 1 0.7) (thickness 0.1))) - ) - (fp_text user GND (at 2.62 ${12.5 + labels_offset} ${p.rot}) (layer F.SilkS) - (effects (font (size 1 0.7) (thickness 0.1))) - ) - (fp_text user VCC (at 0.15 ${14.4 + label_vcc_offset} ${p.rot}) (layer F.SilkS) - (effects (font (size 1 0.7) (thickness 0.1))) - ) - (fp_text user CL (at -2.48 ${12.5 + labels_offset} ${p.rot}) (layer F.SilkS) - (effects (font (size 1 0.7) (thickness 0.1))) - ) - (fp_text user CS (at -4.98 ${12.5 + labels_offset} ${p.rot}) (layer B.SilkS) - (effects (font (size 1 0.7) (thickness 0.1)) (justify mirror)) - ) - (fp_text user VCC (at 0.15 ${14.4 + label_vcc_offset} ${p.rot}) (layer B.SilkS) - (effects (font (size 1 0.7) (thickness 0.1)) (justify mirror)) - ) - (fp_text user DA (at 5.22 ${12.5 + labels_offset} ${p.rot}) (layer B.SilkS) - (effects (font (size 1 0.7) (thickness 0.1)) (justify mirror)) - ) - (fp_text user CL (at 2.72 ${12.5 + labels_offset} ${p.rot}) (layer B.SilkS) - (effects (font (size 1 0.7) (thickness 0.1)) (justify mirror)) - ) - (fp_text user GND (at -2.38 ${12.5 + labels_offset} ${p.rot}) (layer B.SilkS) - (effects (font (size 1 0.7) (thickness 0.1)) (justify mirror)) - ) - ` - - const bottom = ` - (pad 1 thru_hole oval (at -5.08 16.7 ${270 + p.rot}) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) ${ socket_nets[0] }) - (pad 2 thru_hole oval (at -2.54 16.7 ${270 + p.rot}) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) ${ socket_nets[1] }) - (pad 3 thru_hole oval (at 0 16.7 ${270 + p.rot}) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) ${ socket_nets[2] }) - (pad 4 thru_hole oval (at 2.54 16.7 ${270 + p.rot}) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) ${ socket_nets[3] }) - (pad 5 thru_hole circle (at 5.08 16.7 ${270 + p.rot}) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) ${ socket_nets[4] }) - - (fp_line (start 5.4 13.4) (end 5.4 -11.9) (layer Dwgs.User) (width 0.15)) - (fp_line (start -5.4 13.4) (end -5.4 -11.9) (layer Dwgs.User) (width 0.15)) - (fp_line (start 5.4 -11.9) (end -5.4 -11.9) (layer Dwgs.User) (width 0.15)) - (fp_line (start -5.4 13.4) (end 5.4 13.4) (layer Dwgs.User) (width 0.15)) - ) - ` - - let final = top; - - if(p.side == "F" || p.reverse) { - final += front; - } - if(p.side == "B" || p.reverse) { - final += back; - } - - if(p.reverse) { - final += front_jumpers; - final += back_jumpers; - - if(p.show_labels) { - final += labels; - } - } - - final += bottom; - - return final; - } -} \ No newline at end of file diff --git a/input/footprints/pads.js b/input/footprints/pads.js deleted file mode 100644 index 0385915..0000000 --- a/input/footprints/pads.js +++ /dev/null @@ -1,175 +0,0 @@ -module.exports = { - params: { - designator: 'PAD', - side: 'F', - reverse: true, - width: 1.25, - height: 2.5, - space: 2, - mirror: true, - pads: 2, - net_1: {type: 'net', value: 'PAD_1'}, - net_2: {type: 'net', value: 'PAD_2'}, - net_3: {type: 'net', value: 'PAD_3'}, - net_4: {type: 'net', value: 'PAD_4'}, - net_5: {type: 'net', value: 'PAD_5'}, - net_6: {type: 'net', value: 'PAD_5'}, - label_1: '', - label_2: '', - label_3: '', - label_4: '', - label_5: '', - label_6: '', - label_at_bottom: false, - }, - body: p => { - - const gen_nets = (p) => { - const all_nets = [ - p.net_1.str, p.net_2.str, p.net_3.str, - p.net_4.str, p.net_5.str, p.net_6.str, - ]; - const all_labels = [ - p.label_1, p.label_2, p.label_3, - p.label_4, p.label_5, p.label_6, - ]; - - pad_cnt = p.pads; - if(pad_cnt > all_nets.length || pad_cnt > all_labels.length) { - pad_cnt = Math.min(all_nets.length, all_labels.length); - } - - let nets = []; - for(let i = 0; i < pad_cnt; i++) { - let net = [ - all_nets[i], - all_labels[i], - ]; - nets.push(net); - } - - return nets; - } - - const gen_pad = (pad_idx, pad_cnt, net_str, net_label, width, height, space, rot, layer, label_at_bottom) => - { - // Calculate the pad position from center - const pos_x_raw = (width + space) * pad_idx; - - // Adjust it so that the pads are centered in the middle - const pos_x = ( - pos_x_raw - (width + space) * (pad_cnt - 1) / 2 - ); - - let label_pos_y = -1 * (height / 2 + 0.2); - let label_justify_direction = "left"; - if(label_at_bottom) { - label_pos_y = label_pos_y * -1; - label_justify_direction = "right"; - } - - if(label_at_bottom == false || layer == 'B') { - if((rot > 0 && rot <= 180) || (rot <= -180)) { - label_justify_direction = "right"; - } else { - label_justify_direction = "left"; - } - } else { - if((rot > 0 && rot <= 180) || (rot <= -180)) { - label_justify_direction = "left"; - } else { - label_justify_direction = "right"; - } - } - - let justify_mirror = ''; - if(layer == 'B') { - justify_mirror = 'mirror' - } - - let label_justify = ''; - if(justify_mirror != '' || label_justify_direction != '') { - label_justify = `(justify ${label_justify_direction} ${justify_mirror})`; - } - - let pad = ` - (pad ${pad_idx + 1} smd rect (at ${pos_x} 0 ${rot}) (size ${width} ${height}) (layers ${layer}.Cu ${layer}.Paste ${layer}.Mask) ${net_str}) - ` - - if(net_label) { - pad += ` - (fp_text user "${net_label}" (at ${pos_x} ${label_pos_y} ${90 + rot}) (layer ${layer}.SilkS) - (effects (font (size 1 1) (thickness 0.1)) ${label_justify}) - ) - ` - } - - return pad; - } - - const gen_pads = (nets, width, height, space, rot, layer, label_at_bottom, mirror) => { - - if(mirror) { - nets = nets.slice().reverse(); - } - - let pads = ''; - for (let [net_idx, net] of nets.entries()) { - - const net_str = net[0]; - const net_label = net[1]; - - const pad = gen_pad( - net_idx, - nets.length, - net_str, - net_label, - width, - height, - space, - rot, - layer, - label_at_bottom, - ); - - pads += pad; - } - - return pads; - } - - const nets = gen_nets(p); - - let pads_front = ''; - if(p.side == 'F' || p.reverse) { - pads_front = gen_pads( - nets, - p.width, p.height, p.space, p.rot, "F", - p.label_at_bottom, false, - ); - } - - let pads_back = ''; - if(p.side == 'B' || p.reverse) { - pads_back = gen_pads( - nets, - p.width, p.height, p.space, p.rot, "B", - p.label_at_bottom, p.mirror, - ); - } - const fp = ` - (module pads (layer F.Cu) (tedit 6446BF3D) - ${p.at /* parametric position */} - (attr smd) - - (fp_text reference "${p.ref}" (at 0 2.2) (layer F.SilkS) ${p.ref_hide} - (effects (font (size 1 1) (thickness 0.15))) - ) - ${pads_front} - ${pads_back} - ) - ` - - return fp; - } -} diff --git a/input/footprints/smd_0805.js b/input/footprints/smd_0805.js deleted file mode 100644 index 91644cb..0000000 --- a/input/footprints/smd_0805.js +++ /dev/null @@ -1,220 +0,0 @@ -module.exports = { - params: { - designator: 'SMD', - side: 'F', - reverse: true, - space: 2, - mirror: true, - swap_pad_direction: false, - components: 2, - net_1_from: {type: 'net', value: 'SMD_1_F'}, - net_1_to: {type: 'net', value: 'SMD_1_T'}, - net_2_from: {type: 'net', value: 'SMD_2_F'}, - net_2_to: {type: 'net', value: 'SMD_2_T'}, - net_3_from: {type: 'net', value: 'SMD_3_F'}, - net_3_to: {type: 'net', value: 'SMD_3_T'}, - net_4_from: {type: 'net', value: 'SMD_4_F'}, - net_4_to: {type: 'net', value: 'SMD_4_T'}, - net_5_from: {type: 'net', value: 'SMD_5_F'}, - net_5_to: {type: 'net', value: 'SMD_5_T'}, - net_6_from: {type: 'net', value: 'SMD_6_F'}, - net_6_to: {type: 'net', value: 'SMD_6_T'}, - label_1: '', - label_2: '', - label_3: '', - label_4: '', - label_5: '', - label_6: '', - label_at_bottom: false, - }, - body: p => { - - const gen_nets = (p) => { - const all_nets_from = [ - p.net_1_from.str, p.net_2_from.str, p.net_3_from.str, - p.net_4_from.str, p.net_5_from.str, p.net_6_from.str, - ]; - const all_nets_to = [ - p.net_1_to.str, p.net_2_to.str, p.net_3_to.str, - p.net_4_to.str, p.net_5_to.str, p.net_6_to.str, - ]; - const all_labels = [ - p.label_1, p.label_2, p.label_3, - p.label_4, p.label_5, p.label_6, - ]; - - pad_cnt = p.components; - if(pad_cnt > all_nets_from.length || pad_cnt > all_nets_to.length || - pad_cnt > all_labels.length) { - pad_cnt = Math.min( - all_nets_from.length, all_nets_to.length, all_labels.length - ); - } - - let nets = []; - for(let i = 0; i < pad_cnt; i++) { - let net = [ - all_nets_from[i], - all_nets_to[i], - all_labels[i], - ]; - nets.push(net); - } - - return nets; - } - - const gen_pad = (pad_idx, pad_cnt, net_from, net_to, net_label, space, rot, layer, label_at_bottom) => - { - const width = 1.025; - const height= 3.36; - - // Calculate the pad position from center - const pos_x_raw = (width + space) * pad_idx; - - // Adjust it so that the pads are centered in the middle - const pos_x = ( - pos_x_raw - (width + space) * (pad_cnt - 1) / 2 - ); - - let label_pos_y = -1 * (height / 2 + 0.2); - let label_justify_direction = "left"; - if(label_at_bottom) { - label_pos_y = label_pos_y * -1; - label_justify_direction = "right"; - } - - if(label_at_bottom == false || layer == 'B') { - if((rot > 0 && rot <= 180) || (rot <= -180)) { - label_justify_direction = "right"; - } else { - label_justify_direction = "left"; - } - } else { - if((rot > 0 && rot <= 180) || (rot <= -180)) { - label_justify_direction = "left"; - } else { - label_justify_direction = "right"; - } - } - - let justify_mirror = ''; - if(layer == 'B') { - justify_mirror = 'mirror' - } - - let label_justify = ''; - if(justify_mirror != '' || label_justify_direction != '') { - label_justify = `(justify ${label_justify_direction} ${justify_mirror})`; - } - - let label_fab_justify = ''; - if(justify_mirror) { - label_fab_justify = `(justify ${justify_mirror})`; - } - - const pad_num = pad_idx*2+1; - let pad = ` - (fp_line (start ${0.625 + pos_x} -1) (end ${0.625 + pos_x} 1) (layer ${layer}.Fab) (width 0.1)) - (fp_line (start ${-0.625 + pos_x} -1) (end ${0.625 + pos_x} -1) (layer ${layer}.Fab) (width 0.1)) - (fp_line (start ${-0.625 + pos_x} 1) (end ${-0.625 + pos_x} -1) (layer ${layer}.Fab) (width 0.1)) - (fp_line (start ${0.625 + pos_x} 1) (end ${-0.625 + pos_x} 1) (layer ${layer}.Fab) (width 0.1)) - - (fp_line (start ${0.95 + pos_x} -1.68) (end ${0.95 + pos_x} 1.68) (layer ${layer}.CrtYd) (width 0.05)) - (fp_line (start ${-0.95 + pos_x} -1.68) (end ${0.95 + pos_x} -1.68) (layer ${layer}.CrtYd) (width 0.05)) - (fp_line (start ${-0.95 + pos_x} 1.68) (end ${-0.95 + pos_x} -1.68) (layer ${layer}.CrtYd) (width 0.05)) - (fp_line (start ${0.95 + pos_x} 1.68) (end ${-0.95 + pos_x} 1.68) (layer ${layer}.CrtYd) (width 0.05)) - - (fp_line (start ${0.735 + pos_x} 0.227064) (end ${0.735 + pos_x} -0.227064) (layer ${layer}.SilkS) (width 0.12)) - (fp_line (start ${-0.735 + pos_x} 0.227064) (end ${-0.735 + pos_x} -0.227064) (layer ${layer}.SilkS) (width 0.12)) - - (pad ${pad_num} smd roundrect (at ${0 + pos_x} 0.9125 ${90 + rot}) (size 1.025 1.4) (layers ${layer}.Cu ${layer}.Paste ${layer}.Mask) (roundrect_rratio 0.243902) ${net_from}) - (pad ${pad_num + 1} smd roundrect (at ${0 + pos_x} -0.9125 ${90 + rot}) (size 1.025 1.4) (layers ${layer}.Cu ${layer}.Paste ${layer}.Mask) (roundrect_rratio 0.243902) ${net_to}) - ` - - if(net_label) { - pad += ` - (fp_text user "${net_label}" (at ${0 + pos_x} 0 ${90 + rot}) (layer ${layer}.Fab) - (effects (font (size 0.5 0.5) (thickness 0.08)) ${label_fab_justify}) - ) - (fp_text user "${net_label}" (at ${pos_x} ${label_pos_y} ${90 + rot}) (layer ${layer}.SilkS) - (effects (font (size 1 1) (thickness 0.1)) ${label_justify}) - ) - ` - } - - return pad; - } - - const gen_pads = (nets, space, rot, layer, label_at_bottom, mirror, swap_pad_direction) => { - - if(mirror) { - nets = nets.slice().reverse(); - } - - let pads = ''; - for (let [net_idx, net] of nets.entries()) { - - let net_from = net[0]; - let net_to = net[1]; - const net_label = net[2]; - - if(swap_pad_direction) { - net_from = net[1]; - net_to = net[0]; - } - - const pad = gen_pad( - net_idx, - nets.length, - net_from, - net_to, - net_label, - space, - rot, - layer, - label_at_bottom, - swap_pad_direction, - ); - - pads += pad; - } - - return pads; - } - - const nets = gen_nets(p); - - let pads_front = ''; - if(p.side == 'F' || p.reverse) { - pads_front = gen_pads( - nets, - p.space, p.rot, "F", - p.label_at_bottom, false, p.swap_pad_direction, - ); - } - - let pads_back = ''; - if(p.side == 'B' || p.reverse) { - pads_back = gen_pads( - nets, - p.space, p.rot, "B", - p.label_at_bottom, p.mirror, p.swap_pad_direction, - ); - } - const fp = ` - (module smd_805 (layer F.Cu) (tedit 6446BF3D) - ${p.at /* parametric position */} - (attr smd) - - (fp_text reference "${p.ref}" (at 0 3) (layer F.SilkS) ${p.ref_hide} - (effects (font (size 1 1) (thickness 0.15))) - ) - ${pads_front} - ${pads_back} - ) - ` - - return fp; - } -} diff --git a/input/footprints/switch_power.js b/input/footprints/switch_power.js deleted file mode 100644 index d48eea3..0000000 --- a/input/footprints/switch_power.js +++ /dev/null @@ -1,116 +0,0 @@ -// Should be compatible with: -// - G-Switch MK-12C02-G015 -// - Alps SSSS811101 -// - PCM12SMTR - -module.exports = { - params: { - designator: 'SW', - side: 'F', - from: {type: 'net', value: 'BAT_P'}, - to: {type: 'net', value: 'RAW'}, - reverse: false, - }, - body: p => { - const shared_1 = ` - (module power_switch (layer F.Cu) (tedit 644556E6) - ${p.at /* parametric position */} - (attr smd) - - `; - - const front_switch = ` - (fp_text reference "${p.ref}" (at -3.6 0 ${-90 + p.rot}) (layer F.SilkS) ${p.ref_hide} - (effects (font (size 1 1) (thickness 0.15))) - ) - - (fp_line (start 0.415 -3.45) (end -0.375 -3.45) (layer F.SilkS) (width 0.12)) - (fp_line (start -0.375 3.45) (end 0.415 3.45) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.425 1.6) (end -1.425 -0.1) (layer F.SilkS) (width 0.12)) - (fp_line (start 1.425 2.85) (end 1.425 -2.85) (layer F.SilkS) (width 0.12)) - (fp_line (start 1.795 4.4) (end -2.755 4.4) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.795 1.65) (end 1.795 4.4) (layer F.CrtYd) (width 0.05)) - (fp_line (start 3.095 1.65) (end 1.795 1.65) (layer F.CrtYd) (width 0.05)) - (fp_line (start 3.095 -1.65) (end 3.095 1.65) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.795 -1.65) (end 3.095 -1.65) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.795 -4.4) (end 1.795 -1.65) (layer F.CrtYd) (width 0.05)) - (fp_line (start -2.755 -4.4) (end 1.795 -4.4) (layer F.CrtYd) (width 0.05)) - (fp_line (start -2.755 4.4) (end -2.755 -4.4) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.425 -1.4) (end -1.425 -1.6) (layer F.SilkS) (width 0.12)) - (fp_line (start -1.305 -3.35) (end -1.305 3.35) (layer F.Fab) (width 0.1)) - (fp_line (start 1.295 -3.35) (end -1.305 -3.35) (layer F.Fab) (width 0.1)) - (fp_line (start 1.295 3.35) (end 1.295 -3.35) (layer F.Fab) (width 0.1)) - (fp_line (start -1.305 3.35) (end 1.295 3.35) (layer F.Fab) (width 0.1)) - (fp_line (start 2.595 0.1) (end 1.295 0.1) (layer F.Fab) (width 0.1)) - (fp_line (start 2.645 0.15) (end 2.595 0.1) (layer F.Fab) (width 0.1)) - (fp_line (start 2.845 0.35) (end 2.645 0.15) (layer F.Fab) (width 0.1)) - (fp_line (start 2.845 1.2) (end 2.845 0.35) (layer F.Fab) (width 0.1)) - (fp_line (start 2.645 1.4) (end 2.845 1.2) (layer F.Fab) (width 0.1)) - (fp_line (start 1.345 1.4) (end 2.645 1.4) (layer F.Fab) (width 0.1)) - - (pad "" smd rect (at 1.125 -3.65 ${90 + p.rot}) (size 1 0.8) (layers F.Cu F.Paste F.Mask)) - (pad "" smd rect (at -1.085 -3.65 ${90 + p.rot}) (size 1 0.8) (layers F.Cu F.Paste F.Mask)) - (pad "" smd rect (at -1.085 3.65 ${90 + p.rot}) (size 1 0.8) (layers F.Cu F.Paste F.Mask)) - (pad 1 smd rect (at -1.735 2.25 ${90 + p.rot}) (size 0.7 1.5) (layers F.Cu F.Paste F.Mask)) - (pad 2 smd rect (at -1.735 -0.75 ${90 + p.rot}) (size 0.7 1.5) (layers F.Cu F.Paste F.Mask) ${p.from.str}) - (pad 3 smd rect (at -1.735 -2.25 ${90 + p.rot}) (size 0.7 1.5) (layers F.Cu F.Paste F.Mask) ${p.to.str}) - (pad "" smd rect (at 1.125 3.65 ${90 + p.rot}) (size 1 0.8) (layers F.Cu F.Paste F.Mask)) - - ` - const back_switch = ` - ${'' /* Add the optional parts here */} - (fp_text user "${p.ref}" (at -3.5 0 ${90 + p.rot}) (layer B.SilkS) ${p.ref_hide} - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - (fp_line (start 2.595 -0.1) (end 1.295 -0.1) (layer B.Fab) (width 0.1)) - (fp_line (start -1.305 3.35) (end -1.305 -3.35) (layer B.Fab) (width 0.1)) - (fp_line (start 2.645 -0.15) (end 2.595 -0.1) (layer B.Fab) (width 0.1)) - (fp_line (start -1.425 1.4) (end -1.425 1.6) (layer B.SilkS) (width 0.12)) - (fp_line (start 0.415 3.45) (end -0.375 3.45) (layer B.SilkS) (width 0.12)) - (fp_line (start -0.375 -3.45) (end 0.415 -3.45) (layer B.SilkS) (width 0.12)) - (fp_line (start -1.425 -1.6) (end -1.425 0.1) (layer B.SilkS) (width 0.12)) - (fp_line (start 1.425 -2.85) (end 1.425 2.85) (layer B.SilkS) (width 0.12)) - (fp_line (start 1.795 4.4) (end 1.795 1.65) (layer B.CrtYd) (width 0.05)) - (fp_line (start -2.755 4.4) (end 1.795 4.4) (layer B.CrtYd) (width 0.05)) - (fp_line (start 2.845 -1.2) (end 2.845 -0.35) (layer B.Fab) (width 0.1)) - (fp_line (start 1.345 -1.4) (end 2.645 -1.4) (layer B.Fab) (width 0.1)) - (fp_line (start 1.795 -4.4) (end -2.755 -4.4) (layer B.CrtYd) (width 0.05)) - (fp_line (start 1.795 -1.65) (end 1.795 -4.4) (layer B.CrtYd) (width 0.05)) - (fp_line (start 3.095 -1.65) (end 1.795 -1.65) (layer B.CrtYd) (width 0.05)) - (fp_line (start 2.845 -0.35) (end 2.645 -0.15) (layer B.Fab) (width 0.1)) - (fp_line (start 2.645 -1.4) (end 2.845 -1.2) (layer B.Fab) (width 0.1)) - (fp_line (start 1.295 -3.35) (end 1.295 3.35) (layer B.Fab) (width 0.1)) - (fp_line (start 1.295 3.35) (end -1.305 3.35) (layer B.Fab) (width 0.1)) - (fp_line (start -1.305 -3.35) (end 1.295 -3.35) (layer B.Fab) (width 0.1)) - (fp_line (start -2.755 -4.4) (end -2.755 4.4) (layer B.CrtYd) (width 0.05)) - (fp_line (start 3.095 1.65) (end 3.095 -1.65) (layer B.CrtYd) (width 0.05)) - (fp_line (start 1.795 1.65) (end 3.095 1.65) (layer B.CrtYd) (width 0.05)) - (pad "" smd rect (at -1.085 -3.65 ${270 + p.rot}) (size 1 0.8) (layers B.Cu B.Paste B.Mask)) - (pad "" smd rect (at 1.125 -3.65 ${270 + p.rot}) (size 1 0.8) (layers B.Cu B.Paste B.Mask)) - (pad 4 smd rect (at -1.735 2.25 ${270 + p.rot}) (size 0.7 1.5) (layers B.Cu B.Paste B.Mask)) - (pad "" smd rect (at -1.085 3.65 ${270 + p.rot}) (size 1 0.8) (layers B.Cu B.Paste B.Mask)) - (pad 5 smd rect (at -1.735 0.75 ${270 + p.rot}) (size 0.7 1.5) (layers B.Cu B.Paste B.Mask) ${p.from.str}) - (pad 6 smd rect (at -1.735 -2.25 ${270 + p.rot}) (size 0.7 1.5) (layers B.Cu B.Paste B.Mask) ${p.to.str}) - (pad "" smd rect (at 1.125 3.65 ${270 + p.rot}) (size 1 0.8) (layers B.Cu B.Paste B.Mask)) - ` - - const shared_2 = ` - (pad "" np_thru_hole circle (at 0.025 -1.5 ${90 + p.rot}) (size 0.9 0.9) (drill 0.9) (layers *.Cu *.Mask)) - (pad "" np_thru_hole circle (at 0.025 1.5 ${90 + p.rot}) (size 0.9 0.9) (drill 0.9) (layers *.Cu *.Mask)) - ) - ` - - let final = shared_1; - - if(p.side == "F" || p.reverse) { - final += front_switch; - } - if(p.side == "B" || p.reverse) { - final += back_switch; - } - - final += shared_2; - - return final; - } - } \ No newline at end of file diff --git a/input/footprints/switch_reset.js b/input/footprints/switch_reset.js deleted file mode 100644 index 0ef93bf..0000000 --- a/input/footprints/switch_reset.js +++ /dev/null @@ -1,90 +0,0 @@ -// Compatible with -// EVQ-P7A01P -module.exports = { - params: { - designator: 'SW', - side: 'F', - reverse: false, - from: {type: 'net', value: 'GND'}, - to: {type: 'net', value: 'RST'}, - }, - body: p => { - const top = ` - (module sw_reset_side (layer F.Cu) (tedit 64473C6F) - ${p.at /* parametric position */} - (attr smd) - - (fp_text reference "${p.ref}" (at 0 3.5 ${p.rot}) (layer ${p.side}.SilkS) ${p.ref_hide} - (effects (font (size 1 1) (thickness 0.15))) - ) - ` - const front = ` - (fp_line (start 1.7 2.75) (end -1.7 2.75) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.7 2.75) (end -1.7 -2.75) (layer F.CrtYd) (width 0.05)) - (fp_line (start 2.1 0.85) (end 2.1 -0.85) (layer F.Fab) (width 0.1)) - (fp_line (start 1.7 -1.1) (end 2.35 -1.1) (layer F.CrtYd) (width 0.05)) - (fp_line (start -1.7 -2.75) (end 1.7 -2.75) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.45 -1.75) (end 1.45 1.75) (layer F.Fab) (width 0.1)) - (fp_line (start 1.7 1.1) (end 1.7 2.75) (layer F.CrtYd) (width 0.05)) - (fp_line (start 2.35 1.1) (end 1.7 1.1) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.7 -2.75) (end 1.7 -1.1) (layer F.CrtYd) (width 0.05)) - (fp_line (start 1.55 -1.75) (end 1.55 1.75) (layer F.SilkS) (width 0.12)) - (fp_line (start 2.1 -0.85) (end 1.45 -0.85) (layer F.Fab) (width 0.1)) - (fp_line (start 2.35 -1.1) (end 2.35 1.1) (layer F.CrtYd) (width 0.05)) - (fp_line (start 2.1 0.85) (end 1.45 0.85) (layer F.Fab) (width 0.1)) - (fp_line (start -1.55 1.75) (end -1.55 -1.75) (layer F.SilkS) (width 0.12)) - (fp_line (start 1.45 1.75) (end -1.4 1.75) (layer F.Fab) (width 0.1)) - (fp_line (start -1.45 1.75) (end -1.45 -1.75) (layer F.Fab) (width 0.1)) - (fp_line (start -1.45 -1.75) (end 1.45 -1.75) (layer F.Fab) (width 0.1)) - - (pad 1 smd rect (at -0.72 -1.8 ${90 + p.rot}) (size 1.4 1.05) (layers F.Cu F.Paste F.Mask) ${p.from.str}) - - (pad 1 smd rect (at -0.72 1.8 ${90 + p.rot}) (size 1.4 1.05) (layers F.Cu F.Paste F.Mask) ${p.from.str}) - (pad 2 smd rect (at 0.72 -1.8 ${90 + p.rot}) (size 1.4 1.05) (layers F.Cu F.Paste F.Mask) ${p.to.str}) - (pad 2 smd rect (at 0.72 1.8 ${90 + p.rot}) (size 1.4 1.05) (layers F.Cu F.Paste F.Mask) ${p.to.str}) - ` - const back = ` - (fp_line (start -1.45 1.75) (end 1.45 1.75) (layer B.Fab) (width 0.1)) - (fp_line (start 1.45 1.75) (end 1.45 -1.75) (layer B.Fab) (width 0.1)) - (fp_line (start 1.7 -1.1) (end 1.7 -2.75) (layer B.CrtYd) (width 0.05)) - (fp_line (start 2.35 -1.1) (end 1.7 -1.1) (layer B.CrtYd) (width 0.05)) - (fp_line (start 1.7 2.75) (end 1.7 1.1) (layer B.CrtYd) (width 0.05)) - (fp_line (start 1.55 1.75) (end 1.55 -1.75) (layer B.SilkS) (width 0.12)) - (fp_line (start 2.1 0.85) (end 1.45 0.85) (layer B.Fab) (width 0.1)) - (fp_line (start 2.35 1.1) (end 2.35 -1.1) (layer B.CrtYd) (width 0.05)) - (fp_line (start 2.1 -0.85) (end 1.45 -0.85) (layer B.Fab) (width 0.1)) - (fp_line (start -1.55 -1.75) (end -1.55 1.75) (layer B.SilkS) (width 0.12)) - (fp_line (start 1.45 -1.75) (end -1.4 -1.75) (layer B.Fab) (width 0.1)) - (fp_line (start -1.45 -1.75) (end -1.45 1.75) (layer B.Fab) (width 0.1)) - (fp_line (start 1.7 -2.75) (end -1.7 -2.75) (layer B.CrtYd) (width 0.05)) - (fp_line (start -1.7 -2.75) (end -1.7 2.75) (layer B.CrtYd) (width 0.05)) - (fp_line (start 2.1 -0.85) (end 2.1 0.85) (layer B.Fab) (width 0.1)) - (fp_line (start 1.7 1.1) (end 2.35 1.1) (layer B.CrtYd) (width 0.05)) - (fp_line (start -1.7 2.75) (end 1.7 2.75) (layer B.CrtYd) (width 0.05)) - (pad 1 smd rect (at -0.72 -1.8 ${270 + p.rot}) (size 1.4 1.05) (layers B.Cu B.Paste B.Mask) ${p.from.str}) - (pad 2 smd rect (at 0.72 1.8 ${270 + p.rot}) (size 1.4 1.05) (layers B.Cu B.Paste B.Mask) ${p.to.str}) - (pad 2 smd rect (at 0.72 -1.8 ${270 + p.rot}) (size 1.4 1.05) (layers B.Cu B.Paste B.Mask) ${p.to.str}) - (pad 1 smd rect (at -0.72 1.8 ${270 + p.rot}) (size 1.4 1.05) (layers B.Cu B.Paste B.Mask) ${p.from.str}) - (fp_text user ${p.ref} (at 0 3.5 ${p.rot}) (layer B.SilkS) ${p.ref_hide} - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - ` - - const bottom = ` - ) - ` - - let final = top; - - if(p.side == "F" || p.reverse) { - final += front; - } - if(p.side == "B" || p.reverse) { - final += back; - } - - final += bottom; - - return final; - } - } diff --git a/input/footprints/text.js b/input/footprints/text.js deleted file mode 100644 index 4a0df38..0000000 --- a/input/footprints/text.js +++ /dev/null @@ -1,44 +0,0 @@ -module.exports = { - params: { - designator: 'TXT', - side: 'F', - reverse: false, - text: 'Awesomeness', - }, - body: p => { - const top = ` - (module text (layer F.Cu) (tedit 6449CD11) - ${p.at /* parametric position */} - (attr virtual) - - `; - - const front = ` - (fp_text user "${p.text}" (at 0 0) (layer F.SilkS) - (effects (font (size 1 1) (thickness 0.15))) - ) - ` - const back = ` - (fp_text user "${p.text}" (at 0 0) (layer B.SilkS) - (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) - ) - ` - - const bottom = ` - ) - ` - - let final = top; - - if(p.side == "F" || p.reverse) { - final += front; - } - if(p.side == "B" || p.reverse) { - final += back; - } - - final += bottom; - - return final; - } -} diff --git a/package-lock.json b/package-lock.json index 55d060b..1ffd5b7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "typematrix_split_ergogen", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { @@ -9,11 +9,11 @@ } }, "node_modules/@babel/runtime": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz", - "integrity": "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.6.tgz", + "integrity": "sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==", "dependencies": { - "regenerator-runtime": "^0.13.11" + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" @@ -147,9 +147,8 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/ergogen": { - "version": "4.0.2", - "resolved": "git+ssh://git@github.com/ergogen/ergogen.git#63684e33d76579548dd0ff88a9db88ca4cec26c2", - "license": "MIT", + "version": "4.1.0", + "resolved": "git+ssh://git@github.com/ergogen/ergogen.git#6a45a4b9df28452770b42c73a77bdc845bf5c250", "dependencies": { "fs-extra": "^11.1.0", "js-yaml": "^3.14.1", @@ -164,9 +163,9 @@ } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "engines": { "node": ">=6" } @@ -176,22 +175,34 @@ "resolved": "https://registry.npmjs.org/escape-latex/-/escape-latex-1.2.0.tgz", "integrity": "sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw==" }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.4.tgz", + "integrity": "sha512-pwiTgt0Q7t+GHZA4yaLjObx4vXmmdcS0iSJ19o8d/goUGgItX9UZWKWNnLHehxviD8wU2IWRsnR8cD5+yOJP2Q==", "engines": { "node": "*" }, "funding": { "type": "patreon", - "url": "https://www.patreon.com/infusion" + "url": "https://github.com/sponsors/rawify" } }, "node_modules/fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -215,9 +226,9 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, "node_modules/graham_scan": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/graham_scan/-/graham_scan-1.0.4.tgz", - "integrity": "sha512-jL+zq9xTYXxsDIf+qy9aaudRXx/X4sqrOlbFkg1ElqCznhYAQ/wXv8cifgzRvzFopStDeIvny5sIu6jgSjnRww==" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/graham_scan/-/graham_scan-1.0.5.tgz", + "integrity": "sha512-471KIBS1jOrAHpEStAbOjYI5U7MGBSyqy+wIEnvRYaFDNmpUUhbDZWLRsCSh/OnlY0dCg0NaDyN/2XLoypgIfA==" }, "node_modules/immediate": { "version": "3.0.6", @@ -259,22 +270,10 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/js-yaml/node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "bin": { "json5": "lib/cli.js" }, @@ -313,7 +312,6 @@ "name": "@ijprest/kle-serial", "version": "0.15.1", "resolved": "git+ssh://git@github.com/ergogen/kle-serial.git#61f29f317d87bbfed0b0b7e646e1b91d4384ac02", - "license": "MIT", "dependencies": { "json5": "^2.1.0" } @@ -329,7 +327,6 @@ "node_modules/makerjs": { "version": "0.17.0", "resolved": "git+ssh://git@github.com/ergogen/maker.js.git#a0ca32948845efe8ad5c9ca454f1285926853138", - "license": "Apache-2.0", "dependencies": { "@danmarshall/jscad-typings": "^1.0.0", "@types/bezier-js": "^0.0.6", @@ -343,19 +340,19 @@ } }, "node_modules/mathjs": { - "version": "11.8.0", - "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-11.8.0.tgz", - "integrity": "sha512-I7r8HCoqUGyEiHQdeOCF2m2k9N+tcOHO3cZQ3tyJkMMBQMFqMR7dMQEboBMJAiFW2Um3PEItGPwcOc4P6KRqwg==", + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-11.12.0.tgz", + "integrity": "sha512-UGhVw8rS1AyedyI55DGz9q1qZ0p98kyKPyc9vherBkoueLntPfKtPBh14x+V4cdUWK0NZV2TBwqRFlvadscSuw==", "dependencies": { - "@babel/runtime": "^7.21.0", + "@babel/runtime": "^7.23.2", "complex.js": "^2.1.1", "decimal.js": "^10.4.3", "escape-latex": "^1.2.0", - "fraction.js": "^4.2.0", + "fraction.js": "4.3.4", "javascript-natural-sort": "^0.7.1", "seedrandom": "^3.0.5", "tiny-emitter": "^2.1.0", - "typed-function": "^4.1.0" + "typed-function": "^4.1.1" }, "bin": { "mathjs": "bin/cli.js" @@ -389,9 +386,9 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, "node_modules/require-directory": { "version": "2.1.1", @@ -459,17 +456,17 @@ "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" }, "node_modules/typed-function": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/typed-function/-/typed-function-4.1.0.tgz", - "integrity": "sha512-DGwUl6cioBW5gw2L+6SMupGwH/kZOqivy17E4nsh1JI9fKF87orMmlQx3KISQPmg3sfnOUGlwVkroosvgddrlg==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/typed-function/-/typed-function-4.1.1.tgz", + "integrity": "sha512-Pq1DVubcvibmm8bYcMowjVnnMwPVMeh0DIdA8ad8NZY2sJgapANJmiigSUwlt+EgXxpfIv8MWrQXTIzkfYZLYQ==", "engines": { "node": ">= 14" } }, "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "engines": { "node": ">= 10.0.0" } @@ -528,421 +525,5 @@ "node": ">=12" } } - }, - "dependencies": { - "@babel/runtime": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz", - "integrity": "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==", - "requires": { - "regenerator-runtime": "^0.13.11" - } - }, - "@danmarshall/jscad-typings": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@danmarshall/jscad-typings/-/jscad-typings-1.0.0.tgz", - "integrity": "sha512-MGGIGDItK2UQSsz7yTrXErQXDAFXR3UPxyQ7WZ5RHOwnv60CBXjmkJlXYMYPkSvo+7fUuQL2/ODcvECtc/fi9g==" - }, - "@types/bezier-js": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@types/bezier-js/-/bezier-js-0.0.6.tgz", - "integrity": "sha512-kXsAlt8e8N6zt9R6LcMYWB1HkBw3q2g+M9BdI/UE+s4agIONuIscQaRCoInH22+Jas3rw8yLUehL2InaZjyNSA==" - }, - "@types/node": { - "version": "7.10.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-7.10.14.tgz", - "integrity": "sha512-29GS75BE8asnTno3yB6ubOJOO0FboExEqNJy4bpz0GSmW/8wPTNL4h9h63c6s1uTrOopCmJYe/4yJLh5r92ZUA==" - }, - "@types/opentype.js": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@types/opentype.js/-/opentype.js-0.7.2.tgz", - "integrity": "sha512-Riz6WyBUBEFs7YqSsJya3SbDHJZ6BmMkY7bzNoue6rtwj+RNilLc+mgOX/eJ0Y0asq16FSU6DatBeOg8ZMy2UQ==" - }, - "@types/pdfkit": { - "version": "0.7.36", - "resolved": "https://registry.npmjs.org/@types/pdfkit/-/pdfkit-0.7.36.tgz", - "integrity": "sha512-9eRA6MuW+n78yU3HhoIrDxjyAX2++B5MpLDYqHOnaRTquCw+5sYXT+QN8E1eSaxvNUwlRfU3tOm4UzTeGWmBqg==", - "requires": { - "@types/node": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "bezier-js": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/bezier-js/-/bezier-js-2.6.1.tgz", - "integrity": "sha512-jelZM33eNzcZ9snJ/5HqJLw3IzXvA8RFcBjkdOB8SDYyOvW8Y2tTosojAiBTnD1MhbHoWUYNbxUXxBl61TxbRg==" - }, - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==" - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "complex.js": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/complex.js/-/complex.js-2.1.1.tgz", - "integrity": "sha512-8njCHOTtFFLtegk6zQo0kkVX1rngygb/KQI6z1qZxlFI3scluC+LVTCFbrkWjBv4vvLlbQ9t88IPMC6k95VTTg==" - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "ergogen": { - "version": "git+ssh://git@github.com/ergogen/ergogen.git#63684e33d76579548dd0ff88a9db88ca4cec26c2", - "from": "ergogen@github:ergogen/ergogen", - "requires": { - "fs-extra": "^11.1.0", - "js-yaml": "^3.14.1", - "jszip": "^3.10.1", - "kle-serial": "github:ergogen/kle-serial#ergogen", - "makerjs": "github:ergogen/maker.js#ergogen", - "mathjs": "^11.5.0", - "yargs": "^17.6.2" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-latex": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/escape-latex/-/escape-latex-1.2.0.tgz", - "integrity": "sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw==" - }, - "fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==" - }, - "fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "graham_scan": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/graham_scan/-/graham_scan-1.0.4.tgz", - "integrity": "sha512-jL+zq9xTYXxsDIf+qy9aaudRXx/X4sqrOlbFkg1ElqCznhYAQ/wXv8cifgzRvzFopStDeIvny5sIu6jgSjnRww==" - }, - "immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "javascript-natural-sort": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz", - "integrity": "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==" - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "dependencies": { - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - } - } - }, - "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "jszip": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", - "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", - "requires": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "setimmediate": "^1.0.5" - } - }, - "kdbush": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-2.0.1.tgz", - "integrity": "sha512-9KqSdmWCkBIisFIGclT0FRagKhI7IVbMyUjsxCFG0Ly1Dg6whlxJ7b9lrq8ifk3X/fGeJzok1R75LQfZTfA5zQ==" - }, - "kle-serial": { - "version": "git+ssh://git@github.com/ergogen/kle-serial.git#61f29f317d87bbfed0b0b7e646e1b91d4384ac02", - "from": "kle-serial@github:ergogen/kle-serial#ergogen", - "requires": { - "json5": "^2.1.0" - } - }, - "lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "requires": { - "immediate": "~3.0.5" - } - }, - "makerjs": { - "version": "git+ssh://git@github.com/ergogen/maker.js.git#a0ca32948845efe8ad5c9ca454f1285926853138", - "from": "makerjs@github:ergogen/maker.js#ergogen", - "requires": { - "@danmarshall/jscad-typings": "^1.0.0", - "@types/bezier-js": "^0.0.6", - "@types/node": "^7.0.5", - "@types/opentype.js": "^0.7.0", - "@types/pdfkit": "^0.7.34", - "bezier-js": "^2.1.0", - "clone": "^1.0.2", - "graham_scan": "^1.0.4", - "kdbush": "^2.0.1" - } - }, - "mathjs": { - "version": "11.8.0", - "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-11.8.0.tgz", - "integrity": "sha512-I7r8HCoqUGyEiHQdeOCF2m2k9N+tcOHO3cZQ3tyJkMMBQMFqMR7dMQEboBMJAiFW2Um3PEItGPwcOc4P6KRqwg==", - "requires": { - "@babel/runtime": "^7.21.0", - "complex.js": "^2.1.1", - "decimal.js": "^10.4.3", - "escape-latex": "^1.2.0", - "fraction.js": "^4.2.0", - "javascript-natural-sort": "^0.7.1", - "seedrandom": "^3.0.5", - "tiny-emitter": "^2.1.0", - "typed-function": "^4.1.0" - } - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "seedrandom": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz", - "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "tiny-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", - "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" - }, - "typed-function": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/typed-function/-/typed-function-4.1.0.tgz", - "integrity": "sha512-DGwUl6cioBW5gw2L+6SMupGwH/kZOqivy17E4nsh1JI9fKF87orMmlQx3KISQPmg3sfnOUGlwVkroosvgddrlg==" - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" - } } }