├── picture.jpg ├── package.json ├── footprints ├── battery_pad.js ├── mountinghole.js ├── pad_diode.js ├── xiao.js ├── xiao_flippable.js └── logo.js ├── .gitignore ├── README.md ├── config.yaml ├── logo.svg └── LICENSE /picture.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tarneaux/triboard/HEAD/picture.jpg -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "scripts": { 3 | "gen": "ergogen -d ." 4 | }, 5 | "dependencies": { 6 | "ergogen": "^4.0.4" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /footprints/battery_pad.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Battery connection pads 3 | */ 4 | 5 | module.exports = { 6 | params: { 7 | designator: 'BATTPAD', 8 | plus: undefined, 9 | minus: undefined, 10 | spacing: 10, // mm, between the two pads. Should be as much as possible to avoid short circuits 11 | symbol_size: 1.5, // mm, from center to end of each line of plus symbol 12 | pad_size: 1.5, // mm, size of each pad 13 | }, 14 | body: p => ` 15 | 16 | (module ComboDiode (layer F.Cu) (tedit 5B24D78E) 17 | ${p.at /* parametric position */} 18 | 19 | ${'' /* footprint reference */} 20 | (fp_text reference "${p.ref}" (at 0 0) (layer F.SilkS) ${p.ref_hide} (effects (font (size 1.27 1.27) (thickness 0.15)))) 21 | (fp_text value "" (at 0 0) (layer F.SilkS) hide (effects (font (size 1.27 1.27) (thickness 0.15)))) 22 | 23 | ${ 24 | // Bottom and top layers 25 | ['F', 'B'].map(l => ` 26 | ${'' /* plus symbol */} 27 | (fp_line (start ${-p.spacing/2-p.symbol_size} 0) (end ${-p.spacing/2+p.symbol_size} 0) (layer ${l}.SilkS) (width .1)) 28 | (fp_line (start ${-p.spacing/2} ${-p.symbol_size}) (end ${-p.spacing/2} ${p.symbol_size}) (layer ${l}.SilkS) (width .1)) 29 | 30 | ${'' /* pads */} 31 | (pad 1 smd rect (at ${-p.spacing/2} 0 ${p.rot}) (size ${p.pad_size} ${p.pad_size}) (layers ${l}.Cu ${l}.Paste ${l}.Mask) ${p.plus.str}) 32 | (pad 2 smd rect (at ${p.spacing/2} 0 ${p.rot}) (size ${p.pad_size} ${p.pad_size}) (layers ${l}.Cu ${l}.Paste ${l}.Mask) ${p.minus.str}) 33 | `).join('') 34 | } 35 | ) 36 | ` 37 | } 38 | -------------------------------------------------------------------------------- /footprints/mountinghole.js: -------------------------------------------------------------------------------- 1 | // MountingHole_2.2mm_M2_Pad_Via 2 | // TODO add more sizes as param? 3 | module.exports = { 4 | nets: { 5 | net: undefined 6 | }, 7 | params: { 8 | class: 'HOLE', 9 | }, 10 | body: p => ` 11 | (module "MountingHole_2.2mm_M2_Pad_Via" (version 20210722) (generator pcbnew) (layer "F.Cu") 12 | (tedit 56DDB9C7) 13 | ${p.at /* parametric position */} 14 | 15 | (fp_text reference "${p.ref}" (at 0 -3.2) (layer "F.SilkS") ${p.ref_hide} 16 | (effects (font (size 1 1) (thickness 0.15))) 17 | (tstamp b68bb25c-687d-44b1-b966-dad4cac66b35) 18 | ) 19 | 20 | (fp_circle (center 0 0) (end 2.5 0) (layer "F.CrtYd") (width 0.05) (fill none) (tstamp b2688462-c375-45d3-9095-3425fb17c88f)) 21 | (fp_circle (center 0 0) (end 3 0) (layer "Dwgs.User") (width 0.05) (fill none) (tstamp b2688462-c375-45d3-9095-3425fb17c88f)) 22 | (pad "1" thru_hole circle locked (at 1.166726 1.166726) (size 0.7 0.7) (drill 0.4) (layers *.Cu *.Mask) (tstamp 2a7fc905-328f-4bbb-9222-ca8d15d03a86)) 23 | (pad "1" thru_hole circle locked (at 0 0) (size 4.4 4.4) (drill 2.2) (layers *.Cu *.Mask) (tstamp 47ee1d53-0551-4b6d-bc24-3f3f14c73c36)) 24 | (pad "1" thru_hole circle locked (at 0 1.65) (size 0.7 0.7) (drill 0.4) (layers *.Cu *.Mask) (tstamp 4eef65bc-4add-40d7-8319-14dcdbae0d44)) 25 | (pad "1" thru_hole circle locked (at 1.166726 -1.166726) (size 0.7 0.7) (drill 0.4) (layers *.Cu *.Mask) (tstamp 56155f4d-2ebc-4ad4-8d82-7aa7846deba8)) 26 | (pad "1" thru_hole circle locked (at -1.65 0) (size 0.7 0.7) (drill 0.4) (layers *.Cu *.Mask) (tstamp 787d6162-1d3c-4def-859e-6532ce27c1ef)) 27 | (pad "1" thru_hole circle locked (at -1.166726 -1.166726) (size 0.7 0.7) (drill 0.4) (layers *.Cu *.Mask) (tstamp 8d699d12-7099-4814-bbe6-11bc74c6e8b2)) 28 | (pad "1" thru_hole circle locked (at -1.166726 1.166726) (size 0.7 0.7) (drill 0.4) (layers *.Cu *.Mask) (tstamp 95ab0420-a56b-46ee-98ad-5072a1a93a6f)) 29 | (pad "1" thru_hole circle locked (at 1.65 0) (size 0.7 0.7) (drill 0.4) (layers *.Cu *.Mask) (tstamp cde0acf2-b3b4-46de-9f6e-3ab519744000)) 30 | (pad "1" thru_hole circle locked (at 0 -1.65) (size 0.7 0.7) (drill 0.4) (layers *.Cu *.Mask) (tstamp ff0de415-ae11-46fb-b780-c24aee621212)) 31 | )` 32 | } 33 | -------------------------------------------------------------------------------- /footprints/pad_diode.js: -------------------------------------------------------------------------------- 1 | /* 2 | * This is just the standard Ergogen diode, without the THT terminals, 3 | * just for aesthetics. 4 | */ 5 | 6 | module.exports = { 7 | params: { 8 | designator: 'D', 9 | from: undefined, 10 | to: undefined 11 | }, 12 | body: p => ` 13 | 14 | (module ComboDiode (layer F.Cu) (tedit 5B24D78E) 15 | 16 | 17 | ${p.at /* parametric position */} 18 | 19 | ${'' /* footprint reference */} 20 | (fp_text reference "${p.ref}" (at 0 0) (layer F.SilkS) ${p.ref_hide} (effects (font (size 1.27 1.27) (thickness 0.15)))) 21 | (fp_text value "" (at 0 0) (layer F.SilkS) hide (effects (font (size 1.27 1.27) (thickness 0.15)))) 22 | 23 | ${''/* diode symbols */} 24 | (fp_line (start 0.25 0) (end 0.75 0) (layer F.SilkS) (width 0.1)) 25 | (fp_line (start 0.25 0.4) (end -0.35 0) (layer F.SilkS) (width 0.1)) 26 | (fp_line (start 0.25 -0.4) (end 0.25 0.4) (layer F.SilkS) (width 0.1)) 27 | (fp_line (start -0.35 0) (end 0.25 -0.4) (layer F.SilkS) (width 0.1)) 28 | (fp_line (start -0.35 0) (end -0.35 0.55) (layer F.SilkS) (width 0.1)) 29 | (fp_line (start -0.35 0) (end -0.35 -0.55) (layer F.SilkS) (width 0.1)) 30 | (fp_line (start -0.75 0) (end -0.35 0) (layer F.SilkS) (width 0.1)) 31 | (fp_line (start 0.25 0) (end 0.75 0) (layer B.SilkS) (width 0.1)) 32 | (fp_line (start 0.25 0.4) (end -0.35 0) (layer B.SilkS) (width 0.1)) 33 | (fp_line (start 0.25 -0.4) (end 0.25 0.4) (layer B.SilkS) (width 0.1)) 34 | (fp_line (start -0.35 0) (end 0.25 -0.4) (layer B.SilkS) (width 0.1)) 35 | (fp_line (start -0.35 0) (end -0.35 0.55) (layer B.SilkS) (width 0.1)) 36 | (fp_line (start -0.35 0) (end -0.35 -0.55) (layer B.SilkS) (width 0.1)) 37 | (fp_line (start -0.75 0) (end -0.35 0) (layer B.SilkS) (width 0.1)) 38 | 39 | ${''/* SMD pads on both sides */} 40 | (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}) 41 | (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}) 42 | (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}) 43 | (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}) 44 | ) 45 | 46 | ` 47 | } 48 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | .pnpm-debug.log* 9 | 10 | # Diagnostic reports (https://nodejs.org/api/report.html) 11 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 12 | 13 | # Runtime data 14 | pids 15 | *.pid 16 | *.seed 17 | *.pid.lock 18 | 19 | # Directory for instrumented libs generated by jscoverage/JSCover 20 | lib-cov 21 | 22 | # Coverage directory used by tools like istanbul 23 | coverage 24 | *.lcov 25 | 26 | # nyc test coverage 27 | .nyc_output 28 | 29 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 30 | .grunt 31 | 32 | # Bower dependency directory (https://bower.io/) 33 | bower_components 34 | 35 | # node-waf configuration 36 | .lock-wscript 37 | 38 | # Compiled binary addons (https://nodejs.org/api/addons.html) 39 | build/Release 40 | 41 | # Dependency directories 42 | node_modules/ 43 | jspm_packages/ 44 | 45 | # Snowpack dependency directory (https://snowpack.dev/) 46 | web_modules/ 47 | 48 | # TypeScript cache 49 | *.tsbuildinfo 50 | 51 | # Optional npm cache directory 52 | .npm 53 | 54 | # Optional eslint cache 55 | .eslintcache 56 | 57 | # Optional stylelint cache 58 | .stylelintcache 59 | 60 | # Microbundle cache 61 | .rpt2_cache/ 62 | .rts2_cache_cjs/ 63 | .rts2_cache_es/ 64 | .rts2_cache_umd/ 65 | 66 | # Optional REPL history 67 | .node_repl_history 68 | 69 | # Output of 'npm pack' 70 | *.tgz 71 | 72 | # Yarn Integrity file 73 | .yarn-integrity 74 | 75 | # dotenv environment variable files 76 | .env 77 | .env.development.local 78 | .env.test.local 79 | .env.production.local 80 | .env.local 81 | 82 | # parcel-bundler cache (https://parceljs.org/) 83 | .cache 84 | .parcel-cache 85 | 86 | # Next.js build output 87 | .next 88 | out 89 | 90 | # Nuxt.js build / generate output 91 | .nuxt 92 | dist 93 | 94 | # Gatsby files 95 | .cache/ 96 | # Comment in the public line in if your project uses Gatsby and not Next.js 97 | # https://nextjs.org/blog/next-9-1#public-directory-support 98 | # public 99 | 100 | # vuepress build output 101 | .vuepress/dist 102 | 103 | # vuepress v2.x temp and cache directory 104 | .temp 105 | .cache 106 | 107 | # Docusaurus cache and generated files 108 | .docusaurus 109 | 110 | # Serverless directories 111 | .serverless/ 112 | 113 | # FuseBox cache 114 | .fusebox/ 115 | 116 | # DynamoDB Local files 117 | .dynamodb/ 118 | 119 | # TernJS port file 120 | .tern-port 121 | 122 | # Stores VSCode versions used for testing VSCode extensions 123 | .vscode-test 124 | 125 | # yarn v2 126 | .yarn/cache 127 | .yarn/unplugged 128 | .yarn/build-state.yml 129 | .yarn/install-state.gz 130 | .pnp.* 131 | 132 | 133 | # Output dir from ergogen 134 | output 135 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Triboard 2 | 3 | The Triboard is an ergonomic, split mechanical keyboard using hotswappable Kailh Choc switches and any Seeed XIAO compatible controller. Its main feature is being super small and therefore portable, without compromising on ergonomics/usabitity. 4 | 5 | [Blog post](https://tarneo.fr/posts/triboard/) 6 | 7 | ![Picture](picture.jpg) 8 | 9 | Two builds are possible: 10 | - 34 keys, wireless, with ZMK on XIAO nRF52840 controllers 11 | - 36 keys, wired, with QMK on XIAO RP2040 controllers (firmware coming soon !) 12 | - 36 keys, wired, with ZMK on XIAO RP2040 controllers (**waiting for ZMK half-duplex support**) 13 | 14 | > You *could* also theoretically use an ESP based XIAO with KMK and Bluetooth, but it'll be more troublesome than the other two. 15 | 16 | Wireless keyboards need to be stripped of one thumb key on each side to make room for the battery. 17 | 18 | The PCB is automatically generated with Ergogen and then routed by hand. You could in theory use Freerouting or similar software instead. 19 | 20 | A flippable XIAO footprint based on a [similar promicro footprint](https://github.com/50an6xy06r6n/keyboard_reversible.pretty) helps to make the board smaller. 21 | 22 | [PCB releases](https://github.com/tarneaux/triboard/releases) are available. 23 | 24 | [Link to ZMK config repo](https://github.com/tarneaux/zmk-config-triboard) 25 | 26 | ## Building the PCB 27 | 28 | To build the keyboard with ergogen and open the PCB in KiCad's PCBnew, run: 29 | ```sh 30 | npm install 31 | ./build.sh # Automatically update the PCB and reopen pcbnew whenever config.yaml changes 32 | ``` 33 | 34 | Here are some things you may want to change: 35 | - Vertical stagger values, defined in the `units` section at the top of the file. 36 | - Hotswappability: I couldn't make the board support both hot-swap sockets and direct switch soldering. Search for `hotswap` in `config.yaml` and adjust accordingly. 37 | 38 | ## Routing 39 | 40 | To make the routing process easier, you can route a single key (diode to via and vias to hotswap socket pads), select all traces (by filtering the selection from the right-click menu) and paste those traces for each key. Then connect the rest according to the KiCad nets as usual. 41 | 42 | ## Where's the build guide? 43 | 44 | As of now I haven't written a build guide. If you want to build this keyboard, just [get in touch with me](https://tarneo.fr/contact/) and I'll be happy to give you some basic instructions. 45 | 46 | If you've already built other keyboards yourself, here are some specificities of this one: 47 | - Before soldering the XIAO in, bridge the `[> ]`-shaped pads below it (on the same side of the PCB, so that the XIAO covers the bridged pads). 48 | - When soldering the XIAO, use a short length of insulated wire to connect the battery pad on the PCB (just above the top pinky key) to the positive battery pad below the XIAO. This applies only to wireless builds. 49 | 50 | Here's a parts list for a wireless build: 51 | - a pair of flippable PCB's (download gerbers from [releases](https://github.com/tarneaux/triboard/releases/)) 52 | - 2 [Seeed XIAO nrf52840 microcontrollers](https://www.seeedstudio.com/Seeed-XIAO-BLE-nRF52840-p-5201.html) 53 | - 2 3.7 v lithium ion batteries with dimensions < 20x30 mm 54 | - 2 [Power switches](https://splitkb.com/products/wireless-controller-expansion-bundle) 55 | - A few round rubber feet, ideally 10 (one per corner, plus one on the bottom middle for thumb key support) 56 | - 4 7-pin rows of [Mill max sockets](https://splitkb.com/products/mill-max-low-profile-sockets) 57 | - For each key (34 if wireless, make sure to get a few extra of each): 58 | - 1 [diode](https://splitkb.com/products/smd-diodes) 59 | - 1 kailh choc switch. I like the [ambients](https://splitkb.com/products/ambients-kailh-low-profile-choc-switches) 60 | - 1 [choc hotswap socket](https://splitkb.com/products/kailh-hotswap-sockets?variant=39472161456205) 61 | - 1 keycap (make sure to get convex ones for thumb keys, plus two homing ones): I like [blank MBK's](https://splitkb.com/products/blank-mbk-choc-low-profile-keycaps) 62 | 63 | ## Credits 64 | 65 | - Inspiration: keyboards by [GEIGEIGEIST](https://github.com/GEIGEIGEIST), the [chocofi](https://github.com/pashutk/chocofi) and the [samoklava](https://github.com/wxsh/samoklava). 66 | - Videos by Ben Vallack on YouTube. 67 | - Kind people on the [ErgoMechKeyboards](https://lemmy.ml/c/ergomechkeyboards@lemmy.world) Lemmy community. 68 | - FlatFootFox - [Let's Design A Keyboard With Ergogen v4](https://flatfootfox.com/ergogen-introduction/) 69 | -------------------------------------------------------------------------------- /footprints/xiao.js: -------------------------------------------------------------------------------- 1 | // ORIGINAL SOURCE: https://github.com/rzyns/ergogen/blob/914ca11f83a0f28400c93c3a3788f5034f0e0f61/src/footprints/xiao-ble.js#L1 2 | 3 | 4 | // footprint file for ergogen automatically generated by kicad-to-ergogen 5 | // include it in ergogen/src/footprints/index.js using 6 | // require('path/to/this/file.js') 7 | module.exports = { 8 | params: { 9 | designator: 'MCU', 10 | orientation: 'up', 11 | VCC5: {type: 'net', value: 'VCC5'}, 12 | GND: {type: 'net', value: 'GND'}, 13 | VCC3: {type: 'net', value: 'VCC3'}, 14 | RST: {type: 'net', value: 'RST'}, 15 | RAW: {type: 'net', value: 'RAW'}, 16 | NFC0: {type: 'net', value: 'NFC0'}, 17 | NFC1: {type: 'net', value: 'NFC1'}, 18 | CLK: {type: 'net', value: 'CLK'}, 19 | DIO: {type: 'net', value: 'DIO'}, 20 | P0: {type: 'net', value: 'P0'}, 21 | P1: {type: 'net', value: 'P1'}, 22 | P2: {type: 'net', value: 'P2'}, 23 | P3: {type: 'net', value: 'P3'}, 24 | P4: {type: 'net', value: 'P4'}, 25 | P5: {type: 'net', value: 'P5'}, 26 | P6: {type: 'net', value: 'P6'}, 27 | P7: {type: 'net', value: 'P7'}, 28 | P8: {type: 'net', value: 'P8'}, 29 | P9: {type: 'net', value: 'P9'}, 30 | P10: {type: 'net', value: 'P10'} 31 | }, 32 | body: p => { 33 | const standard = ` 34 | footprint "xiao-ble" (layer "F.Cu") (tedit 61D90095) 35 | ${p.at /* parametric position */} 36 | (attr smd exclude_from_pos_files) 37 | (fp_text reference "${p.ref}" (at -19.3989 -11.28268 ${p.rot}) (layer "F.SilkS") ${p.ref_hide} (effects (font (size 0.889 0.889) (thickness 0.1016))) (tstamp 1c479411-a194-4685-8eeb-e81966c16c7f)) 38 | (fp_text value "" (at -19.8434 -0.29718 ${p.rot}) (layer "F.SilkS") hide (effects (font (size 0.6096 0.6096) (thickness 0.0762))) (tstamp d811e9ac-fc59-4c9b-8d93-83a5a9c048b6)) 39 | (fp_rect (start -8.89 10.5) (end 8.89 -10.5) (layer "Dwgs.User") (width 0.12) (fill none) (tstamp 116e44aa-10c6-4541-8b90-5b7a2f5434bd)) 40 | (fp_rect (start 3.350197 -6.785813) (end 5.128197 -4.118813) (layer "Dwgs.User") (width 0.12) (fill none) (tstamp a1111a45-eeef-42a4-8ca2-b88859685c82)) 41 | (fp_rect (start -3.507811 -8.182813) (end -5.285811 -10.849813) (layer "Dwgs.User") (width 0.12) (fill none) (tstamp a6f271d5-ba8a-454d-80cb-5f2f863f2343)) 42 | (fp_rect (start 3.350197 -10.849813) (end 5.128197 -8.182813) (layer "Dwgs.User") (width 0.12) (fill none) (tstamp bb88374b-bed5-4557-ac17-b524808b3664)) 43 | (fp_rect (start -5.285811 -6.785813) (end -3.507811 -4.118813) (layer "Dwgs.User") (width 0.12) (fill none) (tstamp f5248a36-36cb-4bf1-a463-d1ff91adf3ac)) 44 | ` 45 | 46 | function pins(def_neg, def_pos) { 47 | return ` 48 | ${p.at /*VCC Side Pins*/ } 49 | (pad 1 thru_hole circle (at ${def_neg}7.62 -7.62 ${p.rot}) (size 1.8 1.8) (drill 1) (layers *.Cu *.Mask) (tstamp 8a11f86e-586e-495d-a11e-a1e650589934) ${p.VCC5.str}) 50 | (pad 2 thru_hole circle (at ${def_neg}7.62 -5.08 ${p.rot}) (size 1.8 1.8) (drill 1) (layers *.Cu *.Mask) (tstamp e4d9ec61-16f7-410d-891d-89481964ef82) ${p.GND.str}) 51 | (pad 3 thru_hole circle (at ${def_neg}7.62 -2.54 ${p.rot}) (size 1.8 1.8) (drill 1) (layers *.Cu *.Mask) (tstamp 75b890e6-df6d-4a6e-acaa-0870cda0d189) ${p.VCC3.str}) 52 | (pad 4 thru_hole circle (at ${def_neg}7.62 0 ${p.rot}) (size 1.8 1.8) (drill 1) (layers *.Cu *.Mask) (tstamp 1b7a2775-7631-4d4f-8b27-ab588adb3b7d) ${p.P10.str}) 53 | (pad 5 thru_hole circle (at ${def_neg}7.62 2.54 ${p.rot}) (size 1.8 1.8) (drill 1) (layers *.Cu *.Mask) (tstamp 2caa1d4c-02f2-443a-a145-dc5854878c73) ${p.P9.str}) 54 | (pad 6 thru_hole circle (at ${def_neg}7.62 5.08 ${p.rot}) (size 1.8 1.8) (drill 1) (layers *.Cu *.Mask) (tstamp 761a1a33-98a4-41af-9660-18c12d51b442) ${p.P8.str}) 55 | (pad 7 thru_hole circle (at ${def_neg}7.62 7.62 ${p.rot}) (size 1.8 1.8) (drill 1) (layers *.Cu *.Mask) (tstamp a20b891b-a240-411f-9914-9ac989f03074) ${p.P7.str}) 56 | 57 | ${p.at /* Reset button Side */ } 58 | (pad 12 thru_hole circle (at ${def_pos}7.62 7.62 ${180 + p.rot}) (size 1.8 1.8) (drill 1) (layers *.Cu *.Mask) (tstamp 9c4384c0-9a57-4262-8711-eec9b8ecb4c6) ${p.P6.str}) 59 | (pad 13 thru_hole circle (at ${def_pos}7.62 5.08 ${180 + p.rot}) (size 1.8 1.8) (drill 1) (layers *.Cu *.Mask) (tstamp 867e444b-3681-4baf-9d08-1188c3544771) ${p.P5.str}) 60 | (pad 14 thru_hole circle (at ${def_pos}7.62 2.54 ${180 + p.rot}) (size 1.8 1.8) (drill 1) (layers *.Cu *.Mask) (tstamp 0a4f1792-568b-402b-9700-fd4b01130ff8) ${p.P4.str}) 61 | (pad 15 thru_hole circle (at ${def_pos}7.62 0 ${180 + p.rot}) (size 1.8 1.8) (drill 1) (layers *.Cu *.Mask) (tstamp 4522c285-a407-4012-88ce-5549f5f2a2d9) ${p.P3.str}) 62 | (pad 16 thru_hole circle (at ${def_pos}7.62 -2.54 ${180 + p.rot}) (size 1.8 1.8) (drill 1) (layers *.Cu *.Mask) (tstamp 890f2928-0780-4ddd-8ccb-24fccaa5c6fc) ${p.P2.str}) 63 | (pad 17 thru_hole circle (at ${def_pos}7.62 -5.08 ${180 + p.rot}) (size 1.8 1.8) (drill 1) (layers *.Cu *.Mask) (tstamp 2338eb22-64ca-4f30-8ba1-2f7cf75ffba1) ${p.P1.str}) 64 | (pad 18 thru_hole circle (at ${def_pos}7.62 -7.62 ${180 + p.rot}) (size 1.8 1.8) (drill 1) (layers *.Cu *.Mask) (tstamp ae516570-a837-4ec7-a722-6d190e57c256) ${p.P0.str}) 65 | ` 66 | } 67 | if (p.orientation == 'up') { 68 | return `( 69 | ${standard} 70 | ${pins('-', '')} 71 | ) 72 | ` 73 | } else { 74 | return `( 75 | ${standard} 76 | ${pins('', '-')} 77 | ) 78 | ` 79 | } 80 | } 81 | } 82 | 83 | -------------------------------------------------------------------------------- /config.yaml: -------------------------------------------------------------------------------- 1 | units: 2 | # Size of each key. cx and cy for choc, u and U for MX. 3 | kx: cx 4 | ky: cy 5 | # key spread and padding 6 | px: 1.04kx 7 | py: 1.04ky 8 | # From that, get the spacing between keys 9 | ksx: px-kx 10 | ksy: py-ky 11 | lpx: px + 1 12 | 13 | # Stagger for all of the different columns 14 | stagger1: py # ring column one key above the pinky column 15 | stagger2: 0.3py # middle column .3 key above the ring column 16 | stagger3: -0.6py # index 17 | stagger4: -0.2py # inner 18 | 19 | xiao_length: 21 20 | xiao_width: 17.78 21 | 22 | trrs_width: 6.1 23 | 24 | points: 25 | key: 26 | spread: 1px 27 | padding: 1py 28 | zones: 29 | matrix: 30 | columns: 31 | pinky: 32 | key: 33 | column_net: P5 34 | ring: 35 | key: 36 | stagger: stagger1 37 | column_net: P3 38 | middle: 39 | key: 40 | stagger: stagger2 41 | column_net: P2 42 | index: 43 | key: 44 | stagger: stagger3 45 | column_net: P1 46 | inner: 47 | key: 48 | stagger: stagger4 49 | column_net: P0 50 | rows: 51 | bottom: 52 | row_net: P10 53 | home: 54 | row_net: P9 55 | top: 56 | row_net: P8 57 | thumbfan: 58 | anchor: 59 | ref: matrix_inner_bottom 60 | shift: [-2px, -py] 61 | columns: 62 | inner: 63 | key: 64 | column_net: P2 65 | middle: 66 | key: 67 | column_net: P1 68 | home: 69 | key: 70 | column_net: P0 71 | rows: 72 | thumb: 73 | row_net: P4 74 | 75 | outlines: 76 | board_noround: 77 | keys: 78 | what: rectangle 79 | where: true 80 | size: [lpx, py] 81 | mcu: 82 | what: polygon 83 | points: 84 | - ref: matrix_middle_top # Top left 85 | shift: [-2px-0.5lpx, 0.5py] 86 | - ref: matrix_middle_top # Top right 87 | shift: [0, 0.5py] 88 | - ref: matrix_middle_top # Bottom right (in board) 89 | shift: [0, -1py] 90 | - ref: matrix_middle_top # Bottom left 91 | shift: [-2px-0.5lpx, -1py] 92 | battery: 93 | what: polygon 94 | points: 95 | - ref: matrix_middle_home # Top left (in board) 96 | shift: [-0.5lpx, 0] 97 | - ref: matrix_inner_home # Top right (in board) 98 | shift: [0.5lpx, 0] 99 | - ref: thumbfan_home_thumb # Bottom right 100 | shift: [0.5lpx, -0.5py] 101 | - ref: thumbfan_inner_thumb # Bottom left 102 | shift: [-0.5lpx, -0.5py] 103 | logo: 104 | what: polygon 105 | points: 106 | - ref: matrix_pinky_bottom # Top left (in board) 107 | shift: [0, py] 108 | - ref: matrix_pinky_bottom # Top right (in board) 109 | shift: [2px, py] 110 | - ref: matrix_pinky_bottom # Bottom right (in board) 111 | shift: [2px, -0.5py] 112 | - ref: matrix_pinky_bottom # Bottom left (in board) 113 | shift: [0, -0.5py] 114 | trrs: 115 | what: polygon 116 | points: 117 | - ref: matrix_inner_top # Top left 118 | shift: [-2px, 0.5py+trrs_width+ksy] 119 | - ref: matrix_inner_top # Top right 120 | shift: [0.5lpx, 0.5py+trrs_width+ksy] 121 | - ref: matrix_inner_top # Bottom right (in board) 122 | shift: [0.5lpx, -1py] 123 | - ref: matrix_inner_top # Bottom left 124 | shift: [-2px, -1py] 125 | 126 | board: 127 | - what: outline 128 | name: board_noround 129 | fillet: 1 130 | 131 | top_plate_base: 132 | keys: 133 | what: polygon 134 | points: 135 | - ref: matrix_pinky_top 136 | shift: [-0.5kx, 0.5ky] 137 | - ref: matrix_pinky_top 138 | shift: [0.5kx+ksx, 0.5ky] 139 | - ref: matrix_ring_top 140 | shift: [-0.5kx, 0.5ky] 141 | - ref: matrix_ring_top 142 | shift: [0.5kx+ksx, 0.5ky] 143 | - ref: matrix_middle_top 144 | shift: [-0.5kx, 0.5ky] 145 | - ref: matrix_middle_top 146 | shift: [0.5kx, 0.5ky] 147 | - ref: matrix_index_top 148 | shift: [-0.5kx-ksx, 0.5ky] 149 | - ref: matrix_index_top 150 | shift: [0.5kx, 0.5ky] 151 | - ref: matrix_inner_top 152 | shift: [-0.5kx-ksx, 0.5ky] 153 | - ref: matrix_inner_top 154 | shift: [0.5kx, 0.5ky] 155 | - ref: thumbfan_home_thumb 156 | shift: [0.5kx, -0.5ky] 157 | - ref: thumbfan_middle_thumb 158 | shift: [-0.5kx, -0.5ky] 159 | - ref: matrix_index_bottom 160 | shift: [-0.5kx, -0.5ky] 161 | - ref: matrix_middle_bottom 162 | shift: [0.5kx+ksx, -0.5ky] 163 | - ref: matrix_middle_bottom 164 | shift: [-0.5kx-ksx, -0.5ky] 165 | - ref: matrix_ring_bottom 166 | shift: [0.5kx, -0.5ky] 167 | - ref: matrix_ring_bottom 168 | shift: [-0.5kx-ksx, -0.5ky] 169 | - ref: matrix_pinky_bottom 170 | shift: [0.5kx, -0.5ky] 171 | - ref: matrix_pinky_bottom 172 | shift: [-0.5kx, -0.5ky] 173 | top_plate: 174 | top_plate_base: 175 | what: outline 176 | name: top_plate_base 177 | fillet: 1 178 | cutouts: 179 | what: rectangle 180 | where: true 181 | size: 14 182 | operation: subtract 183 | 184 | pcbs: 185 | main: 186 | outlines: 187 | main: 188 | outline: board 189 | footprints: 190 | choc_hotswap: 191 | what: choc 192 | where: true 193 | params: 194 | keycaps: true 195 | reverse: true 196 | hotswap: true 197 | from: "{{colrow}}" 198 | to: "{{column_net}}" 199 | diode: 200 | what: pad_diode 201 | where: true 202 | params: 203 | from: "{{colrow}}" 204 | to: "{{row_net}}" 205 | adjust: 206 | shift: [0, -0.3py] 207 | diode_via_1: 208 | what: via 209 | where: true 210 | params: 211 | net: "{{colrow}}" 212 | adjust: 213 | shift: [2.8, -0.3py] 214 | diode_via_2: 215 | what: via 216 | where: true 217 | params: 218 | net: "{{row_net}}" 219 | adjust: 220 | shift: [-2.8, -0.3py] 221 | key_via_1: 222 | what: via 223 | where: true 224 | params: 225 | net: "{{column_net}}" 226 | adjust: 227 | shift: [0, 3.67] 228 | key_via_2: 229 | what: via 230 | where: true 231 | params: 232 | net: "{{colrow}}" 233 | adjust: 234 | shift: [0, 2.67] 235 | xiao_flippable: 236 | what: xiao_flippable 237 | where: 238 | ref: matrix_pinky_top 239 | shift: [0.5px-0.5ksx-xiao_width-(kx-xiao_width)/2, 0.5py+0.5ksy] 240 | rotate: -90 241 | raw_pad: 242 | what: pad 243 | where: 244 | ref: matrix_pinky_top 245 | shift: [0, 0.5py] 246 | params: 247 | net: RAW 248 | width: 1.5 249 | height: 1.5 250 | battery_pads: 251 | what: battery_pad 252 | where: 253 | ref: matrix_index_bottom 254 | shift: [0, -0.5ky-2] 255 | rotate: 0 256 | params: 257 | plus: BAT+ 258 | minus: GND 259 | slider_f: 260 | what: slider 261 | where: 262 | ref: matrix_middle_top 263 | shift: [-1px, 0.5px-3] 264 | params: 265 | from: BAT+ 266 | to: RAW 267 | side: F 268 | slider_b: 269 | what: slider 270 | where: 271 | ref: matrix_middle_top 272 | shift: [-1px, 0.5px-3] 273 | params: 274 | from: BAT+ 275 | to: RAW 276 | side: B 277 | trrs: 278 | what: trrs 279 | where: 280 | ref: matrix_inner_top 281 | shift: [7.86, 0.5ky+0.70+ksy] 282 | rotate: -90 283 | params: 284 | reverse: true 285 | symmetric: true 286 | A: VCC5 287 | B: VCC5 # overlaps with A 288 | C: GND 289 | D: P7 290 | logo: 291 | what: logo 292 | where: 293 | ref: matrix_ring_bottom 294 | shift: [0, -1py] 295 | params: 296 | # Remove F.Paste if you want to use a stencil when soldering! 297 | # This just allows us to see the correct color in KiCad's 3d viewer. 298 | layers: [F.Cu, F.Paste, F.Mask] 299 | monkey: 300 | what: monkey 301 | where: 302 | # In middle of MCU 303 | ref: matrix_pinky_top 304 | shift: [-1.5, 1py+2.5] 305 | rotate: 90 306 | top_plate: 307 | outlines: 308 | top_plate: 309 | outline: top_plate 310 | -------------------------------------------------------------------------------- /logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 33 | 35 | 40 | 49 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 2, June 1991 3 | 4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc., 5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 6 | Everyone is permitted to copy and distribute verbatim copies 7 | of this license document, but changing it is not allowed. 8 | 9 | Preamble 10 | 11 | The licenses for most software are designed to take away your 12 | freedom to share and change it. By contrast, the GNU General Public 13 | License is intended to guarantee your freedom to share and change free 14 | software--to make sure the software is free for all its users. This 15 | General Public License applies to most of the Free Software 16 | Foundation's software and to any other program whose authors commit to 17 | using it. (Some other Free Software Foundation software is covered by 18 | the GNU Lesser General Public License instead.) You can apply it to 19 | your programs, too. 20 | 21 | When we speak of free software, we are referring to freedom, not 22 | price. Our General Public Licenses are designed to make sure that you 23 | have the freedom to distribute copies of free software (and charge for 24 | this service if you wish), that you receive source code or can get it 25 | if you want it, that you can change the software or use pieces of it 26 | in new free programs; and that you know you can do these things. 27 | 28 | To protect your rights, we need to make restrictions that forbid 29 | anyone to deny you these rights or to ask you to surrender the rights. 30 | These restrictions translate to certain responsibilities for you if you 31 | distribute copies of the software, or if you modify it. 32 | 33 | For example, if you distribute copies of such a program, whether 34 | gratis or for a fee, you must give the recipients all the rights that 35 | you have. You must make sure that they, too, receive or can get the 36 | source code. And you must show them these terms so they know their 37 | rights. 38 | 39 | We protect your rights with two steps: (1) copyright the software, and 40 | (2) offer you this license which gives you legal permission to copy, 41 | distribute and/or modify the software. 42 | 43 | Also, for each author's protection and ours, we want to make certain 44 | that everyone understands that there is no warranty for this free 45 | software. If the software is modified by someone else and passed on, we 46 | want its recipients to know that what they have is not the original, so 47 | that any problems introduced by others will not reflect on the original 48 | authors' reputations. 49 | 50 | Finally, any free program is threatened constantly by software 51 | patents. We wish to avoid the danger that redistributors of a free 52 | program will individually obtain patent licenses, in effect making the 53 | program proprietary. To prevent this, we have made it clear that any 54 | patent must be licensed for everyone's free use or not licensed at all. 55 | 56 | The precise terms and conditions for copying, distribution and 57 | modification follow. 58 | 59 | GNU GENERAL PUBLIC LICENSE 60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 61 | 62 | 0. This License applies to any program or other work which contains 63 | a notice placed by the copyright holder saying it may be distributed 64 | under the terms of this General Public License. The "Program", below, 65 | refers to any such program or work, and a "work based on the Program" 66 | means either the Program or any derivative work under copyright law: 67 | that is to say, a work containing the Program or a portion of it, 68 | either verbatim or with modifications and/or translated into another 69 | language. (Hereinafter, translation is included without limitation in 70 | the term "modification".) Each licensee is addressed as "you". 71 | 72 | Activities other than copying, distribution and modification are not 73 | covered by this License; they are outside its scope. The act of 74 | running the Program is not restricted, and the output from the Program 75 | is covered only if its contents constitute a work based on the 76 | Program (independent of having been made by running the Program). 77 | Whether that is true depends on what the Program does. 78 | 79 | 1. You may copy and distribute verbatim copies of the Program's 80 | source code as you receive it, in any medium, provided that you 81 | conspicuously and appropriately publish on each copy an appropriate 82 | copyright notice and disclaimer of warranty; keep intact all the 83 | notices that refer to this License and to the absence of any warranty; 84 | and give any other recipients of the Program a copy of this License 85 | along with the Program. 86 | 87 | You may charge a fee for the physical act of transferring a copy, and 88 | you may at your option offer warranty protection in exchange for a fee. 89 | 90 | 2. You may modify your copy or copies of the Program or any portion 91 | of it, thus forming a work based on the Program, and copy and 92 | distribute such modifications or work under the terms of Section 1 93 | above, provided that you also meet all of these conditions: 94 | 95 | a) You must cause the modified files to carry prominent notices 96 | stating that you changed the files and the date of any change. 97 | 98 | b) You must cause any work that you distribute or publish, that in 99 | whole or in part contains or is derived from the Program or any 100 | part thereof, to be licensed as a whole at no charge to all third 101 | parties under the terms of this License. 102 | 103 | c) If the modified program normally reads commands interactively 104 | when run, you must cause it, when started running for such 105 | interactive use in the most ordinary way, to print or display an 106 | announcement including an appropriate copyright notice and a 107 | notice that there is no warranty (or else, saying that you provide 108 | a warranty) and that users may redistribute the program under 109 | these conditions, and telling the user how to view a copy of this 110 | License. (Exception: if the Program itself is interactive but 111 | does not normally print such an announcement, your work based on 112 | the Program is not required to print an announcement.) 113 | 114 | These requirements apply to the modified work as a whole. If 115 | identifiable sections of that work are not derived from the Program, 116 | and can be reasonably considered independent and separate works in 117 | themselves, then this License, and its terms, do not apply to those 118 | sections when you distribute them as separate works. But when you 119 | distribute the same sections as part of a whole which is a work based 120 | on the Program, the distribution of the whole must be on the terms of 121 | this License, whose permissions for other licensees extend to the 122 | entire whole, and thus to each and every part regardless of who wrote it. 123 | 124 | Thus, it is not the intent of this section to claim rights or contest 125 | your rights to work written entirely by you; rather, the intent is to 126 | exercise the right to control the distribution of derivative or 127 | collective works based on the Program. 128 | 129 | In addition, mere aggregation of another work not based on the Program 130 | with the Program (or with a work based on the Program) on a volume of 131 | a storage or distribution medium does not bring the other work under 132 | the scope of this License. 133 | 134 | 3. You may copy and distribute the Program (or a work based on it, 135 | under Section 2) in object code or executable form under the terms of 136 | Sections 1 and 2 above provided that you also do one of the following: 137 | 138 | a) Accompany it with the complete corresponding machine-readable 139 | source code, which must be distributed under the terms of Sections 140 | 1 and 2 above on a medium customarily used for software interchange; or, 141 | 142 | b) Accompany it with a written offer, valid for at least three 143 | years, to give any third party, for a charge no more than your 144 | cost of physically performing source distribution, a complete 145 | machine-readable copy of the corresponding source code, to be 146 | distributed under the terms of Sections 1 and 2 above on a medium 147 | customarily used for software interchange; or, 148 | 149 | c) Accompany it with the information you received as to the offer 150 | to distribute corresponding source code. (This alternative is 151 | allowed only for noncommercial distribution and only if you 152 | received the program in object code or executable form with such 153 | an offer, in accord with Subsection b above.) 154 | 155 | The source code for a work means the preferred form of the work for 156 | making modifications to it. For an executable work, complete source 157 | code means all the source code for all modules it contains, plus any 158 | associated interface definition files, plus the scripts used to 159 | control compilation and installation of the executable. However, as a 160 | special exception, the source code distributed need not include 161 | anything that is normally distributed (in either source or binary 162 | form) with the major components (compiler, kernel, and so on) of the 163 | operating system on which the executable runs, unless that component 164 | itself accompanies the executable. 165 | 166 | If distribution of executable or object code is made by offering 167 | access to copy from a designated place, then offering equivalent 168 | access to copy the source code from the same place counts as 169 | distribution of the source code, even though third parties are not 170 | compelled to copy the source along with the object code. 171 | 172 | 4. You may not copy, modify, sublicense, or distribute the Program 173 | except as expressly provided under this License. Any attempt 174 | otherwise to copy, modify, sublicense or distribute the Program is 175 | void, and will automatically terminate your rights under this License. 176 | However, parties who have received copies, or rights, from you under 177 | this License will not have their licenses terminated so long as such 178 | parties remain in full compliance. 179 | 180 | 5. You are not required to accept this License, since you have not 181 | signed it. However, nothing else grants you permission to modify or 182 | distribute the Program or its derivative works. These actions are 183 | prohibited by law if you do not accept this License. Therefore, by 184 | modifying or distributing the Program (or any work based on the 185 | Program), you indicate your acceptance of this License to do so, and 186 | all its terms and conditions for copying, distributing or modifying 187 | the Program or works based on it. 188 | 189 | 6. Each time you redistribute the Program (or any work based on the 190 | Program), the recipient automatically receives a license from the 191 | original licensor to copy, distribute or modify the Program subject to 192 | these terms and conditions. You may not impose any further 193 | restrictions on the recipients' exercise of the rights granted herein. 194 | You are not responsible for enforcing compliance by third parties to 195 | this License. 196 | 197 | 7. If, as a consequence of a court judgment or allegation of patent 198 | infringement or for any other reason (not limited to patent issues), 199 | conditions are imposed on you (whether by court order, agreement or 200 | otherwise) that contradict the conditions of this License, they do not 201 | excuse you from the conditions of this License. If you cannot 202 | distribute so as to satisfy simultaneously your obligations under this 203 | License and any other pertinent obligations, then as a consequence you 204 | may not distribute the Program at all. For example, if a patent 205 | license would not permit royalty-free redistribution of the Program by 206 | all those who receive copies directly or indirectly through you, then 207 | the only way you could satisfy both it and this License would be to 208 | refrain entirely from distribution of the Program. 209 | 210 | If any portion of this section is held invalid or unenforceable under 211 | any particular circumstance, the balance of the section is intended to 212 | apply and the section as a whole is intended to apply in other 213 | circumstances. 214 | 215 | It is not the purpose of this section to induce you to infringe any 216 | patents or other property right claims or to contest validity of any 217 | such claims; this section has the sole purpose of protecting the 218 | integrity of the free software distribution system, which is 219 | implemented by public license practices. Many people have made 220 | generous contributions to the wide range of software distributed 221 | through that system in reliance on consistent application of that 222 | system; it is up to the author/donor to decide if he or she is willing 223 | to distribute software through any other system and a licensee cannot 224 | impose that choice. 225 | 226 | This section is intended to make thoroughly clear what is believed to 227 | be a consequence of the rest of this License. 228 | 229 | 8. If the distribution and/or use of the Program is restricted in 230 | certain countries either by patents or by copyrighted interfaces, the 231 | original copyright holder who places the Program under this License 232 | may add an explicit geographical distribution limitation excluding 233 | those countries, so that distribution is permitted only in or among 234 | countries not thus excluded. In such case, this License incorporates 235 | the limitation as if written in the body of this License. 236 | 237 | 9. The Free Software Foundation may publish revised and/or new versions 238 | of the General Public License from time to time. Such new versions will 239 | be similar in spirit to the present version, but may differ in detail to 240 | address new problems or concerns. 241 | 242 | Each version is given a distinguishing version number. If the Program 243 | specifies a version number of this License which applies to it and "any 244 | later version", you have the option of following the terms and conditions 245 | either of that version or of any later version published by the Free 246 | Software Foundation. If the Program does not specify a version number of 247 | this License, you may choose any version ever published by the Free Software 248 | Foundation. 249 | 250 | 10. If you wish to incorporate parts of the Program into other free 251 | programs whose distribution conditions are different, write to the author 252 | to ask for permission. For software which is copyrighted by the Free 253 | Software Foundation, write to the Free Software Foundation; we sometimes 254 | make exceptions for this. Our decision will be guided by the two goals 255 | of preserving the free status of all derivatives of our free software and 256 | of promoting the sharing and reuse of software generally. 257 | 258 | NO WARRANTY 259 | 260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 268 | REPAIR OR CORRECTION. 269 | 270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 278 | POSSIBILITY OF SUCH DAMAGES. 279 | 280 | END OF TERMS AND CONDITIONS 281 | 282 | How to Apply These Terms to Your New Programs 283 | 284 | If you develop a new program, and you want it to be of the greatest 285 | possible use to the public, the best way to achieve this is to make it 286 | free software which everyone can redistribute and change under these terms. 287 | 288 | To do so, attach the following notices to the program. It is safest 289 | to attach them to the start of each source file to most effectively 290 | convey the exclusion of warranty; and each file should have at least 291 | the "copyright" line and a pointer to where the full notice is found. 292 | 293 | 294 | Copyright (C) 295 | 296 | This program is free software; you can redistribute it and/or modify 297 | it under the terms of the GNU General Public License as published by 298 | the Free Software Foundation; either version 2 of the License, or 299 | (at your option) any later version. 300 | 301 | This program is distributed in the hope that it will be useful, 302 | but WITHOUT ANY WARRANTY; without even the implied warranty of 303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 304 | GNU General Public License for more details. 305 | 306 | You should have received a copy of the GNU General Public License along 307 | with this program; if not, write to the Free Software Foundation, Inc., 308 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 309 | 310 | Also add information on how to contact you by electronic and paper mail. 311 | 312 | If the program is interactive, make it output a short notice like this 313 | when it starts in an interactive mode: 314 | 315 | Gnomovision version 69, Copyright (C) year name of author 316 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 317 | This is free software, and you are welcome to redistribute it 318 | under certain conditions; type `show c' for details. 319 | 320 | The hypothetical commands `show w' and `show c' should show the appropriate 321 | parts of the General Public License. Of course, the commands you use may 322 | be called something other than `show w' and `show c'; they could even be 323 | mouse-clicks or menu items--whatever suits your program. 324 | 325 | You should also get your employer (if you work as a programmer) or your 326 | school, if any, to sign a "copyright disclaimer" for the program, if 327 | necessary. Here is a sample; alter the names: 328 | 329 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program 330 | `Gnomovision' (which makes passes at compilers) written by James Hacker. 331 | 332 | , 1 April 1989 333 | Ty Coon, President of Vice 334 | 335 | This General Public License does not permit incorporating your program into 336 | proprietary programs. If your program is a subroutine library, you may 337 | consider it more useful to permit linking proprietary applications with the 338 | library. If this is what you want to do, use the GNU Lesser General 339 | Public License instead of this License. 340 | -------------------------------------------------------------------------------- /footprints/xiao_flippable.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | params: { 3 | designator: 'xiao-ble', 4 | VCC5: {type: 'net', value: 'VCC5'}, 5 | GND: {type: 'net', value: 'GND'}, 6 | VCC3: {type: 'net', value: 'VCC3'}, 7 | RST: {type: 'net', value: 'RST'}, 8 | RAW: {type: 'net', value: 'RAW'}, 9 | NFC0: {type: 'net', value: 'NFC0'}, 10 | NFC1: {type: 'net', value: 'NFC1'}, 11 | CLK: {type: 'net', value: 'CLK'}, 12 | DIO: {type: 'net', value: 'DIO'}, 13 | P0: {type: 'net', value: 'P0'}, 14 | P1: {type: 'net', value: 'P1'}, 15 | P2: {type: 'net', value: 'P2'}, 16 | P3: {type: 'net', value: 'P3'}, 17 | P4: {type: 'net', value: 'P4'}, 18 | P5: {type: 'net', value: 'P5'}, 19 | P6: {type: 'net', value: 'P6'}, 20 | P7: {type: 'net', value: 'P7'}, 21 | P8: {type: 'net', value: 'P8'}, 22 | P9: {type: 'net', value: 'P9'}, 23 | P10: {type: 'net', value: 'P10'} 24 | }, 25 | body: p => { 26 | return ` 27 | (footprint "xiao-ble" (layer "F.Cu") 28 | (tstamp e731e554-812f-475b-93b0-e9f8c721c2a8) 29 | ${p.at /* parametric position */} 30 | (attr through_hole) 31 | (fp_text reference "${p.ref}" (at -20.406 -9.144 ${p.rot + 90}) (layer "F.SilkS") ${p.ref_hide} 32 | (effects (font (size 1 1) (thickness 0.15))) 33 | (tstamp c9799749-dfc5-46b5-96e7-38214028eb92) 34 | ) 35 | (fp_text value "ProMicro" (at 12.36 -8.89 ${p.rot + 90}) (layer "F.Fab") hide 36 | (effects (font (size 1 1) (thickness 0.15))) 37 | (tstamp d6785958-95ae-4f67-acdc-1f88e74beecf) 38 | ) 39 | (fp_circle (center -18.12 -9.652) (end -17.995 -9.652) 40 | (stroke (width 0.25) (type solid)) (fill none) (layer "B.Mask") (tstamp 638427b7-42f9-454f-bba9-8a7f9f217e1b)) 41 | (fp_circle (center -18.12 -8.128) (end -17.995 -8.128) 42 | (stroke (width 0.25) (type solid)) (fill none) (layer "B.Mask") (tstamp 75b8788b-b3d2-49ee-af5a-cc1d17cf0bf1)) 43 | (fp_circle (center -15.58 -9.652) (end -15.455 -9.652) 44 | (stroke (width 0.25) (type solid)) (fill none) (layer "B.Mask") (tstamp 2b81547f-5d62-476b-b662-4c32bb167dcc)) 45 | (fp_circle (center -15.58 -8.128) (end -15.455 -8.128) 46 | (stroke (width 0.25) (type solid)) (fill none) (layer "B.Mask") (tstamp 66183110-858e-4b91-94d7-7cc340ae6e46)) 47 | (fp_circle (center -13.04 -9.652) (end -12.915 -9.652) 48 | (stroke (width 0.25) (type solid)) (fill none) (layer "B.Mask") (tstamp 5a750adc-413c-4205-ae2a-85907a4e60c9)) 49 | (fp_circle (center -13.04 -8.128) (end -12.915 -8.128) 50 | (stroke (width 0.25) (type solid)) (fill none) (layer "B.Mask") (tstamp 118377e1-1884-4599-96d3-3ca2164ef921)) 51 | (fp_circle (center -10.5 -9.652) (end -10.375 -9.652) 52 | (stroke (width 0.25) (type solid)) (fill none) (layer "B.Mask") (tstamp ca6d7af7-ba4e-4e74-bfa3-fc1a5a45694c)) 53 | (fp_circle (center -10.5 -8.128) (end -10.375 -8.128) 54 | (stroke (width 0.25) (type solid)) (fill none) (layer "B.Mask") (tstamp 4896e640-3627-4514-9874-3c67236f6ee5)) 55 | (fp_circle (center -7.96 -9.652) (end -7.835 -9.652) 56 | (stroke (width 0.25) (type solid)) (fill none) (layer "B.Mask") (tstamp c8c7e73e-3e26-4ab1-91b2-d1c6b98e1132)) 57 | (fp_circle (center -7.96 -8.128) (end -7.835 -8.128) 58 | (stroke (width 0.25) (type solid)) (fill none) (layer "B.Mask") (tstamp 65c33fb6-aee7-4b14-96f7-65638c4fb2d6)) 59 | (fp_circle (center -5.42 -9.652) (end -5.295 -9.652) 60 | (stroke (width 0.25) (type solid)) (fill none) (layer "B.Mask") (tstamp a937ad80-83d8-469d-8080-138d600a3d08)) 61 | (fp_circle (center -5.42 -8.128) (end -5.295 -8.128) 62 | (stroke (width 0.25) (type solid)) (fill none) (layer "B.Mask") (tstamp 4db9660c-6f3c-4bfa-b332-b49723766161)) 63 | (fp_circle (center -2.88 -9.652) (end -2.755 -9.652) 64 | (stroke (width 0.25) (type solid)) (fill none) (layer "B.Mask") (tstamp eaa13b86-b2de-4ce4-95aa-65e3685e4ec4)) 65 | (fp_circle (center -2.88 -8.128) (end -2.755 -8.128) 66 | (stroke (width 0.25) (type solid)) (fill none) (layer "B.Mask") (tstamp 2cff1c62-3797-4c3c-8fa3-0cee9f968cc7)) 67 | (fp_poly 68 | (pts 69 | (xy -18.628 -3.81) 70 | (xy -17.612 -3.81) 71 | (xy -17.612 -2.794) 72 | (xy -18.628 -2.794) 73 | ) 74 | 75 | (stroke (width 0.1) (type solid)) (fill solid) (layer "B.Mask") (tstamp 64f1dbf2-eb38-466b-90ea-b30beb57049b)) 76 | (fp_poly 77 | (pts 78 | (xy -17.612 -13.97) 79 | (xy -18.628 -13.97) 80 | (xy -18.628 -14.986) 81 | (xy -17.612 -14.986) 82 | ) 83 | 84 | (stroke (width 0.1) (type solid)) (fill solid) (layer "B.Mask") (tstamp 53ab187f-1c58-4419-8b09-5f7052b17471)) 85 | (fp_poly 86 | (pts 87 | (xy -16.088 -3.81) 88 | (xy -15.072 -3.81) 89 | (xy -15.072 -2.794) 90 | (xy -16.088 -2.794) 91 | ) 92 | 93 | (stroke (width 0.1) (type solid)) (fill solid) (layer "B.Mask") (tstamp 05058cbb-714a-41e3-b83a-ba5026187bda)) 94 | (fp_poly 95 | (pts 96 | (xy -15.072 -13.97) 97 | (xy -16.088 -13.97) 98 | (xy -16.088 -14.986) 99 | (xy -15.072 -14.986) 100 | ) 101 | 102 | (stroke (width 0.1) (type solid)) (fill solid) (layer "B.Mask") (tstamp 03ada9e0-933e-4941-897f-92d02fbd7dbb)) 103 | (fp_poly 104 | (pts 105 | (xy -13.548 -3.81) 106 | (xy -12.532 -3.81) 107 | (xy -12.532 -2.794) 108 | (xy -13.548 -2.794) 109 | ) 110 | 111 | (stroke (width 0.1) (type solid)) (fill solid) (layer "B.Mask") (tstamp b66e71f1-e370-48e5-8d13-c4bf05bdd2fe)) 112 | (fp_poly 113 | (pts 114 | (xy -12.532 -13.97) 115 | (xy -13.548 -13.97) 116 | (xy -13.548 -14.986) 117 | (xy -12.532 -14.986) 118 | ) 119 | 120 | (stroke (width 0.1) (type solid)) (fill solid) (layer "B.Mask") (tstamp 9a31767e-7b24-4aea-b307-0e247b3ae291)) 121 | (fp_poly 122 | (pts 123 | (xy -11.008 -3.81) 124 | (xy -9.992 -3.81) 125 | (xy -9.992 -2.794) 126 | (xy -11.008 -2.794) 127 | ) 128 | 129 | (stroke (width 0.1) (type solid)) (fill solid) (layer "B.Mask") (tstamp 03ae1694-cf28-4213-b500-e0c80a832262)) 130 | (fp_poly 131 | (pts 132 | (xy -9.992 -13.97) 133 | (xy -11.008 -13.97) 134 | (xy -11.008 -14.986) 135 | (xy -9.992 -14.986) 136 | ) 137 | 138 | (stroke (width 0.1) (type solid)) (fill solid) (layer "B.Mask") (tstamp 2675566d-8331-4623-a935-243566fdb8e5)) 139 | (fp_poly 140 | (pts 141 | (xy -8.468 -3.81) 142 | (xy -7.452 -3.81) 143 | (xy -7.452 -2.794) 144 | (xy -8.468 -2.794) 145 | ) 146 | 147 | (stroke (width 0.1) (type solid)) (fill solid) (layer "B.Mask") (tstamp cdfa7e21-6de2-4718-b832-e49237a7c230)) 148 | (fp_poly 149 | (pts 150 | (xy -7.452 -13.97) 151 | (xy -8.468 -13.97) 152 | (xy -8.468 -14.986) 153 | (xy -7.452 -14.986) 154 | ) 155 | 156 | (stroke (width 0.1) (type solid)) (fill solid) (layer "B.Mask") (tstamp c17d54de-08ad-41ae-82bc-bcaf10baa2b3)) 157 | (fp_poly 158 | (pts 159 | (xy -5.928 -3.81) 160 | (xy -4.912 -3.81) 161 | (xy -4.912 -2.794) 162 | (xy -5.928 -2.794) 163 | ) 164 | 165 | (stroke (width 0.1) (type solid)) (fill solid) (layer "B.Mask") (tstamp 736e8591-0d85-4da5-b127-c98be66f18b0)) 166 | (fp_poly 167 | (pts 168 | (xy -4.912 -13.97) 169 | (xy -5.928 -13.97) 170 | (xy -5.928 -14.986) 171 | (xy -4.912 -14.986) 172 | ) 173 | 174 | (stroke (width 0.1) (type solid)) (fill solid) (layer "B.Mask") (tstamp bf40ff81-55f2-4f44-8502-bfc81ead499c)) 175 | (fp_poly 176 | (pts 177 | (xy -3.388 -3.81) 178 | (xy -2.372 -3.81) 179 | (xy -2.372 -2.794) 180 | (xy -3.388 -2.794) 181 | ) 182 | 183 | (stroke (width 0.1) (type solid)) (fill solid) (layer "B.Mask") (tstamp e93b8fc1-ffb3-469f-9297-1159f8abf51d)) 184 | (fp_poly 185 | (pts 186 | (xy -2.372 -13.97) 187 | (xy -3.388 -13.97) 188 | (xy -3.388 -14.986) 189 | (xy -2.372 -14.986) 190 | ) 191 | 192 | (stroke (width 0.1) (type solid)) (fill solid) (layer "B.Mask") (tstamp 2e3ec620-bd9d-40e5-954d-ee6cf49dbc7d)) 193 | (fp_circle (center -18.12 -9.652) (end -17.995 -9.652) 194 | (stroke (width 0.25) (type solid)) (fill none) (layer "F.Mask") (tstamp 526eb95c-fe08-4450-9508-830f31f995bb)) 195 | (fp_circle (center -18.12 -8.128) (end -17.995 -8.128) 196 | (stroke (width 0.25) (type solid)) (fill none) (layer "F.Mask") (tstamp f9532315-6989-4427-a190-3271cb6c04ac)) 197 | (fp_circle (center -15.58 -9.652) (end -15.455 -9.652) 198 | (stroke (width 0.25) (type solid)) (fill none) (layer "F.Mask") (tstamp 1fddfc1e-c060-4911-aee9-e3edf70542b7)) 199 | (fp_circle (center -15.58 -8.128) (end -15.455 -8.128) 200 | (stroke (width 0.25) (type solid)) (fill none) (layer "F.Mask") (tstamp 9a869089-d269-4a1e-8fe5-cec098f9fd9b)) 201 | (fp_circle (center -13.04 -9.652) (end -12.915 -9.652) 202 | (stroke (width 0.25) (type solid)) (fill none) (layer "F.Mask") (tstamp f9a186d1-670d-4394-b21c-f48ade309079)) 203 | (fp_circle (center -13.04 -8.128) (end -12.915 -8.128) 204 | (stroke (width 0.25) (type solid)) (fill none) (layer "F.Mask") (tstamp 56c62488-6670-4187-8c05-f9f4a6a18033)) 205 | (fp_circle (center -10.5 -9.652) (end -10.375 -9.652) 206 | (stroke (width 0.25) (type solid)) (fill none) (layer "F.Mask") (tstamp d2e927fa-b573-4191-8b33-27c2219188f6)) 207 | (fp_circle (center -10.5 -8.128) (end -10.375 -8.128) 208 | (stroke (width 0.25) (type solid)) (fill none) (layer "F.Mask") (tstamp 4eb35eaf-ae05-47ff-9624-e284d367e751)) 209 | (fp_circle (center -7.96 -9.652) (end -7.835 -9.652) 210 | (stroke (width 0.25) (type solid)) (fill none) (layer "F.Mask") (tstamp c50f90d5-6776-4fe0-813e-e57533bab8d7)) 211 | (fp_circle (center -7.96 -8.128) (end -7.835 -8.128) 212 | (stroke (width 0.25) (type solid)) (fill none) (layer "F.Mask") (tstamp 6b02e404-6d38-4939-a4cc-56a810a361e9)) 213 | (fp_circle (center -5.42 -9.652) (end -5.295 -9.652) 214 | (stroke (width 0.25) (type solid)) (fill none) (layer "F.Mask") (tstamp 8422554a-d10e-4a96-968f-f2e6f8534b08)) 215 | (fp_circle (center -5.42 -8.128) (end -5.295 -8.128) 216 | (stroke (width 0.25) (type solid)) (fill none) (layer "F.Mask") (tstamp 6e3076f8-55e5-404a-8671-335fd84bd3a3)) 217 | (fp_circle (center -2.88 -9.652) (end -2.755 -9.652) 218 | (stroke (width 0.25) (type solid)) (fill none) (layer "F.Mask") (tstamp 3c94600f-f290-4e54-8f75-a4eac5fc4343)) 219 | (fp_circle (center -2.88 -8.128) (end -2.755 -8.128) 220 | (stroke (width 0.25) (type solid)) (fill none) (layer "F.Mask") (tstamp 0f07bd82-4671-4dd4-8781-ef3de696b589)) 221 | (fp_poly 222 | (pts 223 | (xy -18.628 -3.81) 224 | (xy -17.612 -3.81) 225 | (xy -17.612 -2.794) 226 | (xy -18.628 -2.794) 227 | ) 228 | 229 | (stroke (width 0.1) (type solid)) (fill solid) (layer "F.Mask") (tstamp f587cb7e-b104-4495-98d3-f2b27402eb69)) 230 | (fp_poly 231 | (pts 232 | (xy -17.612 -13.97) 233 | (xy -18.628 -13.97) 234 | (xy -18.628 -14.986) 235 | (xy -17.612 -14.986) 236 | ) 237 | 238 | (stroke (width 0.1) (type solid)) (fill solid) (layer "F.Mask") (tstamp 839d216f-5cbb-4c1d-bfd8-922398a0e2e3)) 239 | (fp_poly 240 | (pts 241 | (xy -16.088 -3.81) 242 | (xy -15.072 -3.81) 243 | (xy -15.072 -2.794) 244 | (xy -16.088 -2.794) 245 | ) 246 | 247 | (stroke (width 0.1) (type solid)) (fill solid) (layer "F.Mask") (tstamp ee845203-4d07-4de9-bdc5-2c8dd0f65587)) 248 | (fp_poly 249 | (pts 250 | (xy -15.072 -13.97) 251 | (xy -16.088 -13.97) 252 | (xy -16.088 -14.986) 253 | (xy -15.072 -14.986) 254 | ) 255 | 256 | (stroke (width 0.1) (type solid)) (fill solid) (layer "F.Mask") (tstamp 2f5ee62c-8fa2-4fbf-bbe4-e1d1036f6211)) 257 | (fp_poly 258 | (pts 259 | (xy -13.548 -3.81) 260 | (xy -12.532 -3.81) 261 | (xy -12.532 -2.794) 262 | (xy -13.548 -2.794) 263 | ) 264 | 265 | (stroke (width 0.1) (type solid)) (fill solid) (layer "F.Mask") (tstamp a2726d09-1db1-4221-99cf-262dc7cc8c97)) 266 | (fp_poly 267 | (pts 268 | (xy -12.532 -13.97) 269 | (xy -13.548 -13.97) 270 | (xy -13.548 -14.986) 271 | (xy -12.532 -14.986) 272 | ) 273 | 274 | (stroke (width 0.1) (type solid)) (fill solid) (layer "F.Mask") (tstamp 6eb48653-1205-44c5-ac9c-47158a811d1e)) 275 | (fp_poly 276 | (pts 277 | (xy -11.008 -3.81) 278 | (xy -9.992 -3.81) 279 | (xy -9.992 -2.794) 280 | (xy -11.008 -2.794) 281 | ) 282 | 283 | (stroke (width 0.1) (type solid)) (fill solid) (layer "F.Mask") (tstamp fa40c6f9-7f64-4439-a0d6-163593a1ca9b)) 284 | (fp_poly 285 | (pts 286 | (xy -9.992 -13.97) 287 | (xy -11.008 -13.97) 288 | (xy -11.008 -14.986) 289 | (xy -9.992 -14.986) 290 | ) 291 | 292 | (stroke (width 0.1) (type solid)) (fill solid) (layer "F.Mask") (tstamp 8a491191-94f6-4b1f-a734-37558324e466)) 293 | (fp_poly 294 | (pts 295 | (xy -8.468 -3.81) 296 | (xy -7.452 -3.81) 297 | (xy -7.452 -2.794) 298 | (xy -8.468 -2.794) 299 | ) 300 | 301 | (stroke (width 0.1) (type solid)) (fill solid) (layer "F.Mask") (tstamp 6fcbbbed-1e48-4aa7-854c-ef37195ca3da)) 302 | (fp_poly 303 | (pts 304 | (xy -7.452 -13.97) 305 | (xy -8.468 -13.97) 306 | (xy -8.468 -14.986) 307 | (xy -7.452 -14.986) 308 | ) 309 | 310 | (stroke (width 0.1) (type solid)) (fill solid) (layer "F.Mask") (tstamp 33af95b7-18d7-43d4-982d-670435a82321)) 311 | (fp_poly 312 | (pts 313 | (xy -5.928 -3.81) 314 | (xy -4.912 -3.81) 315 | (xy -4.912 -2.794) 316 | (xy -5.928 -2.794) 317 | ) 318 | 319 | (stroke (width 0.1) (type solid)) (fill solid) (layer "F.Mask") (tstamp 7056b0ff-d02c-4bbe-b972-69843e3d912d)) 320 | (fp_poly 321 | (pts 322 | (xy -4.912 -13.97) 323 | (xy -5.928 -13.97) 324 | (xy -5.928 -14.986) 325 | (xy -4.912 -14.986) 326 | ) 327 | 328 | (stroke (width 0.1) (type solid)) (fill solid) (layer "F.Mask") (tstamp 4ec3bd05-7184-4484-a78e-3e848a0934d4)) 329 | (fp_poly 330 | (pts 331 | (xy -3.388 -3.81) 332 | (xy -2.372 -3.81) 333 | (xy -2.372 -2.794) 334 | (xy -3.388 -2.794) 335 | ) 336 | 337 | (stroke (width 0.1) (type solid)) (fill solid) (layer "F.Mask") (tstamp f453556f-3a14-40ce-93ec-3473eb045bc9)) 338 | (fp_poly 339 | (pts 340 | (xy -2.372 -13.97) 341 | (xy -3.388 -13.97) 342 | (xy -3.388 -14.986) 343 | (xy -2.372 -14.986) 344 | ) 345 | 346 | (stroke (width 0.1) (type solid)) (fill solid) (layer "F.Mask") (tstamp d6fe5db7-f825-4225-a700-194275d7b8ba)) 347 | (fp_rect (start -21.349813 -12.240197) (end -18.682813 -14.018197) 348 | (stroke (width 0.12) (type solid)) (fill none) (layer "Dwgs.User") (tstamp 77763937-d2f3-46ca-995a-fa9c95252770)) 349 | (fp_rect (start -18.682813 -5.382189) (end -21.349813 -3.604189) 350 | (stroke (width 0.12) (type solid)) (fill none) (layer "Dwgs.User") (tstamp a25b5b35-b041-4361-817d-df7e4a7ab402)) 351 | (fp_rect (start -17.285813 -12.240197) (end -14.618813 -14.018197) 352 | (stroke (width 0.12) (type solid)) (fill none) (layer "Dwgs.User") (tstamp c7e3850f-f271-42e3-b017-585b2cf567fa)) 353 | (fp_rect (start -17.285813 -3.604189) (end -14.618813 -5.382189) 354 | (stroke (width 0.12) (type solid)) (fill none) (layer "Dwgs.User") (tstamp 226df71e-0712-443d-bfd3-95357b7c640d)) 355 | (fp_rect (start 0 0) (end -21 -17.78) 356 | (stroke (width 0.12) (type solid)) (fill none) (layer "Dwgs.User") (tstamp ad650378-54fe-4e47-a0a1-ae5724207bc3)) 357 | (pad "" thru_hole circle (at -18.12 -16.51 ${p.rot}) (size 1.6 1.6) (drill 1.1) (layers "*.Cu" "*.Mask") (tstamp ba0109dc-fbe9-41aa-98f7-3a8b2b4cf1a0)) 358 | (pad "" smd custom (at -18.12 -15.24 ${p.rot}) (size 0.25 1) (layers "F.Cu") 359 | (zone_connect 0) 360 | (options (clearance outline) (anchor rect)) 361 | (primitives 362 | ) (tstamp 08b0e0e8-37be-43fb-9e91-33204ae7452d)) 363 | (pad "" smd custom (at -18.12 -15.24 ${p.rot}) (size 0.25 1) (layers "B.Cu") 364 | (zone_connect 0) 365 | (options (clearance outline) (anchor rect)) 366 | (primitives 367 | ) (tstamp f9905642-e11c-46f1-aa99-91d025ca0d53)) 368 | (pad "" smd custom (at -18.12 -14.732 ${p.rot}) (size 0.1 0.1) (layers "F.Cu" "F.Mask") 369 | (clearance 0.1) (zone_connect 0) 370 | (options (clearance outline) (anchor rect)) 371 | (primitives 372 | (gr_poly 373 | (pts 374 | (xy 0.6 -0.4) 375 | (xy -0.6 -0.4) 376 | (xy -0.6 -0.2) 377 | (xy 0 0.4) 378 | (xy 0.6 -0.2) 379 | ) 380 | (width 0) (fill yes)) 381 | ) (tstamp c57f1903-7cc0-4d62-85d2-f82c8943ddec)) 382 | (pad "" smd custom (at -18.12 -14.732 ${p.rot}) (size 0.1 0.1) (layers "B.Cu" "B.Mask") 383 | (clearance 0.1) (zone_connect 0) 384 | (options (clearance outline) (anchor rect)) 385 | (primitives 386 | (gr_poly 387 | (pts 388 | (xy 0.6 -0.4) 389 | (xy -0.6 -0.4) 390 | (xy -0.6 -0.2) 391 | (xy 0 0.4) 392 | (xy 0.6 -0.2) 393 | ) 394 | (width 0) (fill yes)) 395 | ) (tstamp 8983cfbb-07a1-4e10-bc83-08783c17390c)) 396 | (pad "" smd custom (at -18.12 -3.048 ${p.rot + 180}) (size 0.1 0.1) (layers "F.Cu" "F.Mask") 397 | (clearance 0.1) (zone_connect 0) 398 | (options (clearance outline) (anchor rect)) 399 | (primitives 400 | (gr_poly 401 | (pts 402 | (xy 0.6 -0.4) 403 | (xy -0.6 -0.4) 404 | (xy -0.6 -0.2) 405 | (xy 0 0.4) 406 | (xy 0.6 -0.2) 407 | ) 408 | (width 0) (fill yes)) 409 | ) (tstamp 077b5855-2640-4f52-83e3-0a1ff2368735)) 410 | (pad "" smd custom (at -18.12 -3.048 ${p.rot + 180}) (size 0.1 0.1) (layers "B.Cu" "B.Mask") 411 | (clearance 0.1) (zone_connect 0) 412 | (options (clearance outline) (anchor rect)) 413 | (primitives 414 | (gr_poly 415 | (pts 416 | (xy 0.6 -0.4) 417 | (xy -0.6 -0.4) 418 | (xy -0.6 -0.2) 419 | (xy 0 0.4) 420 | (xy 0.6 -0.2) 421 | ) 422 | (width 0) (fill yes)) 423 | ) (tstamp ddca0075-623c-4436-a963-c110e97f2756)) 424 | (pad "" smd custom (at -18.12 -2.54 ${p.rot + 180}) (size 0.25 1) (layers "F.Cu") 425 | (zone_connect 0) 426 | (options (clearance outline) (anchor rect)) 427 | (primitives 428 | ) (tstamp ab83aee3-e4ce-4c17-af4d-8dc71a6d531a)) 429 | (pad "" smd custom (at -18.12 -2.54 ${p.rot + 180}) (size 0.25 1) (layers "B.Cu") 430 | (zone_connect 0) 431 | (options (clearance outline) (anchor rect)) 432 | (primitives 433 | ) (tstamp 868e8c91-0ded-4fbb-bef2-277e1efc1243)) 434 | (pad "" thru_hole circle (at -18.12 -1.27 ${p.rot}) (size 1.6 1.6) (drill 1.1) (layers "*.Cu" "*.Mask") 435 | (zone_connect 0) (tstamp 9e8bd8da-db8d-48f3-9451-1b27ddacd628)) 436 | (pad "" thru_hole circle (at -15.58 -16.51 ${p.rot}) (size 1.6 1.6) (drill 1.1) (layers "*.Cu" "*.Mask") (tstamp 6f35f54e-9d7e-4e5e-a0a1-5bdda0ed6630)) 437 | (pad "" smd custom (at -15.58 -15.24 ${p.rot}) (size 0.25 1) (layers "F.Cu") 438 | (zone_connect 0) 439 | (options (clearance outline) (anchor rect)) 440 | (primitives 441 | ) (tstamp c851c36c-bee5-4385-a35d-0f6b891d9f59)) 442 | (pad "" smd custom (at -15.58 -15.24 ${p.rot}) (size 0.25 1) (layers "B.Cu") 443 | (zone_connect 0) 444 | (options (clearance outline) (anchor rect)) 445 | (primitives 446 | ) (tstamp 4ad76cca-8b8b-4ad0-94a0-c8899ad83ee5)) 447 | (pad "" smd custom (at -15.58 -14.732 ${p.rot}) (size 0.1 0.1) (layers "F.Cu" "F.Mask") 448 | (clearance 0.1) (zone_connect 0) 449 | (options (clearance outline) (anchor rect)) 450 | (primitives 451 | (gr_poly 452 | (pts 453 | (xy 0.6 -0.4) 454 | (xy -0.6 -0.4) 455 | (xy -0.6 -0.2) 456 | (xy 0 0.4) 457 | (xy 0.6 -0.2) 458 | ) 459 | (width 0) (fill yes)) 460 | ) (tstamp bb33ff41-3903-46ef-a36b-58b62d6d8b9c)) 461 | (pad "" smd custom (at -15.58 -14.732 ${p.rot}) (size 0.1 0.1) (layers "B.Cu" "B.Mask") 462 | (clearance 0.1) (zone_connect 0) 463 | (options (clearance outline) (anchor rect)) 464 | (primitives 465 | (gr_poly 466 | (pts 467 | (xy 0.6 -0.4) 468 | (xy -0.6 -0.4) 469 | (xy -0.6 -0.2) 470 | (xy 0 0.4) 471 | (xy 0.6 -0.2) 472 | ) 473 | (width 0) (fill yes)) 474 | ) (tstamp 4b83ab73-cd38-464d-a134-7b538be8d379)) 475 | (pad "" smd custom (at -15.58 -3.048 ${p.rot + 180}) (size 0.1 0.1) (layers "F.Cu" "F.Mask") 476 | (clearance 0.1) (zone_connect 0) 477 | (options (clearance outline) (anchor rect)) 478 | (primitives 479 | (gr_poly 480 | (pts 481 | (xy 0.6 -0.4) 482 | (xy -0.6 -0.4) 483 | (xy -0.6 -0.2) 484 | (xy 0 0.4) 485 | (xy 0.6 -0.2) 486 | ) 487 | (width 0) (fill yes)) 488 | ) (tstamp 819d5171-e333-44d5-8408-c4868f55dd2f)) 489 | (pad "" smd custom (at -15.58 -3.048 ${p.rot + 180}) (size 0.1 0.1) (layers "B.Cu" "B.Mask") 490 | (clearance 0.1) (zone_connect 0) 491 | (options (clearance outline) (anchor rect)) 492 | (primitives 493 | (gr_poly 494 | (pts 495 | (xy 0.6 -0.4) 496 | (xy -0.6 -0.4) 497 | (xy -0.6 -0.2) 498 | (xy 0 0.4) 499 | (xy 0.6 -0.2) 500 | ) 501 | (width 0) (fill yes)) 502 | ) (tstamp 18b69357-7a1a-4170-ab72-ba7ef22c72e3)) 503 | (pad "" smd custom (at -15.58 -2.54 ${p.rot + 180}) (size 0.25 1) (layers "F.Cu") 504 | (zone_connect 0) 505 | (options (clearance outline) (anchor rect)) 506 | (primitives 507 | ) (tstamp 1e1c4162-1b89-49df-bbc9-456ca4759f0a)) 508 | (pad "" smd custom (at -15.58 -2.54 ${p.rot + 180}) (size 0.25 1) (layers "B.Cu") 509 | (zone_connect 0) 510 | (options (clearance outline) (anchor rect)) 511 | (primitives 512 | ) (tstamp 57644ddd-226a-4515-b3e4-eccdc5322267)) 513 | (pad "" thru_hole circle (at -15.58 -1.27 ${p.rot}) (size 1.6 1.6) (drill 1.1) (layers "*.Cu" "*.Mask") (tstamp 3c5dd638-2aa2-43b2-a120-1f505754462a)) 514 | (pad "" thru_hole circle (at -13.04 -16.51 ${p.rot}) (size 1.6 1.6) (drill 1.1) (layers "*.Cu" "*.Mask") (tstamp 15e13437-774e-449c-87c8-dabcaf9ae7d1)) 515 | (pad "" smd custom (at -13.04 -15.24 ${p.rot}) (size 0.25 1) (layers "F.Cu") 516 | (zone_connect 0) 517 | (options (clearance outline) (anchor rect)) 518 | (primitives 519 | ) (tstamp a42a64e0-8518-4fad-919f-7927557b4e44)) 520 | (pad "" smd custom (at -13.04 -15.24 ${p.rot}) (size 0.25 1) (layers "B.Cu") 521 | (zone_connect 0) 522 | (options (clearance outline) (anchor rect)) 523 | (primitives 524 | ) (tstamp 8b4eb5ec-48bb-4936-b036-ceda99055fed)) 525 | (pad "" smd custom (at -13.04 -14.732 ${p.rot}) (size 0.1 0.1) (layers "F.Cu" "F.Mask") 526 | (clearance 0.1) (zone_connect 0) 527 | (options (clearance outline) (anchor rect)) 528 | (primitives 529 | (gr_poly 530 | (pts 531 | (xy 0.6 -0.4) 532 | (xy -0.6 -0.4) 533 | (xy -0.6 -0.2) 534 | (xy 0 0.4) 535 | (xy 0.6 -0.2) 536 | ) 537 | (width 0) (fill yes)) 538 | ) (tstamp ad287322-231f-4093-9a87-72900ba8a0e5)) 539 | (pad "" smd custom (at -13.04 -14.732 ${p.rot}) (size 0.1 0.1) (layers "B.Cu" "B.Mask") 540 | (clearance 0.1) (zone_connect 0) 541 | (options (clearance outline) (anchor rect)) 542 | (primitives 543 | (gr_poly 544 | (pts 545 | (xy 0.6 -0.4) 546 | (xy -0.6 -0.4) 547 | (xy -0.6 -0.2) 548 | (xy 0 0.4) 549 | (xy 0.6 -0.2) 550 | ) 551 | (width 0) (fill yes)) 552 | ) (tstamp 502c77e4-5d69-49de-807b-bf10f1413530)) 553 | (pad "" smd custom (at -13.04 -3.048 ${p.rot + 180}) (size 0.1 0.1) (layers "F.Cu" "F.Mask") 554 | (clearance 0.1) (zone_connect 0) 555 | (options (clearance outline) (anchor rect)) 556 | (primitives 557 | (gr_poly 558 | (pts 559 | (xy 0.6 -0.4) 560 | (xy -0.6 -0.4) 561 | (xy -0.6 -0.2) 562 | (xy 0 0.4) 563 | (xy 0.6 -0.2) 564 | ) 565 | (width 0) (fill yes)) 566 | ) (tstamp 1c24cc8e-b28f-4cf9-8ba1-79c184fbe189)) 567 | (pad "" smd custom (at -13.04 -3.048 ${p.rot + 180}) (size 0.1 0.1) (layers "B.Cu" "B.Mask") 568 | (clearance 0.1) (zone_connect 0) 569 | (options (clearance outline) (anchor rect)) 570 | (primitives 571 | (gr_poly 572 | (pts 573 | (xy 0.6 -0.4) 574 | (xy -0.6 -0.4) 575 | (xy -0.6 -0.2) 576 | (xy 0 0.4) 577 | (xy 0.6 -0.2) 578 | ) 579 | (width 0) (fill yes)) 580 | ) (tstamp d7e069ff-4a11-4a8d-ab95-56b42c264380)) 581 | (pad "" smd custom (at -13.04 -2.54 ${p.rot + 180}) (size 0.25 1) (layers "F.Cu") 582 | (zone_connect 0) 583 | (options (clearance outline) (anchor rect)) 584 | (primitives 585 | ) (tstamp 1796217f-5bb8-4203-a98d-88e36ee28feb)) 586 | (pad "" smd custom (at -13.04 -2.54 ${p.rot + 180}) (size 0.25 1) (layers "B.Cu") 587 | (zone_connect 0) 588 | (options (clearance outline) (anchor rect)) 589 | (primitives 590 | ) (tstamp b4c83a6b-25dc-4431-915b-cab796d3c203)) 591 | (pad "" thru_hole circle (at -13.04 -1.27 ${p.rot}) (size 1.6 1.6) (drill 1.1) (layers "*.Cu" "*.Mask") (tstamp 9401c80a-1ce9-42df-b1be-8a54c7220af0)) 592 | (pad "" thru_hole circle (at -10.5 -16.51 ${p.rot}) (size 1.6 1.6) (drill 1.1) (layers "*.Cu" "*.Mask") (tstamp e525b7d3-f734-4243-aeea-ba88dbfaf04a)) 593 | (pad "" smd custom (at -10.5 -15.24 ${p.rot}) (size 0.25 1) (layers "F.Cu") 594 | (zone_connect 0) 595 | (options (clearance outline) (anchor rect)) 596 | (primitives 597 | ) (tstamp 1b68578e-88ad-4d2b-a1a3-a86b171217f0)) 598 | (pad "" smd custom (at -10.5 -15.24 ${p.rot}) (size 0.25 1) (layers "B.Cu") 599 | (zone_connect 0) 600 | (options (clearance outline) (anchor rect)) 601 | (primitives 602 | ) (tstamp 8681de9d-ae0e-4211-b346-bbaf7e96b158)) 603 | (pad "" smd custom (at -10.5 -14.732 ${p.rot}) (size 0.1 0.1) (layers "F.Cu" "F.Mask") 604 | (clearance 0.1) (zone_connect 0) 605 | (options (clearance outline) (anchor rect)) 606 | (primitives 607 | (gr_poly 608 | (pts 609 | (xy 0.6 -0.4) 610 | (xy -0.6 -0.4) 611 | (xy -0.6 -0.2) 612 | (xy 0 0.4) 613 | (xy 0.6 -0.2) 614 | ) 615 | (width 0) (fill yes)) 616 | ) (tstamp 1e429044-d129-467e-b1d1-771ade179331)) 617 | (pad "" smd custom (at -10.5 -14.732 ${p.rot}) (size 0.1 0.1) (layers "B.Cu" "B.Mask") 618 | (clearance 0.1) (zone_connect 0) 619 | (options (clearance outline) (anchor rect)) 620 | (primitives 621 | (gr_poly 622 | (pts 623 | (xy 0.6 -0.4) 624 | (xy -0.6 -0.4) 625 | (xy -0.6 -0.2) 626 | (xy 0 0.4) 627 | (xy 0.6 -0.2) 628 | ) 629 | (width 0) (fill yes)) 630 | ) (tstamp 06a6be1e-7a70-4311-b626-7b6ae238db7b)) 631 | (pad "" smd custom (at -10.5 -3.048 ${p.rot + 180}) (size 0.1 0.1) (layers "F.Cu" "F.Mask") 632 | (clearance 0.1) (zone_connect 0) 633 | (options (clearance outline) (anchor rect)) 634 | (primitives 635 | (gr_poly 636 | (pts 637 | (xy 0.6 -0.4) 638 | (xy -0.6 -0.4) 639 | (xy -0.6 -0.2) 640 | (xy 0 0.4) 641 | (xy 0.6 -0.2) 642 | ) 643 | (width 0) (fill yes)) 644 | ) (tstamp b7a9728c-3d3e-4cdf-83fa-1704cd95fdd8)) 645 | (pad "" smd custom (at -10.5 -3.048 ${p.rot + 180}) (size 0.1 0.1) (layers "B.Cu" "B.Mask") 646 | (clearance 0.1) (zone_connect 0) 647 | (options (clearance outline) (anchor rect)) 648 | (primitives 649 | (gr_poly 650 | (pts 651 | (xy 0.6 -0.4) 652 | (xy -0.6 -0.4) 653 | (xy -0.6 -0.2) 654 | (xy 0 0.4) 655 | (xy 0.6 -0.2) 656 | ) 657 | (width 0) (fill yes)) 658 | ) (tstamp c5b3192b-0b4e-44ae-9658-7b589221c9b5)) 659 | (pad "" smd custom (at -10.5 -2.54 ${p.rot + 180}) (size 0.25 1) (layers "F.Cu") 660 | (zone_connect 0) 661 | (options (clearance outline) (anchor rect)) 662 | (primitives 663 | ) (tstamp f1b72e26-05db-4414-8d0f-62629af76192)) 664 | (pad "" smd custom (at -10.5 -2.54 ${p.rot + 180}) (size 0.25 1) (layers "B.Cu") 665 | (zone_connect 0) 666 | (options (clearance outline) (anchor rect)) 667 | (primitives 668 | ) (tstamp 30cece87-b96a-46bf-887b-24745dc8c6e0)) 669 | (pad "" thru_hole circle (at -10.5 -1.27 ${p.rot}) (size 1.6 1.6) (drill 1.1) (layers "*.Cu" "*.Mask") (tstamp 54a478aa-5689-4800-9797-a013fb3ba14c)) 670 | (pad "" thru_hole circle (at -7.96 -16.51 ${p.rot}) (size 1.6 1.6) (drill 1.1) (layers "*.Cu" "*.Mask") (tstamp 7c39c673-3d85-4de6-912f-e0e047fd5228)) 671 | (pad "" smd custom (at -7.96 -15.24 ${p.rot}) (size 0.25 1) (layers "F.Cu") 672 | (zone_connect 0) 673 | (options (clearance outline) (anchor rect)) 674 | (primitives 675 | ) (tstamp 9276b41f-91cb-40ad-a9b0-eb181718a30b)) 676 | (pad "" smd custom (at -7.96 -15.24 ${p.rot}) (size 0.25 1) (layers "B.Cu") 677 | (zone_connect 0) 678 | (options (clearance outline) (anchor rect)) 679 | (primitives 680 | ) (tstamp 4be4023f-0aab-468a-8359-3163e37e15a6)) 681 | (pad "" smd custom (at -7.96 -14.732 ${p.rot}) (size 0.1 0.1) (layers "F.Cu" "F.Mask") 682 | (clearance 0.1) (zone_connect 0) 683 | (options (clearance outline) (anchor rect)) 684 | (primitives 685 | (gr_poly 686 | (pts 687 | (xy 0.6 -0.4) 688 | (xy -0.6 -0.4) 689 | (xy -0.6 -0.2) 690 | (xy 0 0.4) 691 | (xy 0.6 -0.2) 692 | ) 693 | (width 0) (fill yes)) 694 | ) (tstamp 2c75ec50-b7ca-499b-b5b4-250fd32ebf8c)) 695 | (pad "" smd custom (at -7.96 -14.732 ${p.rot}) (size 0.1 0.1) (layers "B.Cu" "B.Mask") 696 | (clearance 0.1) (zone_connect 0) 697 | (options (clearance outline) (anchor rect)) 698 | (primitives 699 | (gr_poly 700 | (pts 701 | (xy 0.6 -0.4) 702 | (xy -0.6 -0.4) 703 | (xy -0.6 -0.2) 704 | (xy 0 0.4) 705 | (xy 0.6 -0.2) 706 | ) 707 | (width 0) (fill yes)) 708 | ) (tstamp cfe83115-17ca-4fca-9549-d4a7d1dcc06f)) 709 | (pad "" smd custom (at -7.96 -3.048 ${p.rot + 180}) (size 0.1 0.1) (layers "F.Cu" "F.Mask") 710 | (clearance 0.1) (zone_connect 0) 711 | (options (clearance outline) (anchor rect)) 712 | (primitives 713 | (gr_poly 714 | (pts 715 | (xy 0.6 -0.4) 716 | (xy -0.6 -0.4) 717 | (xy -0.6 -0.2) 718 | (xy 0 0.4) 719 | (xy 0.6 -0.2) 720 | ) 721 | (width 0) (fill yes)) 722 | ) (tstamp d777074c-c9dc-452d-9845-2f810b97ff29)) 723 | (pad "" smd custom (at -7.96 -3.048 ${p.rot + 180}) (size 0.1 0.1) (layers "B.Cu" "B.Mask") 724 | (clearance 0.1) (zone_connect 0) 725 | (options (clearance outline) (anchor rect)) 726 | (primitives 727 | (gr_poly 728 | (pts 729 | (xy 0.6 -0.4) 730 | (xy -0.6 -0.4) 731 | (xy -0.6 -0.2) 732 | (xy 0 0.4) 733 | (xy 0.6 -0.2) 734 | ) 735 | (width 0) (fill yes)) 736 | ) (tstamp c5b2e832-3b9a-412a-9caa-878d322198c2)) 737 | (pad "" smd custom (at -7.96 -2.54 ${p.rot + 180}) (size 0.25 1) (layers "F.Cu") 738 | (zone_connect 0) 739 | (options (clearance outline) (anchor rect)) 740 | (primitives 741 | ) (tstamp c44e5459-d85f-4fa5-be58-7e12055a6d87)) 742 | (pad "" smd custom (at -7.96 -2.54 ${p.rot + 180}) (size 0.25 1) (layers "B.Cu") 743 | (zone_connect 0) 744 | (options (clearance outline) (anchor rect)) 745 | (primitives 746 | ) (tstamp 7038946b-b34e-43ab-b823-551d3b37d94c)) 747 | (pad "" thru_hole circle (at -7.96 -1.27 ${p.rot}) (size 1.6 1.6) (drill 1.1) (layers "*.Cu" "*.Mask") (tstamp 169e50f3-32a7-4f06-b488-7882ae4a3657)) 748 | (pad "" thru_hole circle (at -5.42 -16.51 ${p.rot}) (size 1.6 1.6) (drill 1.1) (layers "*.Cu" "*.Mask") (tstamp 2e9d3dd5-147a-4c39-af68-ef863e422f7b)) 749 | (pad "" smd custom (at -5.42 -15.24 ${p.rot}) (size 0.25 1) (layers "F.Cu") 750 | (zone_connect 0) 751 | (options (clearance outline) (anchor rect)) 752 | (primitives 753 | ) (tstamp 74957dff-838b-42f5-be36-71894a42f7c6)) 754 | (pad "" smd custom (at -5.42 -15.24 ${p.rot}) (size 0.25 1) (layers "B.Cu") 755 | (zone_connect 0) 756 | (options (clearance outline) (anchor rect)) 757 | (primitives 758 | ) (tstamp 50a3a2e6-0883-4808-9ba6-808aded40a04)) 759 | (pad "" smd custom (at -5.42 -14.732 ${p.rot}) (size 0.1 0.1) (layers "F.Cu" "F.Mask") 760 | (clearance 0.1) (zone_connect 0) 761 | (options (clearance outline) (anchor rect)) 762 | (primitives 763 | (gr_poly 764 | (pts 765 | (xy 0.6 -0.4) 766 | (xy -0.6 -0.4) 767 | (xy -0.6 -0.2) 768 | (xy 0 0.4) 769 | (xy 0.6 -0.2) 770 | ) 771 | (width 0) (fill yes)) 772 | ) (tstamp 6108bc9f-ec0f-44a1-9a46-ae972bff01f8)) 773 | (pad "" smd custom (at -5.42 -14.732 ${p.rot}) (size 0.1 0.1) (layers "B.Cu" "B.Mask") 774 | (clearance 0.1) (zone_connect 0) 775 | (options (clearance outline) (anchor rect)) 776 | (primitives 777 | (gr_poly 778 | (pts 779 | (xy 0.6 -0.4) 780 | (xy -0.6 -0.4) 781 | (xy -0.6 -0.2) 782 | (xy 0 0.4) 783 | (xy 0.6 -0.2) 784 | ) 785 | (width 0) (fill yes)) 786 | ) (tstamp f5b3af8c-1ccb-4d9e-9524-e76fd07a90bc)) 787 | (pad "" smd custom (at -5.42 -3.048 ${p.rot + 180}) (size 0.1 0.1) (layers "F.Cu" "F.Mask") 788 | (clearance 0.1) (zone_connect 0) 789 | (options (clearance outline) (anchor rect)) 790 | (primitives 791 | (gr_poly 792 | (pts 793 | (xy 0.6 -0.4) 794 | (xy -0.6 -0.4) 795 | (xy -0.6 -0.2) 796 | (xy 0 0.4) 797 | (xy 0.6 -0.2) 798 | ) 799 | (width 0) (fill yes)) 800 | ) (tstamp 48a4b4a1-8266-409c-ba0d-961799a0bd09)) 801 | (pad "" smd custom (at -5.42 -3.048 ${p.rot + 180}) (size 0.1 0.1) (layers "B.Cu" "B.Mask") 802 | (clearance 0.1) (zone_connect 0) 803 | (options (clearance outline) (anchor rect)) 804 | (primitives 805 | (gr_poly 806 | (pts 807 | (xy 0.6 -0.4) 808 | (xy -0.6 -0.4) 809 | (xy -0.6 -0.2) 810 | (xy 0 0.4) 811 | (xy 0.6 -0.2) 812 | ) 813 | (width 0) (fill yes)) 814 | ) (tstamp c73cd1a7-811c-413c-8ed9-8eb53bda8bce)) 815 | (pad "" smd custom (at -5.42 -2.54 ${p.rot + 180}) (size 0.25 1) (layers "F.Cu") 816 | (zone_connect 0) 817 | (options (clearance outline) (anchor rect)) 818 | (primitives 819 | ) (tstamp 0dda6768-b9c9-44a6-aca8-caf687239c63)) 820 | (pad "" smd custom (at -5.42 -2.54 ${p.rot + 180}) (size 0.25 1) (layers "B.Cu") 821 | (zone_connect 0) 822 | (options (clearance outline) (anchor rect)) 823 | (primitives 824 | ) (tstamp 0610822a-35cf-4809-80d6-5d2bc134df2f)) 825 | (pad "" thru_hole circle (at -5.42 -1.27 ${p.rot}) (size 1.6 1.6) (drill 1.1) (layers "*.Cu" "*.Mask") (tstamp d9821f8d-b030-44d2-9b77-e8eabe48171f)) 826 | (pad "" thru_hole circle (at -2.88 -16.51 ${p.rot}) (size 1.6 1.6) (drill 1.1) (layers "*.Cu" "*.Mask") (tstamp ecfe2ac1-d831-4b5a-a659-c93e69b14eb8)) 827 | (pad "" smd custom (at -2.88 -15.24 ${p.rot}) (size 0.25 1) (layers "F.Cu") 828 | (zone_connect 0) 829 | (options (clearance outline) (anchor rect)) 830 | (primitives 831 | ) (tstamp 43081819-0142-4f37-8959-d96868ad1cd9)) 832 | (pad "" smd custom (at -2.88 -15.24 ${p.rot}) (size 0.25 1) (layers "B.Cu") 833 | (zone_connect 0) 834 | (options (clearance outline) (anchor rect)) 835 | (primitives 836 | ) (tstamp db4f100b-5bb7-4c46-a240-0a0eb0ff7afa)) 837 | (pad "" smd custom (at -2.88 -14.732 ${p.rot}) (size 0.1 0.1) (layers "F.Cu" "F.Mask") 838 | (clearance 0.1) (zone_connect 0) 839 | (options (clearance outline) (anchor rect)) 840 | (primitives 841 | (gr_poly 842 | (pts 843 | (xy 0.6 -0.4) 844 | (xy -0.6 -0.4) 845 | (xy -0.6 -0.2) 846 | (xy 0 0.4) 847 | (xy 0.6 -0.2) 848 | ) 849 | (width 0) (fill yes)) 850 | ) (tstamp affc104d-6c4f-415d-8948-97187753c718)) 851 | (pad "" smd custom (at -2.88 -14.732 ${p.rot}) (size 0.1 0.1) (layers "B.Cu" "B.Mask") 852 | (clearance 0.1) (zone_connect 0) 853 | (options (clearance outline) (anchor rect)) 854 | (primitives 855 | (gr_poly 856 | (pts 857 | (xy 0.6 -0.4) 858 | (xy -0.6 -0.4) 859 | (xy -0.6 -0.2) 860 | (xy 0 0.4) 861 | (xy 0.6 -0.2) 862 | ) 863 | (width 0) (fill yes)) 864 | ) (tstamp d0a30d6d-70c7-45e6-8829-c088d98c4ac7)) 865 | (pad "" smd custom (at -2.88 -3.048 ${p.rot + 180}) (size 0.1 0.1) (layers "F.Cu" "F.Mask") 866 | (clearance 0.1) (zone_connect 0) 867 | (options (clearance outline) (anchor rect)) 868 | (primitives 869 | (gr_poly 870 | (pts 871 | (xy 0.6 -0.4) 872 | (xy -0.6 -0.4) 873 | (xy -0.6 -0.2) 874 | (xy 0 0.4) 875 | (xy 0.6 -0.2) 876 | ) 877 | (width 0) (fill yes)) 878 | ) (tstamp 1c69f43c-ec2e-44aa-bbf6-f9432591ed77)) 879 | (pad "" smd custom (at -2.88 -3.048 ${p.rot + 180}) (size 0.1 0.1) (layers "B.Cu" "B.Mask") 880 | (clearance 0.1) (zone_connect 0) 881 | (options (clearance outline) (anchor rect)) 882 | (primitives 883 | (gr_poly 884 | (pts 885 | (xy 0.6 -0.4) 886 | (xy -0.6 -0.4) 887 | (xy -0.6 -0.2) 888 | (xy 0 0.4) 889 | (xy 0.6 -0.2) 890 | ) 891 | (width 0) (fill yes)) 892 | ) (tstamp be46f46b-4c10-4f0a-a1e9-cf76cf5e5515)) 893 | (pad "" smd custom (at -2.88 -2.54 ${p.rot + 180}) (size 0.25 1) (layers "F.Cu") 894 | (zone_connect 0) 895 | (options (clearance outline) (anchor rect)) 896 | (primitives 897 | ) (tstamp 77080f90-592b-49e7-bca7-ed9c6bb7359e)) 898 | (pad "" smd custom (at -2.88 -2.54 ${p.rot + 180}) (size 0.25 1) (layers "B.Cu") 899 | (zone_connect 0) 900 | (options (clearance outline) (anchor rect)) 901 | (primitives 902 | ) (tstamp 76d94b92-24e7-4b43-887e-2b2bd2c2b604)) 903 | (pad "" thru_hole circle (at -2.88 -1.27 ${p.rot}) (size 1.6 1.6) (drill 1.1) (layers "*.Cu" "*.Mask") (tstamp d5e16b15-a54b-4a2d-8668-0692fdc42334)) 904 | (pad "1" smd custom (at -18.12 -13.716 ${p.rot}) (size 1.2 0.5) (layers "F.Cu" "F.Mask") 905 | (clearance 0.1) (zone_connect 0) 906 | (options (clearance outline) (anchor rect)) 907 | (primitives 908 | (gr_poly 909 | (pts 910 | (xy 0.6 0) 911 | (xy -0.6 0) 912 | (xy -0.6 -1) 913 | (xy 0 -0.4) 914 | (xy 0.6 -1) 915 | ) 916 | (width 0) (fill yes)) 917 | ) (tstamp 5e1f030a-3b18-401e-8a68-14595a68b0c3) ${p.VCC5.str}) 918 | (pad "1" smd custom (at -18.12 -9.652 ${p.rot}) (size 0.25 0.25) (layers "F.Cu") 919 | (zone_connect 0) (thermal_bridge_angle 90) 920 | (options (clearance outline) (anchor circle)) 921 | (primitives 922 | (gr_line (start 0 0) (end 0.766 -0.766) (width 0.25)) 923 | (gr_line (start 0.766 -0.766) (end 0.766 -3.298) (width 0.25)) 924 | (gr_line (start 0.766 -3.298) (end 0 -4.064) (width 0.25)) 925 | ) (tstamp 2efc83f4-285f-47ce-adf6-e792a114f64b) ${p.VCC5.str}) 926 | (pad "1" smd custom (at -18.12 -9.652 ${p.rot}) (size 0.25 0.25) (layers "B.Cu") 927 | (zone_connect 0) (thermal_bridge_angle 90) 928 | (options (clearance outline) (anchor circle)) 929 | (primitives 930 | (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) 931 | (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) 932 | (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) 933 | ) (tstamp e640228f-f683-4383-a092-1dd93116f7da) ${p.VCC5.str}) 934 | (pad "1" thru_hole circle (at -18.12 -9.652 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers "*.Cu") (tstamp effd7922-1191-437a-9ad5-2241b3cbd401) ${p.VCC5.str}) 935 | (pad "1" smd custom (at -18.12 -4.064 ${p.rot + 180}) (size 1.2 0.5) (layers "B.Cu" "B.Mask") ${p.VCC5.str} 936 | (clearance 0.1) (zone_connect 0) 937 | (options (clearance outline) (anchor rect)) 938 | (primitives 939 | (gr_poly 940 | (pts 941 | (xy 0.6 0) 942 | (xy -0.6 0) 943 | (xy -0.6 -1) 944 | (xy 0 -0.4) 945 | (xy 0.6 -1) 946 | ) 947 | (width 0) (fill yes)) 948 | ) (tstamp 852d75f1-00f3-44fa-8fe4-0fba0899a2d4)) 949 | (pad "2" smd custom (at -15.58 -13.716 ${p.rot}) (size 1.2 0.5) (layers "F.Cu" "F.Mask") 950 | (clearance 0.1) (zone_connect 0) 951 | (options (clearance outline) (anchor rect)) 952 | (primitives 953 | (gr_poly 954 | (pts 955 | (xy 0.6 0) 956 | (xy -0.6 0) 957 | (xy -0.6 -1) 958 | (xy 0 -0.4) 959 | (xy 0.6 -1) 960 | ) 961 | (width 0) (fill yes)) 962 | ) (tstamp 0e1dafa7-5e42-4b14-a03e-183b7d3ebfa3) ${p.GND.str}) 963 | (pad "2" smd custom (at -15.58 -9.652 ${p.rot}) (size 0.25 0.25) (layers "F.Cu") 964 | (zone_connect 0) (thermal_bridge_angle 90) 965 | (options (clearance outline) (anchor circle)) 966 | (primitives 967 | (gr_line (start 0 0) (end 0.766 -0.766) (width 0.25)) 968 | (gr_line (start 0.766 -0.766) (end 0.766 -3.298) (width 0.25)) 969 | (gr_line (start 0.766 -3.298) (end 0 -4.064) (width 0.25)) 970 | ) (tstamp 24c15d5d-f560-49ac-9065-f3b39fc2dc44) ${p.GND.str}) 971 | (pad "2" smd custom (at -15.58 -9.652 ${p.rot}) (size 0.25 0.25) (layers "B.Cu") 972 | (zone_connect 0) (thermal_bridge_angle 90) 973 | (options (clearance outline) (anchor circle)) 974 | (primitives 975 | (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) 976 | (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) 977 | (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) 978 | ) (tstamp 27f6d5de-58fb-4540-b826-698a9cf3177d) ${p.GND.str}) 979 | (pad "2" thru_hole circle (at -15.58 -9.652 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers "*.Cu") (tstamp 86ddba8f-bdbc-4199-a5d3-72a1aff17748) ${p.GND.str}) 980 | (pad "2" smd custom (at -15.58 -4.064 ${p.rot + 180}) (size 1.2 0.5) (layers "B.Cu" "B.Mask") ${p.GND.str} 981 | (clearance 0.1) (zone_connect 0) 982 | (options (clearance outline) (anchor rect)) 983 | (primitives 984 | (gr_poly 985 | (pts 986 | (xy 0.6 0) 987 | (xy -0.6 0) 988 | (xy -0.6 -1) 989 | (xy 0 -0.4) 990 | (xy 0.6 -1) 991 | ) 992 | (width 0) (fill yes)) 993 | ) (tstamp 528489b6-9ede-4550-93e2-8452e76698a3)) 994 | (pad "3" smd custom (at -13.04 -13.716 ${p.rot}) (size 1.2 0.5) (layers "F.Cu" "F.Mask") 995 | (clearance 0.1) (zone_connect 0) 996 | (options (clearance outline) (anchor rect)) 997 | (primitives 998 | (gr_poly 999 | (pts 1000 | (xy 0.6 0) 1001 | (xy -0.6 0) 1002 | (xy -0.6 -1) 1003 | (xy 0 -0.4) 1004 | (xy 0.6 -1) 1005 | ) 1006 | (width 0) (fill yes)) 1007 | ) (tstamp 6a09b99f-ee36-4d4c-aaa4-823605c643c7) ${p.VCC3.str}) 1008 | (pad "3" smd custom (at -13.04 -9.652 ${p.rot}) (size 0.25 0.25) (layers "F.Cu") 1009 | (zone_connect 0) (thermal_bridge_angle 90) 1010 | (options (clearance outline) (anchor circle)) 1011 | (primitives 1012 | (gr_line (start 0 0) (end 0.766 -0.766) (width 0.25)) 1013 | (gr_line (start 0.766 -0.766) (end 0.766 -3.298) (width 0.25)) 1014 | (gr_line (start 0.766 -3.298) (end 0 -4.064) (width 0.25)) 1015 | ) (tstamp 336fe033-9d06-4e6e-b30d-76e2b29c6977) ${p.VCC3.str}) 1016 | (pad "3" smd custom (at -13.04 -9.652 ${p.rot}) (size 0.25 0.25) (layers "B.Cu") 1017 | (zone_connect 0) (thermal_bridge_angle 90) 1018 | (options (clearance outline) (anchor circle)) 1019 | (primitives 1020 | (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) 1021 | (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) 1022 | (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) 1023 | ) (tstamp d97f5ce2-264e-4723-90d9-3b1770a77486) ${p.VCC3.str}) 1024 | (pad "3" thru_hole circle (at -13.04 -9.652 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers "*.Cu") (tstamp 1471df66-5ff7-4a36-a993-ba6c2063ea4c) ${p.VCC3.str}) 1025 | (pad "3" smd custom (at -13.04 -4.064 ${p.rot + 180}) (size 1.2 0.5) (layers "B.Cu" "B.Mask") ${p.VCC3.str} 1026 | (clearance 0.1) (zone_connect 0) 1027 | (options (clearance outline) (anchor rect)) 1028 | (primitives 1029 | (gr_poly 1030 | (pts 1031 | (xy 0.6 0) 1032 | (xy -0.6 0) 1033 | (xy -0.6 -1) 1034 | (xy 0 -0.4) 1035 | (xy 0.6 -1) 1036 | ) 1037 | (width 0) (fill yes)) 1038 | ) (tstamp d092bc49-0cbc-4a1c-a6b0-f594e1053f6e)) 1039 | (pad "4" smd custom (at -10.5 -13.716 ${p.rot}) (size 1.2 0.5) (layers "F.Cu" "F.Mask") 1040 | (clearance 0.1) (zone_connect 0) 1041 | (options (clearance outline) (anchor rect)) 1042 | (primitives 1043 | (gr_poly 1044 | (pts 1045 | (xy 0.6 0) 1046 | (xy -0.6 0) 1047 | (xy -0.6 -1) 1048 | (xy 0 -0.4) 1049 | (xy 0.6 -1) 1050 | ) 1051 | (width 0) (fill yes)) 1052 | ) (tstamp d3cbba1d-0fcb-4266-91c3-6b4e461465ef) ${p.P10.str}) 1053 | (pad "4" smd custom (at -10.5 -9.652 ${p.rot}) (size 0.25 0.25) (layers "F.Cu") 1054 | (zone_connect 0) (thermal_bridge_angle 90) 1055 | (options (clearance outline) (anchor circle)) 1056 | (primitives 1057 | (gr_line (start 0 0) (end 0.766 -0.766) (width 0.25)) 1058 | (gr_line (start 0.766 -0.766) (end 0.766 -3.298) (width 0.25)) 1059 | (gr_line (start 0.766 -3.298) (end 0 -4.064) (width 0.25)) 1060 | ) (tstamp acbe51a9-9f68-4090-a06b-db4fc83d1d42) ${p.P10.str}) 1061 | (pad "4" smd custom (at -10.5 -9.652 ${p.rot}) (size 0.25 0.25) (layers "B.Cu") 1062 | (zone_connect 0) (thermal_bridge_angle 90) 1063 | (options (clearance outline) (anchor circle)) 1064 | (primitives 1065 | (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) 1066 | (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) 1067 | (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) 1068 | ) (tstamp 42a5335a-7f70-4a93-8916-8bdc7efb086b) ${p.P10.str}) 1069 | (pad "4" thru_hole circle (at -10.5 -9.652 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers "*.Cu") (tstamp 0e229b9b-4845-4dee-9cfd-76abcb7712b0) ${p.P10.str}) 1070 | (pad "4" smd custom (at -10.5 -4.064 ${p.rot + 180}) (size 1.2 0.5) (layers "B.Cu" "B.Mask") ${p.P10.str} 1071 | (clearance 0.1) (zone_connect 0) 1072 | (options (clearance outline) (anchor rect)) 1073 | (primitives 1074 | (gr_poly 1075 | (pts 1076 | (xy 0.6 0) 1077 | (xy -0.6 0) 1078 | (xy -0.6 -1) 1079 | (xy 0 -0.4) 1080 | (xy 0.6 -1) 1081 | ) 1082 | (width 0) (fill yes)) 1083 | ) (tstamp 3a99d5de-4e5d-47de-a98f-105bfa33a3e2)) 1084 | (pad "5" smd custom (at -7.96 -13.716 ${p.rot}) (size 1.2 0.5) (layers "F.Cu" "F.Mask") 1085 | (clearance 0.1) (zone_connect 0) 1086 | (options (clearance outline) (anchor rect)) 1087 | (primitives 1088 | (gr_poly 1089 | (pts 1090 | (xy 0.6 0) 1091 | (xy -0.6 0) 1092 | (xy -0.6 -1) 1093 | (xy 0 -0.4) 1094 | (xy 0.6 -1) 1095 | ) 1096 | (width 0) (fill yes)) 1097 | ) (tstamp 35e3ace4-5fe0-43ab-9eb9-b2e8a836f6bc) ${p.P9.str}) 1098 | (pad "5" smd custom (at -7.96 -9.652 ${p.rot}) (size 0.25 0.25) (layers "F.Cu") 1099 | (zone_connect 0) (thermal_bridge_angle 90) 1100 | (options (clearance outline) (anchor circle)) 1101 | (primitives 1102 | (gr_line (start 0 0) (end 0.766 -0.766) (width 0.25)) 1103 | (gr_line (start 0.766 -0.766) (end 0.766 -3.298) (width 0.25)) 1104 | (gr_line (start 0.766 -3.298) (end 0 -4.064) (width 0.25)) 1105 | ) (tstamp 114d8172-8a19-4db6-9346-24f675a68693) ${p.P9.str}) 1106 | (pad "5" smd custom (at -7.96 -9.652 ${p.rot}) (size 0.25 0.25) (layers "B.Cu") 1107 | (zone_connect 0) (thermal_bridge_angle 90) 1108 | (options (clearance outline) (anchor circle)) 1109 | (primitives 1110 | (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) 1111 | (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) 1112 | (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) 1113 | ) (tstamp eecc3a37-e8c0-4c56-9d2f-28d69fdbd8b9) ${p.P9.str}) 1114 | (pad "5" thru_hole circle (at -7.96 -9.652 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers "*.Cu") (tstamp 346eaf32-1de4-46f2-bfac-9a74a681dd59) ${p.P9.str}) 1115 | (pad "5" smd custom (at -7.96 -4.064 ${p.rot + 180}) (size 1.2 0.5) (layers "B.Cu" "B.Mask") ${p.P9.str} 1116 | (clearance 0.1) (zone_connect 0) 1117 | (options (clearance outline) (anchor rect)) 1118 | (primitives 1119 | (gr_poly 1120 | (pts 1121 | (xy 0.6 0) 1122 | (xy -0.6 0) 1123 | (xy -0.6 -1) 1124 | (xy 0 -0.4) 1125 | (xy 0.6 -1) 1126 | ) 1127 | (width 0) (fill yes)) 1128 | ) (tstamp 9d455f3f-b71e-45be-9b33-33404a59a0ca)) 1129 | (pad "6" smd custom (at -5.42 -13.716 ${p.rot}) (size 1.2 0.5) (layers "F.Cu" "F.Mask") 1130 | (clearance 0.1) (zone_connect 0) 1131 | (options (clearance outline) (anchor rect)) 1132 | (primitives 1133 | (gr_poly 1134 | (pts 1135 | (xy 0.6 0) 1136 | (xy -0.6 0) 1137 | (xy -0.6 -1) 1138 | (xy 0 -0.4) 1139 | (xy 0.6 -1) 1140 | ) 1141 | (width 0) (fill yes)) 1142 | ) (tstamp 17456729-089c-4d80-927c-6fa6d7f8305e) ${p.P8.str}) 1143 | (pad "6" smd custom (at -5.42 -9.652 ${p.rot}) (size 0.25 0.25) (layers "F.Cu") 1144 | (zone_connect 0) (thermal_bridge_angle 90) 1145 | (options (clearance outline) (anchor circle)) 1146 | (primitives 1147 | (gr_line (start 0 0) (end 0.766 -0.766) (width 0.25)) 1148 | (gr_line (start 0.766 -0.766) (end 0.766 -3.298) (width 0.25)) 1149 | (gr_line (start 0.766 -3.298) (end 0 -4.064) (width 0.25)) 1150 | ) (tstamp 73039b20-b2bb-48af-b3e8-15c9caaab0ba) ${p.P8.str}) 1151 | (pad "6" smd custom (at -5.42 -9.652 ${p.rot}) (size 0.25 0.25) (layers "B.Cu") 1152 | (zone_connect 0) (thermal_bridge_angle 90) 1153 | (options (clearance outline) (anchor circle)) 1154 | (primitives 1155 | (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) 1156 | (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) 1157 | (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) 1158 | ) (tstamp 42e64d66-b6a9-42e3-88ab-bc3a38e58409) ${p.P8.str}) 1159 | (pad "6" thru_hole circle (at -5.42 -9.652 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers "*.Cu") (tstamp 05fb03b7-9dbf-4f4f-b766-fd0b534ed10d) ${p.P8.str}) 1160 | (pad "6" smd custom (at -5.42 -4.064 ${p.rot + 180}) (size 1.2 0.5) (layers "B.Cu" "B.Mask") ${p.P8.str} 1161 | (clearance 0.1) (zone_connect 0) 1162 | (options (clearance outline) (anchor rect)) 1163 | (primitives 1164 | (gr_poly 1165 | (pts 1166 | (xy 0.6 0) 1167 | (xy -0.6 0) 1168 | (xy -0.6 -1) 1169 | (xy 0 -0.4) 1170 | (xy 0.6 -1) 1171 | ) 1172 | (width 0) (fill yes)) 1173 | ) (tstamp 2ed1d378-8d58-4fed-82b7-067e3cba870e)) 1174 | (pad "7" smd custom (at -2.88 -13.716 ${p.rot}) (size 1.2 0.5) (layers "F.Cu" "F.Mask") 1175 | (clearance 0.1) (zone_connect 0) 1176 | (options (clearance outline) (anchor rect)) 1177 | (primitives 1178 | (gr_poly 1179 | (pts 1180 | (xy 0.6 0) 1181 | (xy -0.6 0) 1182 | (xy -0.6 -1) 1183 | (xy 0 -0.4) 1184 | (xy 0.6 -1) 1185 | ) 1186 | (width 0) (fill yes)) 1187 | ) (tstamp 694825bf-448a-476a-8960-814e9b70c9f3) ${p.P7.str}) 1188 | (pad "7" smd custom (at -2.88 -9.652 ${p.rot}) (size 0.25 0.25) (layers "F.Cu") 1189 | (zone_connect 0) (thermal_bridge_angle 90) 1190 | (options (clearance outline) (anchor circle)) 1191 | (primitives 1192 | (gr_line (start 0 0) (end 0.766 -0.766) (width 0.25)) 1193 | (gr_line (start 0.766 -0.766) (end 0.766 -3.298) (width 0.25)) 1194 | (gr_line (start 0.766 -3.298) (end 0 -4.064) (width 0.25)) 1195 | ) (tstamp 172160fa-a95e-47c4-a20e-3457cded091c) ${p.P7.str}) 1196 | (pad "7" smd custom (at -2.88 -9.652 ${p.rot}) (size 0.25 0.25) (layers "B.Cu") 1197 | (zone_connect 0) (thermal_bridge_angle 90) 1198 | (options (clearance outline) (anchor circle)) 1199 | (primitives 1200 | (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) 1201 | (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) 1202 | (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) 1203 | ) (tstamp 777d1c82-5f2d-48be-8cc2-b72602479035) ${p.P7.str}) 1204 | (pad "7" thru_hole circle (at -2.88 -9.652 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers "*.Cu") (tstamp c69be33f-8776-4bdd-8608-791fbaa6b84a) ${p.P7.str}) 1205 | (pad "7" smd custom (at -2.88 -4.064 ${p.rot + 180}) (size 1.2 0.5) (layers "B.Cu" "B.Mask") ${p.P7.str} 1206 | (clearance 0.1) (zone_connect 0) 1207 | (options (clearance outline) (anchor rect)) 1208 | (primitives 1209 | (gr_poly 1210 | (pts 1211 | (xy 0.6 0) 1212 | (xy -0.6 0) 1213 | (xy -0.6 -1) 1214 | (xy 0 -0.4) 1215 | (xy 0.6 -1) 1216 | ) 1217 | (width 0) (fill yes)) 1218 | ) (tstamp 64511f73-762f-4bed-86af-5404473e9e29)) 1219 | (pad "18" smd custom (at -2.88 -13.716 ${p.rot}) (size 1.2 0.5) (layers "B.Cu" "B.Mask") 1220 | (clearance 0.1) (zone_connect 0) 1221 | (options (clearance outline) (anchor rect)) 1222 | (primitives 1223 | (gr_poly 1224 | (pts 1225 | (xy 0.6 0) 1226 | (xy -0.6 0) 1227 | (xy -0.6 -1) 1228 | (xy 0 -0.4) 1229 | (xy 0.6 -1) 1230 | ) 1231 | (width 0) (fill yes)) 1232 | ) (tstamp 0fd425fa-8963-4f21-9a1f-0bf3446bf215) ${p.P6.str}) 1233 | (pad "18" smd custom (at -2.88 -8.128 ${p.rot + 180}) (size 0.25 0.25) (layers "F.Cu") 1234 | (zone_connect 0) (thermal_bridge_angle 90) 1235 | (options (clearance outline) (anchor circle)) 1236 | (primitives 1237 | (gr_line (start 0 0) (end 0.762 -0.762) (width 0.25)) 1238 | (gr_line (start 0.762 -0.762) (end 0.762 -3.302) (width 0.25)) 1239 | (gr_line (start 0.762 -3.302) (end 0 -4.064) (width 0.25)) 1240 | ) (tstamp 2655209b-86bc-4b8b-b5d4-cba2d9bfe9a4) ${p.P6.str}) 1241 | (pad "18" smd custom (at -2.88 -8.128 ${p.rot + 180}) (size 0.25 0.25) (layers "B.Cu") 1242 | (zone_connect 0) (thermal_bridge_angle 90) 1243 | (options (clearance outline) (anchor circle)) 1244 | (primitives 1245 | (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) 1246 | (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) 1247 | (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) 1248 | ) (tstamp fd3bf8d1-eb00-451b-89d0-56484f5c866c) ${p.P6.str}) 1249 | (pad "18" thru_hole circle (at -2.88 -8.128 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers "*.Cu") (tstamp a17c56a7-5e49-4b45-84b3-1bf64f7c449e) ${p.P6.str}) 1250 | (pad "18" smd custom (at -2.88 -4.064 ${p.rot + 180}) (size 1.2 0.5) (layers "F.Cu" "F.Mask") ${p.P6.str} 1251 | (clearance 0.1) (zone_connect 0) 1252 | (options (clearance outline) (anchor rect)) 1253 | (primitives 1254 | (gr_poly 1255 | (pts 1256 | (xy 0.6 0) 1257 | (xy -0.6 0) 1258 | (xy -0.6 -1) 1259 | (xy 0 -0.4) 1260 | (xy 0.6 -1) 1261 | ) 1262 | (width 0) (fill yes)) 1263 | ) (tstamp f6134ff8-bc85-40a9-9aa1-599b0b692107)) 1264 | (pad "19" smd custom (at -5.42 -13.716 ${p.rot}) (size 1.2 0.5) (layers "B.Cu" "B.Mask") 1265 | (clearance 0.1) (zone_connect 0) 1266 | (options (clearance outline) (anchor rect)) 1267 | (primitives 1268 | (gr_poly 1269 | (pts 1270 | (xy 0.6 0) 1271 | (xy -0.6 0) 1272 | (xy -0.6 -1) 1273 | (xy 0 -0.4) 1274 | (xy 0.6 -1) 1275 | ) 1276 | (width 0) (fill yes)) 1277 | ) (tstamp d9f2a549-2e01-44d2-a846-d7252fa4da39) ${p.P5.str}) 1278 | (pad "19" smd custom (at -5.42 -8.128 ${p.rot + 180}) (size 0.25 0.25) (layers "F.Cu") 1279 | (zone_connect 0) (thermal_bridge_angle 90) 1280 | (options (clearance outline) (anchor circle)) 1281 | (primitives 1282 | (gr_line (start 0 0) (end 0.762 -0.762) (width 0.25)) 1283 | (gr_line (start 0.762 -0.762) (end 0.762 -3.302) (width 0.25)) 1284 | (gr_line (start 0.762 -3.302) (end 0 -4.064) (width 0.25)) 1285 | ) (tstamp ba4401d7-3645-439b-a08e-b63e7f29811c) ${p.P5.str}) 1286 | (pad "19" smd custom (at -5.42 -8.128 ${p.rot + 180}) (size 0.25 0.25) (layers "B.Cu") 1287 | (zone_connect 0) (thermal_bridge_angle 90) 1288 | (options (clearance outline) (anchor circle)) 1289 | (primitives 1290 | (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) 1291 | (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) 1292 | (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) 1293 | ) (tstamp 0008dbfc-4a62-4e72-99a2-adf28713b46d) ${p.P5.str}) 1294 | (pad "19" thru_hole circle (at -5.42 -8.128 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers "*.Cu") (tstamp 2023ccd8-3864-4668-85f1-71a3b2de48fc) ${p.P5.str}) 1295 | (pad "19" smd custom (at -5.42 -4.064 ${p.rot + 180}) (size 1.2 0.5) (layers "F.Cu" "F.Mask") ${p.P5.str} 1296 | (clearance 0.1) (zone_connect 0) 1297 | (options (clearance outline) (anchor rect)) 1298 | (primitives 1299 | (gr_poly 1300 | (pts 1301 | (xy 0.6 0) 1302 | (xy -0.6 0) 1303 | (xy -0.6 -1) 1304 | (xy 0 -0.4) 1305 | (xy 0.6 -1) 1306 | ) 1307 | (width 0) (fill yes)) 1308 | ) (tstamp 1a5e78db-f4b2-47e3-bb29-b7394f413e9e)) 1309 | (pad "20" smd custom (at -7.96 -13.716 ${p.rot}) (size 1.2 0.5) (layers "B.Cu" "B.Mask") 1310 | (clearance 0.1) (zone_connect 0) 1311 | (options (clearance outline) (anchor rect)) 1312 | (primitives 1313 | (gr_poly 1314 | (pts 1315 | (xy 0.6 0) 1316 | (xy -0.6 0) 1317 | (xy -0.6 -1) 1318 | (xy 0 -0.4) 1319 | (xy 0.6 -1) 1320 | ) 1321 | (width 0) (fill yes)) 1322 | ) (tstamp 1f983efb-f8d1-480e-b284-ea3ad7fc1b50) ${p.P4.str}) 1323 | (pad "20" smd custom (at -7.96 -8.128 ${p.rot + 180}) (size 0.25 0.25) (layers "F.Cu") 1324 | (zone_connect 0) (thermal_bridge_angle 90) 1325 | (options (clearance outline) (anchor circle)) 1326 | (primitives 1327 | (gr_line (start 0 0) (end 0.762 -0.762) (width 0.25)) 1328 | (gr_line (start 0.762 -0.762) (end 0.762 -3.302) (width 0.25)) 1329 | (gr_line (start 0.762 -3.302) (end 0 -4.064) (width 0.25)) 1330 | ) (tstamp 0dafc189-b4f8-490a-ab75-2403420ae1f2) ${p.P4.str}) 1331 | (pad "20" smd custom (at -7.96 -8.128 ${p.rot + 180}) (size 0.25 0.25) (layers "B.Cu") 1332 | (zone_connect 0) (thermal_bridge_angle 90) 1333 | (options (clearance outline) (anchor circle)) 1334 | (primitives 1335 | (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) 1336 | (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) 1337 | (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) 1338 | ) (tstamp 2580a042-d109-4f47-ac5f-474f8d70251d) ${p.P4.str}) 1339 | (pad "20" thru_hole circle (at -7.96 -8.128 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers "*.Cu") (tstamp 5ff76348-2d4f-4ce5-ac71-86b629c3b535) ${p.P4.str}) 1340 | (pad "20" smd custom (at -7.96 -4.064 ${p.rot + 180}) (size 1.2 0.5) (layers "F.Cu" "F.Mask") ${p.P4.str} 1341 | (clearance 0.1) (zone_connect 0) 1342 | (options (clearance outline) (anchor rect)) 1343 | (primitives 1344 | (gr_poly 1345 | (pts 1346 | (xy 0.6 0) 1347 | (xy -0.6 0) 1348 | (xy -0.6 -1) 1349 | (xy 0 -0.4) 1350 | (xy 0.6 -1) 1351 | ) 1352 | (width 0) (fill yes)) 1353 | ) (tstamp 9a337309-059a-4357-8f75-9e90cf1d5625)) 1354 | (pad "21" smd custom (at -10.5 -13.716 ${p.rot}) (size 1.2 0.5) (layers "B.Cu" "B.Mask") 1355 | (clearance 0.1) (zone_connect 0) 1356 | (options (clearance outline) (anchor rect)) 1357 | (primitives 1358 | (gr_poly 1359 | (pts 1360 | (xy 0.6 0) 1361 | (xy -0.6 0) 1362 | (xy -0.6 -1) 1363 | (xy 0 -0.4) 1364 | (xy 0.6 -1) 1365 | ) 1366 | (width 0) (fill yes)) 1367 | ) (tstamp 4678309b-54e2-4635-b92c-93153ae1a28c) ${p.P3.str}) 1368 | (pad "21" smd custom (at -10.5 -8.128 ${p.rot + 180}) (size 0.25 0.25) (layers "F.Cu") 1369 | (zone_connect 0) (thermal_bridge_angle 90) 1370 | (options (clearance outline) (anchor circle)) 1371 | (primitives 1372 | (gr_line (start 0 0) (end 0.762 -0.762) (width 0.25)) 1373 | (gr_line (start 0.762 -0.762) (end 0.762 -3.302) (width 0.25)) 1374 | (gr_line (start 0.762 -3.302) (end 0 -4.064) (width 0.25)) 1375 | ) (tstamp 639cc50c-1820-46ba-9def-9a4688f631ef) ${p.P3.str}) 1376 | (pad "21" smd custom (at -10.5 -8.128 ${p.rot + 180}) (size 0.25 0.25) (layers "B.Cu") 1377 | (zone_connect 0) (thermal_bridge_angle 90) 1378 | (options (clearance outline) (anchor circle)) 1379 | (primitives 1380 | (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) 1381 | (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) 1382 | (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) 1383 | ) (tstamp c9fcee45-a47b-41d7-ae01-a78c33ac04bf) ${p.P3.str}) 1384 | (pad "21" thru_hole circle (at -10.5 -8.128 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers "*.Cu") (tstamp 1482796b-e3f4-4413-a0b5-6d4d3eb3999f) ${p.P3.str}) 1385 | (pad "21" smd custom (at -10.5 -4.064 ${p.rot + 180}) (size 1.2 0.5) (layers "F.Cu" "F.Mask") ${p.P3.str} 1386 | (clearance 0.1) (zone_connect 0) 1387 | (options (clearance outline) (anchor rect)) 1388 | (primitives 1389 | (gr_poly 1390 | (pts 1391 | (xy 0.6 0) 1392 | (xy -0.6 0) 1393 | (xy -0.6 -1) 1394 | (xy 0 -0.4) 1395 | (xy 0.6 -1) 1396 | ) 1397 | (width 0) (fill yes)) 1398 | ) (tstamp fd75db1a-78d3-4da0-acf9-4c4228c48f39)) 1399 | (pad "22" smd custom (at -13.04 -13.716 ${p.rot}) (size 1.2 0.5) (layers "B.Cu" "B.Mask") 1400 | (clearance 0.1) (zone_connect 0) 1401 | (options (clearance outline) (anchor rect)) 1402 | (primitives 1403 | (gr_poly 1404 | (pts 1405 | (xy 0.6 0) 1406 | (xy -0.6 0) 1407 | (xy -0.6 -1) 1408 | (xy 0 -0.4) 1409 | (xy 0.6 -1) 1410 | ) 1411 | (width 0) (fill yes)) 1412 | ) (tstamp 2bc4bdac-df6f-4cdb-9f98-f7368392c1d9) ${p.P2.str}) 1413 | (pad "22" smd custom (at -13.04 -8.128 ${p.rot + 180}) (size 0.25 0.25) (layers "F.Cu") 1414 | (zone_connect 0) (thermal_bridge_angle 90) 1415 | (options (clearance outline) (anchor circle)) 1416 | (primitives 1417 | (gr_line (start 0 0) (end 0.762 -0.762) (width 0.25)) 1418 | (gr_line (start 0.762 -0.762) (end 0.762 -3.302) (width 0.25)) 1419 | (gr_line (start 0.762 -3.302) (end 0 -4.064) (width 0.25)) 1420 | ) (tstamp c278ab92-5edb-4226-ba7f-47f342e3592d) ${p.P2.str}) 1421 | (pad "22" smd custom (at -13.04 -8.128 ${p.rot + 180}) (size 0.25 0.25) (layers "B.Cu") 1422 | (zone_connect 0) (thermal_bridge_angle 90) 1423 | (options (clearance outline) (anchor circle)) 1424 | (primitives 1425 | (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) 1426 | (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) 1427 | (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) 1428 | ) (tstamp 3fcf8b8b-b0e5-4846-9520-68386634abde) ${p.P2.str}) 1429 | (pad "22" thru_hole circle (at -13.04 -8.128 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers "*.Cu") (tstamp 6658e748-0025-498d-887d-d3d29c38d08e) ${p.P2.str}) 1430 | (pad "22" smd custom (at -13.04 -4.064 ${p.rot + 180}) (size 1.2 0.5) (layers "F.Cu" "F.Mask") ${p.P2.str} 1431 | (clearance 0.1) (zone_connect 0) 1432 | (options (clearance outline) (anchor rect)) 1433 | (primitives 1434 | (gr_poly 1435 | (pts 1436 | (xy 0.6 0) 1437 | (xy -0.6 0) 1438 | (xy -0.6 -1) 1439 | (xy 0 -0.4) 1440 | (xy 0.6 -1) 1441 | ) 1442 | (width 0) (fill yes)) 1443 | ) (tstamp 51b5395a-ad47-4d32-a819-72044061aaf5)) 1444 | (pad "23" smd custom (at -15.58 -13.716 ${p.rot}) (size 1.2 0.5) (layers "B.Cu" "B.Mask") 1445 | (clearance 0.1) (zone_connect 0) 1446 | (options (clearance outline) (anchor rect)) 1447 | (primitives 1448 | (gr_poly 1449 | (pts 1450 | (xy 0.6 0) 1451 | (xy -0.6 0) 1452 | (xy -0.6 -1) 1453 | (xy 0 -0.4) 1454 | (xy 0.6 -1) 1455 | ) 1456 | (width 0) (fill yes)) 1457 | ) (tstamp decfd3df-9ad9-4e18-be1f-625cbae81ddd) ${p.P1.str}) 1458 | (pad "23" smd custom (at -15.58 -8.128 ${p.rot + 180}) (size 0.25 0.25) (layers "F.Cu") 1459 | (zone_connect 0) (thermal_bridge_angle 90) 1460 | (options (clearance outline) (anchor circle)) 1461 | (primitives 1462 | (gr_line (start 0 0) (end 0.762 -0.762) (width 0.25)) 1463 | (gr_line (start 0.762 -0.762) (end 0.762 -3.302) (width 0.25)) 1464 | (gr_line (start 0.762 -3.302) (end 0 -4.064) (width 0.25)) 1465 | ) (tstamp 0626e9e9-9179-44ef-a771-f9b4460b2a13) ${p.P1.str}) 1466 | (pad "23" smd custom (at -15.58 -8.128 ${p.rot + 180}) (size 0.25 0.25) (layers "B.Cu") 1467 | (zone_connect 0) (thermal_bridge_angle 90) 1468 | (options (clearance outline) (anchor circle)) 1469 | (primitives 1470 | (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) 1471 | (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) 1472 | (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) 1473 | ) (tstamp c9d1d6ce-6cb2-4403-aea7-0ec475ee08bb) ${p.P1.str}) 1474 | (pad "23" thru_hole circle (at -15.58 -8.128 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers "*.Cu") (tstamp e0313b51-4ab2-4492-a738-eaaab92810a8) ${p.P1.str}) 1475 | (pad "23" smd custom (at -15.58 -4.064 ${p.rot + 180}) (size 1.2 0.5) (layers "F.Cu" "F.Mask") ${p.P1.str} 1476 | (clearance 0.1) (zone_connect 0) 1477 | (options (clearance outline) (anchor rect)) 1478 | (primitives 1479 | (gr_poly 1480 | (pts 1481 | (xy 0.6 0) 1482 | (xy -0.6 0) 1483 | (xy -0.6 -1) 1484 | (xy 0 -0.4) 1485 | (xy 0.6 -1) 1486 | ) 1487 | (width 0) (fill yes)) 1488 | ) (tstamp b221581a-dd21-470c-a940-ebf86b934d4b)) 1489 | (pad "24" smd custom (at -18.12 -13.716 ${p.rot}) (size 1.2 0.5) (layers "B.Cu" "B.Mask") 1490 | (clearance 0.1) (zone_connect 0) 1491 | (options (clearance outline) (anchor rect)) 1492 | (primitives 1493 | (gr_poly 1494 | (pts 1495 | (xy 0.6 0) 1496 | (xy -0.6 0) 1497 | (xy -0.6 -1) 1498 | (xy 0 -0.4) 1499 | (xy 0.6 -1) 1500 | ) 1501 | (width 0) (fill yes)) 1502 | ) (tstamp 4b3add99-03c0-44be-bd91-1cd4500328ed) ${p.P0.str}) 1503 | (pad "24" smd custom (at -18.12 -8.128 ${p.rot + 180}) (size 0.25 0.25) (layers "F.Cu") 1504 | (zone_connect 0) (thermal_bridge_angle 90) 1505 | (options (clearance outline) (anchor circle)) 1506 | (primitives 1507 | (gr_line (start 0 0) (end 0.762 -0.762) (width 0.25)) 1508 | (gr_line (start 0.762 -0.762) (end 0.762 -3.302) (width 0.25)) 1509 | (gr_line (start 0.762 -3.302) (end 0 -4.064) (width 0.25)) 1510 | ) (tstamp d3a0f701-c1ab-480f-90eb-18819ae7e9d1) ${p.P0.str}) 1511 | (pad "24" smd custom (at -18.12 -8.128 ${p.rot + 180}) (size 0.25 0.25) (layers "B.Cu") 1512 | (zone_connect 0) (thermal_bridge_angle 90) 1513 | (options (clearance outline) (anchor circle)) 1514 | (primitives 1515 | (gr_line (start 0 0) (end -0.766 0.766) (width 0.25)) 1516 | (gr_line (start -0.766 0.766) (end -0.766 4.822) (width 0.25)) 1517 | (gr_line (start -0.766 4.822) (end 0 5.588) (width 0.25)) 1518 | ) (tstamp e6130121-e0ce-48a0-b20a-e279bf7a79f9) ${p.P0.str}) 1519 | (pad "24" thru_hole circle (at -18.12 -8.128 ${p.rot + 180}) (size 0.8 0.8) (drill 0.4) (layers "*.Cu") (tstamp 3b8faa6c-b5e4-438c-a03d-5f17ad67b089) ${p.P0.str}) 1520 | (pad "24" smd custom (at -18.12 -4.064 ${p.rot + 180}) (size 1.2 0.5) (layers "F.Cu" "F.Mask") ${p.P0.str} 1521 | (clearance 0.1) (zone_connect 0) 1522 | (options (clearance outline) (anchor rect)) 1523 | (primitives 1524 | (gr_poly 1525 | (pts 1526 | (xy 0.6 0) 1527 | (xy -0.6 0) 1528 | (xy -0.6 -1) 1529 | (xy 0 -0.4) 1530 | (xy 0.6 -1) 1531 | ) 1532 | (width 0) (fill yes)) 1533 | ) (tstamp 4d7a6515-7c8e-411c-9e6d-91a9c1583fa8)) 1534 | ) 1535 | `; 1536 | } 1537 | } 1538 | 1539 | -------------------------------------------------------------------------------- /footprints/logo.js: -------------------------------------------------------------------------------- 1 | /* 2 | * The triboard logo with text, using the Fantasque Sans Mono font. 3 | * (The text was converted to vector graphics) 4 | */ 5 | 6 | module.exports = { 7 | params: { 8 | designator: 'LOGO', 9 | layers: ["F.Cu", "F.Mask"], 10 | }, 11 | body: p => { 12 | function logo(layer) { 13 | return ` 14 | (fp_text user "Triboard" (at 0 7.515882 unlocked) (layer "${layer}") 15 | (effects (font (face "Fantasque Sans Mono") (size 2.5 2.5) (thickness 0.1)) (justify bottom)) 16 | (tstamp 10a9ee3b-5f2f-472f-8820-19f066d488ec) 17 | (render_cache "Triboard" 0 18 | (polygon 19 | (pts 20 | (xy -6.547539 7.12996) (xy -6.547539 5.090533) (xy -6.584175 5.090533) (xy -6.620811 5.090533) 21 | (xy -6.657448 5.090533) (xy -6.694084 5.090533) (xy -6.730721 5.090533) (xy -6.767357 5.090533) 22 | (xy -6.803994 5.090533) (xy -6.84063 5.090533) (xy -6.877266 5.090533) (xy -6.913903 5.090533) 23 | (xy -6.938327 5.090533) (xy -6.973481 5.090533) (xy -7.005897 5.090533) (xy -7.035577 5.090533) 24 | (xy -7.062519 5.090533) (xy -7.094185 5.090533) (xy -7.120985 5.090533) (xy -7.147642 5.090533) 25 | (xy -7.17219 5.090533) (xy -7.17219 4.824308) (xy -7.142699 4.824308) (xy -7.111728 4.824308) 26 | (xy -7.086865 4.824308) (xy -7.058629 4.824308) (xy -7.027021 4.824308) (xy -6.99204 4.824308) 27 | (xy -6.953686 4.824308) (xy -6.91196 4.824308) (xy -6.866861 4.824308) (xy -6.818389 4.824308) 28 | (xy -6.792888 4.824308) (xy -6.766544 4.824308) (xy -6.739358 4.824308) (xy -6.711327 4.824308) 29 | (xy -6.682454 4.824308) (xy -6.652738 4.824308) (xy -6.622178 4.824308) (xy -6.590775 4.824308) 30 | (xy -6.55853 4.824308) (xy -6.526164 4.824308) (xy -6.49448 4.824308) (xy -6.463477 4.824308) 31 | (xy -6.433155 4.824308) (xy -6.403513 4.824308) (xy -6.374553 4.824308) (xy -6.346274 4.824308) 32 | (xy -6.318675 4.824308) (xy -6.291758 4.824308) (xy -6.265522 4.824308) (xy -6.239966 4.824308) 33 | (xy -6.215092 4.824308) (xy -6.167386 4.824308) (xy -6.122403 4.824308) (xy -6.080145 4.824308) 34 | (xy -6.040611 4.824308) (xy -6.0038 4.824308) (xy -5.969713 4.824308) (xy -5.938351 4.824308) 35 | (xy -5.909712 4.824308) (xy -5.883797 4.824308) (xy -5.860606 4.824308) (xy -5.832031 4.824964) 36 | (xy -5.806767 4.826433) (xy -5.779366 4.828742) (xy -5.749828 4.83189) (xy -5.718153 4.835878) 37 | (xy -5.692994 4.83942) (xy -5.666633 4.843435) (xy -5.63907 4.847921) (xy -5.620026 4.851175) 38 | (xy -5.676813 5.123505) (xy -5.703059 5.115777) (xy -5.728676 5.10908) (xy -5.753664 5.103413) 39 | (xy -5.778021 5.098776) (xy -5.807582 5.094429) (xy -5.83616 5.091692) (xy -5.863753 5.090565) 40 | (xy -5.869154 5.090533) (xy -6.272765 5.090533) (xy -6.272765 7.12996) 41 | ) 42 | ) 43 | (polygon 44 | (pts 45 | (xy -4.793875 5.542382) (xy -4.771798 5.517232) (xy -4.749303 5.493531) (xy -4.726389 5.471279) 46 | (xy -4.703057 5.450476) (xy -4.679306 5.431122) (xy -4.655136 5.413217) (xy -4.630548 5.396761) 47 | (xy -4.605541 5.381754) (xy -4.580115 5.368196) (xy -4.554271 5.356087) (xy -4.536809 5.348819) 48 | (xy -4.509788 5.338889) (xy -4.481619 5.329936) (xy -4.452301 5.321959) (xy -4.421834 5.314959) 49 | (xy -4.390219 5.308936) (xy -4.357455 5.30389) (xy -4.323544 5.29982) (xy -4.288483 5.296727) 50 | (xy -4.252274 5.294611) (xy -4.227497 5.293743) (xy -4.202209 5.293308) (xy -4.189374 5.293254) 51 | (xy -4.164365 5.29376) (xy -4.128668 5.296415) (xy -4.09515 5.301345) (xy -4.06381 5.30855) 52 | (xy -4.034649 5.318031) (xy -4.007668 5.329788) (xy -3.982865 5.34382) (xy -3.960241 5.360128) 53 | (xy -3.939795 5.378711) (xy -3.921529 5.399569) (xy -3.905442 5.422703) (xy -3.891147 5.447971) 54 | (xy -3.878258 5.475461) (xy -3.866775 5.505172) (xy -3.856698 5.537106) (xy -3.848027 5.571261) 55 | (xy -3.843028 5.595266) (xy -3.838654 5.620258) (xy -3.834904 5.646237) (xy -3.831779 5.673204) 56 | (xy -3.82928 5.701158) (xy -3.827405 5.7301) (xy -3.826155 5.760029) (xy -3.82553 5.790946) 57 | (xy -3.825452 5.806775) (xy -4.093509 5.806775) (xy -4.094026 5.781929) (xy -4.095013 5.757128) 58 | (xy -4.09534 5.749988) (xy -4.096256 5.724028) (xy -4.097554 5.698716) (xy -4.097783 5.695644) 59 | (xy -4.099977 5.670791) (xy -4.102668 5.65107) (xy -4.108316 5.626798) (xy -4.116712 5.61138) 60 | (xy -4.133348 5.593126) (xy -4.141747 5.585124) (xy -4.163103 5.570656) (xy -4.181436 5.564974) 61 | (xy -4.20564 5.56103) (xy -4.231619 5.559527) (xy -4.237612 5.559479) (xy -4.265018 5.560123) 62 | (xy -4.291822 5.562055) (xy -4.318026 5.565275) (xy -4.343629 5.569783) (xy -4.36863 5.575579) 63 | (xy -4.37683 5.577797) (xy -4.401717 5.585425) (xy -4.427377 5.595028) (xy -4.45381 5.606605) 64 | (xy -4.476427 5.617762) (xy -4.499581 5.63029) (xy -4.518491 5.6413) (xy -4.542239 5.656878) 65 | (xy -4.565777 5.674991) (xy -4.584458 5.691306) (xy -4.603005 5.709242) (xy -4.621419 5.728801) 66 | (xy -4.639699 5.749981) (xy -4.657846 5.772783) (xy -4.666869 5.784793) (xy -4.684729 5.809799) 67 | (xy -4.702284 5.836275) (xy -4.71525 5.857096) (xy -4.728044 5.878743) (xy -4.740666 5.901217) 68 | (xy -4.753117 5.924517) (xy -4.765396 5.948644) (xy -4.777503 5.973597) (xy -4.789439 5.999377) 69 | (xy -4.801202 6.025983) (xy -4.801202 7.090882) (xy -5.068648 7.090882) (xy -5.068648 5.738997) 70 | (xy -5.069857 5.714595) (xy -5.07048 5.709078) (xy -5.077049 5.684783) (xy -5.079029 5.680379) 71 | (xy -5.08938 5.657539) (xy -5.09063 5.654734) (xy -5.103929 5.632982) (xy -5.107727 5.628477) 72 | (xy -5.123663 5.609307) (xy -5.126656 5.605274) (xy -5.143442 5.5867) (xy -5.15108 5.579629) 73 | (xy -5.169899 5.56277) (xy -5.178557 5.555205) (xy -5.197238 5.538518) (xy -5.210309 5.527117) 74 | (xy -5.229244 5.510337) (xy -5.243892 5.497808) (xy -5.065595 5.256618) (xy -5.04521 5.272513) 75 | (xy -5.024122 5.288675) (xy -5.014915 5.295697) (xy -4.994817 5.310831) (xy -4.975368 5.325654) 76 | (xy -4.960571 5.337218) (xy -4.941642 5.352788) (xy -4.922637 5.369675) (xy -4.915386 5.376297) 77 | (xy -4.895984 5.394394) (xy -4.878438 5.412326) (xy -4.867758 5.424535) (xy -4.852214 5.444804) 78 | (xy -4.83796 5.465526) (xy -4.830511 5.477047) (xy -4.816816 5.499093) (xy -4.804274 5.521571) 79 | ) 80 | ) 81 | (polygon 82 | (pts 83 | (xy -3.082343 4.628914) (xy -2.678732 4.628914) (xy -2.678732 5.019702) (xy -3.082343 5.019702) 84 | ) 85 | ) 86 | (polygon 87 | (pts 88 | (xy -2.903435 5.33966) (xy -2.704377 5.33966) (xy -2.702546 6.716579) (xy -2.699886 6.745336) 89 | (xy -2.694961 6.770544) (xy -2.686059 6.796111) (xy -2.67155 6.819482) (xy -2.6526 6.835898) 90 | (xy -2.64637 6.839311) (xy -2.619748 6.848828) (xy -2.590696 6.855125) (xy -2.562092 6.859061) 91 | (xy -2.536332 6.86135) (xy -2.508015 6.862877) (xy -2.477141 6.86364) (xy -2.460745 6.863736) 92 | (xy -2.435531 6.863462) (xy -2.410263 6.862641) (xy -2.384941 6.861272) (xy -2.359566 6.859356) 93 | (xy -2.334137 6.856893) (xy -2.308654 6.853882) (xy -2.283118 6.850324) (xy -2.257528 6.846219) 94 | (xy -2.231884 6.841566) (xy -2.206186 6.836366) (xy -2.189025 6.832595) (xy -2.163748 6.826378) 95 | (xy -2.139437 6.819636) (xy -2.116092 6.812368) (xy -2.086468 6.801859) (xy -2.058561 6.790414) 96 | (xy -2.032372 6.778035) (xy -2.0079 6.764721) (xy -1.985145 6.750472) (xy -1.969206 6.739172) 97 | (xy -1.852581 6.943115) (xy -1.872689 6.960011) (xy -1.893861 6.976123) (xy -1.916095 6.991452) 98 | (xy -1.939392 7.005998) (xy -1.963751 7.019759) (xy -1.989173 7.032738) (xy -2.015657 7.044933) 99 | (xy -2.043204 7.056344) (xy -2.071814 7.066972) (xy -2.101486 7.076816) (xy -2.121858 7.082944) 100 | (xy -2.152835 7.091346) (xy -2.18394 7.098922) (xy -2.215174 7.105671) (xy -2.246537 7.111594) 101 | (xy -2.278028 7.116691) (xy -2.309649 7.120961) (xy -2.341398 7.124405) (xy -2.373276 7.127022) 102 | (xy -2.405283 7.128812) (xy -2.437418 7.129777) (xy -2.458913 7.12996) (xy -2.487407 7.129703) 103 | (xy -2.515032 7.12893) (xy -2.541789 7.127642) (xy -2.567678 7.125839) (xy -2.592698 7.12352) 104 | (xy -2.628601 7.119077) (xy -2.662551 7.113474) (xy -2.694547 7.106712) (xy -2.724589 7.098791) 105 | (xy -2.752679 7.08971) (xy -2.778814 7.079471) (xy -2.802996 7.068072) (xy -2.810623 7.064015) 106 | (xy -2.839213 7.046017) (xy -2.864991 7.025454) (xy -2.887957 7.002325) (xy -2.90811 6.976631) 107 | (xy -2.925452 6.948372) (xy -2.939981 6.917548) (xy -2.951698 6.884158) (xy -2.957948 6.860473) 108 | (xy -2.962947 6.835648) (xy -2.966696 6.809683) (xy -2.969196 6.782578) (xy -2.970446 6.754333) 109 | (xy -2.970602 6.739782) (xy -2.970602 5.605885) (xy -2.99988 5.606102) (xy -3.028944 5.606753) 110 | (xy -3.057793 5.607838) (xy -3.086427 5.609358) (xy -3.114846 5.611311) (xy -3.143051 5.613699) 111 | (xy -3.171041 5.616521) (xy -3.198817 5.619776) (xy -3.226377 5.623466) (xy -3.253723 5.62759) 112 | (xy -3.280855 5.632148) (xy -3.307772 5.63714) (xy -3.334474 5.642567) (xy -3.360961 5.648427) 113 | (xy -3.387234 5.654722) (xy -3.413292 5.66145) (xy -3.463362 5.414154) (xy -3.424753 5.405134) 114 | (xy -3.386626 5.396695) (xy -3.348981 5.388838) (xy -3.311817 5.381563) (xy -3.275135 5.37487) 115 | (xy -3.238935 5.36876) (xy -3.203217 5.363231) (xy -3.167981 5.358284) (xy -3.133226 5.353919) 116 | (xy -3.098954 5.350136) (xy -3.065163 5.346935) (xy -3.031854 5.344316) (xy -2.999026 5.342279) 117 | (xy -2.966681 5.340824) (xy -2.934817 5.339951) 118 | ) 119 | ) 120 | (polygon 121 | (pts 122 | (xy -0.254011 6.27511) (xy -0.254338 6.308579) (xy -0.255321 6.341435) (xy -0.256957 6.37368) 123 | (xy -0.259249 6.405313) (xy -0.262195 6.436334) (xy -0.265796 6.466743) (xy -0.270052 6.496541) 124 | (xy -0.274963 6.525726) (xy -0.280528 6.5543) (xy -0.286748 6.582262) (xy -0.291258 6.600564) 125 | (xy -0.298476 6.627523) (xy -0.306392 6.653901) (xy -0.315006 6.679701) (xy -0.324317 6.704921) 126 | (xy -0.334326 6.729561) (xy -0.345032 6.753621) (xy -0.356436 6.777102) (xy -0.368538 6.800004) 127 | (xy -0.381338 6.822325) (xy -0.394835 6.844067) (xy -0.40422 6.85824) (xy -0.418988 6.878741) 128 | (xy -0.434667 6.89834) (xy -0.451259 6.917037) (xy -0.468764 6.934833) (xy -0.48718 6.951727) 129 | (xy -0.506509 6.96772) (xy -0.52675 6.982811) (xy -0.547904 6.997001) (xy -0.56997 7.010289) 130 | (xy -0.592948 7.022675) (xy -0.608774 7.030431) (xy -0.633104 7.041234) (xy -0.65824 7.050975) 131 | (xy -0.684181 7.059653) (xy -0.710926 7.067268) (xy -0.738477 7.073821) (xy -0.766833 7.079311) 132 | (xy -0.795993 7.083738) (xy -0.825959 7.087103) (xy -0.85673 7.089406) (xy -0.888305 7.090645) 133 | (xy -0.909803 7.090882) (xy -0.942354 7.090269) (xy -0.974213 7.08843) (xy -1.00538 7.085365) 134 | (xy -1.035855 7.081074) (xy -1.065639 7.075557) (xy -1.094731 7.068814) (xy -1.123132 7.060845) 135 | (xy -1.15084 7.05165) (xy -1.177857 7.041229) (xy -1.204183 7.029582) (xy -1.229816 7.016709) 136 | (xy -1.254758 7.002611) (xy -1.279008 6.987286) (xy -1.302567 6.970735) (xy -1.325433 6.952958) 137 | (xy -1.347608 6.933955) (xy -1.34914 6.959643) (xy -1.351616 6.986404) (xy -1.354499 7.012051) 138 | (xy -1.358128 7.040739) (xy -1.361567 7.065879) (xy -1.365484 7.092965) (xy -1.366537 7.100041) 139 | (xy -1.649859 7.067068) (xy -1.64594 7.039841) (xy -1.642274 7.01281) (xy -1.638861 6.985974) 140 | (xy -1.6357 6.959334) (xy -1.632793 6.932889) (xy -1.630138 6.90664) (xy -1.627736 6.880587) 141 | (xy -1.625587 6.854729) (xy -1.623691 6.829067) (xy -1.622048 6.8036) (xy -1.620657 6.778329) 142 | (xy -1.619519 6.753254) (xy -1.618634 6.728374) (xy -1.618002 6.70369) (xy -1.617623 6.679201) 143 | (xy -1.617497 6.654908) (xy -1.617497 6.612776) (xy -1.617502 6.585063) (xy -1.617516 6.55474) 144 | (xy -1.61754 6.521808) (xy -1.617573 6.486266) (xy -1.617616 6.448115) (xy -1.617668 6.407355) 145 | (xy -1.617731 6.363985) (xy -1.617802 6.318006) (xy -1.617883 6.269417) (xy -1.617927 6.244144) 146 | (xy -1.617974 6.218219) (xy -1.618023 6.191641) (xy -1.618074 6.164412) (xy -1.618128 6.136529) 147 | (xy -1.618184 6.107995) (xy -1.618242 6.078808) (xy -1.618303 6.048969) (xy -1.618366 6.018477) 148 | (xy -1.618432 5.987333) (xy -1.6185 5.955537) (xy -1.61857 5.923088) (xy -1.618643 5.889987) 149 | (xy -1.618718 5.856234) (xy -1.618756 5.822404) (xy -1.618792 5.789148) (xy -1.618827 5.756468) 150 | (xy -1.618861 5.724362) (xy -1.618894 5.692831) (xy -1.618925 5.661875) (xy -1.618956 5.631494) 151 | (xy -1.618985 5.601687) (xy -1.619013 5.572455) (xy -1.61904 5.543799) (xy -1.619066 5.515717) 152 | (xy -1.61909 5.48821) (xy -1.619113 5.461277) (xy -1.619135 5.43492) (xy -1.619156 5.409137) 153 | (xy -1.619176 5.383929) (xy -1.619194 5.359296) (xy -1.619228 5.311755) (xy -1.619256 5.266513) 154 | (xy -1.61928 5.22357) (xy -1.619299 5.182926) (xy -1.619314 5.144582) (xy -1.619323 5.108537) 155 | (xy -1.619328 5.074792) (xy -1.619329 5.058781) (xy -1.619554 5.025329) (xy -1.62023 4.99046) 156 | (xy -1.621357 4.954174) (xy -1.622359 4.929196) (xy -1.623561 4.903589) (xy -1.624964 4.877352) 157 | (xy -1.626566 4.850485) (xy -1.62837 4.822989) (xy -1.630373 4.794863) (xy -1.632577 4.766107) 158 | (xy -1.634981 4.736722) (xy -1.637586 4.706706) (xy -1.640391 4.676062) (xy -1.643396 4.644787) 159 | (xy -1.644974 4.628914) (xy -1.372033 4.628914) (xy -1.369075 4.653395) (xy -1.366308 4.678296) 160 | (xy -1.363732 4.703618) (xy -1.361347 4.729358) (xy -1.359153 4.755519) (xy -1.357149 4.7821) 161 | (xy -1.355336 4.8091) (xy -1.353714 4.83652) (xy -1.352283 4.86436) (xy -1.351043 4.89262) 162 | (xy -1.349994 4.921299) (xy -1.349135 4.950398) (xy -1.348467 4.979917) (xy -1.34799 5.009856) 163 | (xy -1.347704 5.040215) (xy -1.347608 5.070993) (xy -1.347608 5.416597) (xy -1.326907 5.401198) 164 | (xy -1.305415 5.385403) (xy -1.284359 5.370214) (xy -1.263298 5.355522) (xy -1.261513 5.354315) 165 | (xy -1.239939 5.341983) (xy -1.217442 5.331947) (xy -1.193938 5.323039) (xy -1.166869 5.314015) 166 | (xy -1.141416 5.306959) (xy -1.114977 5.301364) (xy -1.087549 5.297228) (xy -1.059135 5.294552) 167 | (xy -1.034701 5.293437) (xy -1.019712 5.293254) (xy -0.972604 5.294213) (xy -0.926991 5.29709) 168 | (xy -0.882873 5.301884) (xy -0.840251 5.308596) (xy -0.799125 5.317225) (xy -0.759494 5.327773) 169 | (xy -0.721358 5.340238) (xy -0.684718 5.35462) (xy -0.649574 5.370921) (xy -0.615925 5.389139) 170 | (xy -0.583771 5.409274) (xy -0.553113 5.431328) (xy -0.523951 5.455299) (xy -0.496284 5.481188) 171 | (xy -0.470112 5.508994) (xy -0.445436 5.538718) (xy -0.422256 5.57036) (xy -0.400571 5.60392) 172 | (xy -0.380382 5.639397) (xy -0.361688 5.676792) (xy -0.344489 5.716104) (xy -0.328787 5.757335) 173 | (xy -0.314579 5.800483) (xy -0.301867 5.845548) (xy -0.290651 5.892532) (xy -0.28093 5.941433) 174 | (xy -0.272705 5.992251) (xy -0.265975 6.044988) (xy -0.260741 6.099642) (xy -0.257002 6.156214) 175 | (xy -0.254759 6.214703) 176 | ) 177 | (pts 178 | (xy -0.523289 6.241527) (xy -0.52375 6.199565) (xy -0.525135 6.158935) (xy -0.527443 6.119638) 179 | (xy -0.530673 6.081672) (xy -0.534827 6.045039) (xy -0.539904 6.009737) (xy -0.545904 5.975768) 180 | (xy -0.552827 5.943131) (xy -0.560673 5.911826) (xy -0.569442 5.881853) (xy -0.579134 5.853212) 181 | (xy -0.58975 5.825904) (xy -0.601288 5.799927) (xy -0.613749 5.775283) (xy -0.627134 5.751971) 182 | (xy -0.641441 5.729991) (xy -0.656672 5.709343) (xy -0.672826 5.690027) (xy -0.689902 5.672043) 183 | (xy -0.707902 5.655392) (xy -0.746671 5.626085) (xy -0.789132 5.602107) (xy -0.811747 5.592116) 184 | (xy -0.835285 5.583457) (xy -0.859746 5.57613) (xy -0.885131 5.570136) (xy -0.911438 5.565473) 185 | (xy -0.938669 5.562143) (xy -0.966822 5.560145) (xy -0.995899 5.559479) (xy -1.02131 5.560881) 186 | (xy -1.046255 5.565089) (xy -1.053296 5.566806) (xy -1.078287 5.573103) (xy -1.101986 5.57982) 187 | (xy -1.103366 5.580239) (xy -1.126721 5.589551) (xy -1.14862 5.601838) (xy -1.154046 5.605274) 188 | (xy -1.174844 5.618445) (xy -1.196178 5.63153) (xy -1.216399 5.647029) (xy -1.236321 5.664661) 189 | (xy -1.240142 5.668167) (xy -1.258245 5.684808) (xy -1.276373 5.701385) (xy -1.276778 5.70175) 190 | (xy -1.294667 5.719305) (xy -1.313249 5.738721) (xy -1.315246 5.740829) (xy -1.347608 5.774413) 191 | (xy -1.347608 6.543167) (xy -1.329398 6.57261) (xy -1.311401 6.600261) (xy -1.29362 6.626119) 192 | (xy -1.276053 6.650185) (xy -1.258701 6.672459) (xy -1.241563 6.69294) (xy -1.22464 6.711628) 193 | (xy -1.20241 6.733758) (xy -1.180562 6.752701) (xy -1.164426 6.764817) (xy -1.141614 6.778842) 194 | (xy -1.116226 6.790997) (xy -1.088263 6.801282) (xy -1.057723 6.809697) (xy -1.033127 6.814781) 195 | (xy -1.007083 6.818813) (xy -0.979589 6.821793) (xy -0.950647 6.823722) (xy -0.920256 6.824598) 196 | (xy -0.909803 6.824657) (xy -0.884096 6.824075) (xy -0.859333 6.822329) (xy -0.823959 6.817527) 197 | (xy -0.790711 6.810107) (xy -0.759588 6.800068) (xy -0.73059 6.78741) (xy -0.703717 6.772133) 198 | (xy -0.67897 6.754237) (xy -0.656347 6.733722) (xy -0.63585 6.710588) (xy -0.617479 6.684835) 199 | (xy -0.611827 6.675669) (xy -0.596004 6.646537) (xy -0.581738 6.615011) (xy -0.569028 6.581092) 200 | (xy -0.561419 6.557149) (xy -0.554502 6.532143) (xy -0.548277 6.506073) (xy -0.542743 6.478939) 201 | (xy -0.537901 6.450742) (xy -0.533751 6.42148) (xy -0.530292 6.391155) (xy -0.527525 6.359766) 202 | (xy -0.52545 6.327313) (xy -0.524067 6.293797) (xy -0.523375 6.259216) 203 | ) 204 | ) 205 | (polygon 206 | (pts 207 | (xy 0.827984 7.090882) (xy 0.785651 7.09004) (xy 0.744598 7.087514) (xy 0.704822 7.083304) 208 | (xy 0.666326 7.07741) (xy 0.629107 7.069832) (xy 0.593167 7.060571) (xy 0.558506 7.049625) 209 | (xy 0.525123 7.036995) (xy 0.493018 7.022682) (xy 0.462192 7.006685) (xy 0.432644 6.989003) 210 | (xy 0.404375 6.969638) (xy 0.377384 6.948589) (xy 0.351672 6.925855) (xy 0.327238 6.901438) 211 | (xy 0.304083 6.875337) (xy 0.28227 6.847769) (xy 0.261865 6.818951) (xy 0.242867 6.788884) 212 | (xy 0.225276 6.757566) (xy 0.209093 6.724999) (xy 0.194317 6.691182) (xy 0.180948 6.656115) 213 | (xy 0.168986 6.619798) (xy 0.158432 6.582231) (xy 0.149284 6.543415) (xy 0.141544 6.503349) 214 | (xy 0.135212 6.462032) (xy 0.130286 6.419466) (xy 0.126768 6.375651) (xy 0.124657 6.330585) 215 | (xy 0.123954 6.284269) (xy 0.124142 6.254663) (xy 0.124705 6.225379) (xy 0.125644 6.196417) 216 | (xy 0.126959 6.167777) (xy 0.12865 6.139459) (xy 0.130716 6.111463) (xy 0.133158 6.083789) 217 | (xy 0.135975 6.056437) (xy 0.139168 6.029407) (xy 0.142737 6.002699) (xy 0.145325 5.985072) 218 | (xy 0.14959 5.958847) (xy 0.15437 5.932836) (xy 0.159665 5.907041) (xy 0.165475 5.88146) 219 | (xy 0.171801 5.856093) (xy 0.178641 5.830941) (xy 0.185997 5.806004) (xy 0.193868 5.781282) 220 | (xy 0.202255 5.756774) (xy 0.211156 5.732481) (xy 0.217377 5.716405) (xy 0.227105 5.692679) 221 | (xy 0.237283 5.669586) (xy 0.247913 5.647127) (xy 0.258993 5.6253) (xy 0.274468 5.597184) 222 | (xy 0.290745 5.570193) (xy 0.307823 5.544328) (xy 0.325702 5.519589) (xy 0.344383 5.495976) 223 | (xy 0.364094 5.473364) (xy 0.385065 5.451936) (xy 0.407295 5.43169) (xy 0.430784 5.412628) 224 | (xy 0.455532 5.394748) (xy 0.481541 5.378052) (xy 0.508808 5.362539) (xy 0.537335 5.348209) 225 | (xy 0.567092 5.335329) (xy 0.589999 5.326796) (xy 0.61341 5.319229) (xy 0.637326 5.312628) 226 | (xy 0.661746 5.306993) (xy 0.686671 5.302324) (xy 0.7121 5.298621) (xy 0.738033 5.295884) 227 | (xy 0.764471 5.294113) (xy 0.791414 5.293308) (xy 0.800506 5.293254) (xy 0.831051 5.293593) 228 | (xy 0.860861 5.294609) (xy 0.889937 5.296302) (xy 0.918277 5.298673) (xy 0.945883 5.301722) 229 | (xy 0.972755 5.305447) (xy 0.998892 5.30985) (xy 1.024294 5.314931) (xy 1.048962 5.320689) 230 | (xy 1.072894 5.327124) (xy 1.107416 5.338047) (xy 1.140285 5.350494) (xy 1.171502 5.364465) 231 | (xy 1.201065 5.37996) (xy 1.229379 5.396908) (xy 1.25662 5.415466) (xy 1.282788 5.435634) 232 | (xy 1.307883 5.457412) (xy 1.331904 5.4808) (xy 1.354852 5.505798) (xy 1.376726 5.532406) 233 | (xy 1.397528 5.560624) (xy 1.417255 5.590452) (xy 1.43591 5.62189) (xy 1.44775 5.643743) 234 | (xy 1.460024 5.668959) (xy 1.471506 5.694995) (xy 1.482197 5.721853) (xy 1.492095 5.74953) 235 | (xy 1.501202 5.778028) (xy 1.509517 5.807347) (xy 1.51704 5.837486) (xy 1.523771 5.868446) 236 | (xy 1.52971 5.900226) (xy 1.534857 5.932827) (xy 1.539212 5.966248) (xy 1.542776 6.00049) 237 | (xy 1.545547 6.035552) (xy 1.547527 6.071435) (xy 1.548715 6.108138) (xy 1.549111 6.145662) 238 | (xy 1.548923 6.174881) (xy 1.548359 6.203693) (xy 1.54742 6.232097) (xy 1.546105 6.260093) 239 | (xy 1.544415 6.287682) (xy 1.542349 6.314862) (xy 1.539907 6.341634) (xy 1.537089 6.367999) 240 | (xy 1.533896 6.393956) (xy 1.530327 6.419505) (xy 1.527739 6.436311) (xy 1.523464 6.461183) 241 | (xy 1.518652 6.485884) (xy 1.513303 6.510414) (xy 1.507418 6.534771) (xy 1.500996 6.558957) 242 | (xy 1.494037 6.582971) (xy 1.486541 6.606813) (xy 1.478509 6.630484) (xy 1.469941 6.653983) 243 | (xy 1.460835 6.67731) (xy 1.454467 6.692766) (xy 1.444597 6.715461) (xy 1.430654 6.744737) 244 | (xy 1.415813 6.772887) (xy 1.400076 6.799911) (xy 1.383441 6.825809) (xy 1.36591 6.850582) 245 | (xy 1.347482 6.874229) (xy 1.328157 6.89675) (xy 1.323186 6.902204) (xy 1.302483 6.923184) 246 | (xy 1.280367 6.943076) (xy 1.25684 6.961881) (xy 1.2319 6.979598) (xy 1.205549 6.996228) 247 | (xy 1.177785 7.01177) (xy 1.14861 7.026224) (xy 1.125801 7.036351) (xy 1.118022 7.039591) 248 | (xy 1.09423 7.048757) (xy 1.069794 7.057021) (xy 1.044713 7.064384) (xy 1.018989 7.070846) 249 | (xy 0.992621 7.076406) (xy 0.965609 7.081064) (xy 0.937953 7.084821) (xy 0.909652 7.087676) 250 | (xy 0.880708 7.089629) (xy 0.85112 7.090681) (xy 0.831037 7.090882) 251 | ) 252 | (pts 253 | (xy 1.122907 6.722685) (xy 1.141466 6.703282) (xy 1.158828 6.681861) (xy 1.174992 6.658421) 254 | (xy 1.189959 6.632964) (xy 1.203729 6.605489) (xy 1.216301 6.575997) (xy 1.227676 6.544486) 255 | (xy 1.237854 6.510957) (xy 1.246834 6.475411) (xy 1.254617 6.437847) (xy 1.261202 6.398265) 256 | (xy 1.26659 6.356665) (xy 1.270781 6.313047) (xy 1.273775 6.267411) (xy 1.275571 6.219757) 257 | (xy 1.27602 6.195174) (xy 1.276169 6.170086) (xy 1.276169 6.144009) (xy 1.276169 6.138334) 258 | (xy 1.275337 6.105851) (xy 1.273756 6.074192) (xy 1.271425 6.043359) (xy 1.268346 6.013351) 259 | (xy 1.264518 5.984168) (xy 1.259941 5.955811) (xy 1.254614 5.928278) (xy 1.248539 5.901571) 260 | (xy 1.241715 5.87569) (xy 1.234142 5.850633) (xy 1.225821 5.826402) (xy 1.21675 5.802997) 261 | (xy 1.20693 5.780416) (xy 1.190796 5.748093) (xy 1.172977 5.717626) (xy 1.153301 5.689363) 262 | (xy 1.131596 5.663881) (xy 1.107863 5.641178) (xy 1.082101 5.621255) (xy 1.054311 5.604112) 263 | (xy 1.024492 5.589749) (xy 0.992644 5.578166) (xy 0.958768 5.569363) (xy 0.922863 5.56334) 264 | (xy 0.8978 5.560869) (xy 0.871835 5.559633) (xy 0.858514 5.559479) (xy 0.826591 5.560271) 265 | (xy 0.795851 5.562646) (xy 0.766293 5.566606) (xy 0.737919 5.572149) (xy 0.710728 5.579276) 266 | (xy 0.68472 5.587987) (xy 0.659895 5.598281) (xy 0.636253 5.610159) (xy 0.613975 5.623574) 267 | (xy 0.592938 5.638476) (xy 0.573141 5.654867) (xy 0.554584 5.672746) (xy 0.537268 5.692114) 268 | (xy 0.521192 5.71297) (xy 0.506356 5.735315) (xy 0.49276 5.759147) (xy 0.480377 5.784144) 269 | (xy 0.46887 5.80998) (xy 0.458242 5.836656) (xy 0.448491 5.864172) (xy 0.439619 5.892527) 270 | (xy 0.431623 5.921722) (xy 0.424506 5.951756) (xy 0.418266 5.98263) (xy 0.412828 6.014601) 271 | (xy 0.409225 6.039468) (xy 0.40603 6.065097) (xy 0.403243 6.091489) (xy 0.400864 6.118642) 272 | (xy 0.398893 6.146558) (xy 0.397329 6.175236) (xy 0.396174 6.204675) (xy 0.395426 6.234877) 273 | (xy 0.395086 6.265841) (xy 0.395063 6.276332) (xy 0.3955 6.308248) (xy 0.396809 6.339272) 274 | (xy 0.398992 6.369404) (xy 0.402047 6.398644) (xy 0.405976 6.426992) (xy 0.410777 6.454448) 275 | (xy 0.416451 6.481011) (xy 0.422999 6.506683) (xy 0.430419 6.531463) (xy 0.438712 6.55535) 276 | (xy 0.447878 6.578346) (xy 0.463265 6.611167) (xy 0.480615 6.64198) (xy 0.49993 6.670787) 277 | (xy 0.506804 6.679943) (xy 0.528641 6.705805) (xy 0.552249 6.729123) (xy 0.577628 6.749897) 278 | (xy 0.604778 6.768128) (xy 0.633699 6.783815) (xy 0.664391 6.796958) (xy 0.696854 6.807557) 279 | (xy 0.731088 6.815612) (xy 0.767093 6.821124) (xy 0.79208 6.823385) (xy 0.817854 6.824515) 280 | (xy 0.831037 6.824657) (xy 0.860923 6.824105) (xy 0.88914 6.822451) (xy 0.915687 6.819693) 281 | (xy 0.940564 6.815832) (xy 0.968213 6.809742) (xy 0.993458 6.802064) (xy 1.01773 6.792204) 282 | (xy 1.042002 6.780025) (xy 1.066273 6.765528) (xy 1.0865 6.751676) (xy 1.106726 6.736214) 283 | ) 284 | ) 285 | (polygon 286 | (pts 287 | (xy 3.322924 6.527902) (xy 3.32301 6.554933) (xy 3.323268 6.580462) (xy 3.323976 6.615937) 288 | (xy 3.325071 6.648032) (xy 3.326552 6.676745) (xy 3.32842 6.702077) (xy 3.331511 6.730595) 289 | (xy 3.336341 6.757789) (xy 3.344906 6.780082) (xy 3.362175 6.799069) (xy 3.376658 6.811834) 290 | (xy 3.396332 6.827035) (xy 3.415813 6.841945) (xy 3.431612 6.853966) (xy 3.452609 6.869662) 291 | (xy 3.473279 6.885257) (xy 3.481072 6.891213) (xy 3.33819 7.098209) (xy 3.317287 7.082182) 292 | (xy 3.295314 7.066486) (xy 3.285677 7.059741) (xy 3.264844 7.044859) (xy 3.244366 7.029162) 293 | (xy 3.22828 7.015166) (xy 3.209971 6.996624) (xy 3.192039 6.977347) (xy 3.183706 6.968149) 294 | (xy 3.167606 6.948233) (xy 3.153653 6.926647) (xy 3.141846 6.903392) (xy 3.139742 6.89854) 295 | (xy 3.131392 6.875346) (xy 3.1242 6.850412) (xy 3.118168 6.82374) (xy 3.115318 6.80817) 296 | (xy 3.096138 6.826745) (xy 3.077525 6.844306) (xy 3.059478 6.860853) (xy 3.038569 6.879372) 297 | (xy 3.018477 6.896431) (xy 3.002356 6.909531) (xy 2.982299 6.924694) (xy 2.960138 6.940415) 298 | (xy 2.935873 6.956693) (xy 2.914046 6.970686) (xy 2.890758 6.985065) (xy 2.871075 6.996848) 299 | (xy 2.845381 7.010974) (xy 2.818673 7.023968) (xy 2.790951 7.035828) (xy 2.768044 7.0445) 300 | (xy 2.744487 7.052448) (xy 2.720283 7.05967) (xy 2.695429 7.066167) (xy 2.689114 7.067678) 301 | (xy 2.663478 7.073117) (xy 2.637251 7.07783) (xy 2.610432 7.081818) (xy 2.583021 7.085081) 302 | (xy 2.555019 7.087619) (xy 2.526426 7.089431) (xy 2.49724 7.090519) (xy 2.467464 7.090882) 303 | (xy 2.440468 7.090269) (xy 2.413978 7.08843) (xy 2.387994 7.085365) (xy 2.362516 7.081074) 304 | (xy 2.337543 7.075557) (xy 2.313076 7.068814) (xy 2.289114 7.060845) (xy 2.265658 7.05165) 305 | (xy 2.242708 7.041229) (xy 2.220263 7.029582) (xy 2.198324 7.016709) (xy 2.176891 7.002611) 306 | (xy 2.155964 6.987286) (xy 2.135542 6.970735) (xy 2.115625 6.952958) (xy 2.096215 6.933955) 307 | (xy 2.07773 6.914101) (xy 2.060437 6.89377) (xy 2.044337 6.872962) (xy 2.02943 6.851676) 308 | (xy 2.015715 6.829914) (xy 2.003193 6.807674) (xy 1.991863 6.784958) (xy 1.981726 6.761764) 309 | (xy 1.972781 6.738094) (xy 1.96503 6.713946) (xy 1.95847 6.689321) (xy 1.953104 6.66422) 310 | (xy 1.94893 6.638641) (xy 1.945948 6.612585) (xy 1.944159 6.586053) (xy 1.943563 6.559043) 311 | (xy 1.944183 6.53334) (xy 1.946044 6.507523) (xy 1.949144 6.481591) (xy 1.953485 6.455545) 312 | (xy 1.959067 6.429384) (xy 1.965888 6.403109) (xy 1.97395 6.376719) (xy 1.983252 6.350215) 313 | (xy 1.993709 6.323978) (xy 2.005234 6.298695) (xy 2.017828 6.274366) (xy 2.03149 6.250991) 314 | (xy 2.046221 6.228571) (xy 2.062021 6.207104) (xy 2.078889 6.186591) (xy 2.096825 6.167033) 315 | (xy 2.118473 6.14557) (xy 2.140367 6.125373) (xy 2.162508 6.106443) (xy 2.184896 6.08878) 316 | (xy 2.207531 6.072383) (xy 2.230412 6.057252) (xy 2.253541 6.043389) (xy 2.276916 6.030791) 317 | (xy 2.300539 6.01946) (xy 2.324408 6.009396) (xy 2.340458 6.00339) (xy 2.364947 5.995206) 318 | (xy 2.390103 5.987827) (xy 2.415924 5.981253) (xy 2.44241 5.975484) (xy 2.469562 5.970519) 319 | (xy 2.497379 5.96636) (xy 2.525862 5.963006) (xy 2.55501 5.960457) (xy 2.584823 5.958713) 320 | (xy 2.615302 5.957774) (xy 2.635991 5.957595) (xy 2.66982 5.957962) (xy 2.702614 5.959064) 321 | (xy 2.734373 5.960901) (xy 2.765097 5.963472) (xy 2.794785 5.966778) (xy 2.823438 5.970818) 322 | (xy 2.851056 5.975593) (xy 2.877639 5.981103) (xy 2.903187 5.987347) (xy 2.927699 5.994327) 323 | (xy 2.951177 6.00204) (xy 2.984452 6.014988) (xy 3.015398 6.029589) (xy 3.044015 6.045843) 324 | (xy 3.053036 6.051628) (xy 3.052657 6.020478) (xy 3.051519 5.990377) (xy 3.049623 5.961325) 325 | (xy 3.046968 5.933323) (xy 3.043555 5.90637) (xy 3.039383 5.880467) (xy 3.034453 5.855614) 326 | (xy 3.028764 5.83181) (xy 3.018809 5.798071) (xy 3.007148 5.766694) (xy 2.993779 5.737678) 327 | (xy 2.978704 5.711024) (xy 2.961923 5.686731) (xy 2.95595 5.679158) (xy 2.936699 5.65777) 328 | (xy 2.915356 5.638486) (xy 2.89192 5.621305) (xy 2.866391 5.606228) (xy 2.838768 5.593255) 329 | (xy 2.809053 5.582386) (xy 2.777245 5.573621) (xy 2.743344 5.566959) (xy 2.70735 5.562401) 330 | (xy 2.682191 5.560531) (xy 2.656102 5.559596) (xy 2.642708 5.559479) (xy 2.608993 5.559999) 331 | (xy 2.57677 5.561561) (xy 2.546038 5.564164) (xy 2.516799 5.567808) (xy 2.489052 5.572493) 332 | (xy 2.462796 5.578219) (xy 2.438032 5.584987) (xy 2.414761 5.592795) (xy 2.386053 5.604826) 333 | (xy 2.359997 5.618708) (xy 2.335372 5.635452) (xy 2.310652 5.656069) (xy 2.29205 5.674074) 334 | (xy 2.273393 5.694258) (xy 2.254683 5.716621) (xy 2.23592 5.741163) (xy 2.217102 5.767884) 335 | (xy 2.198231 5.796783) (xy 2.179307 5.827862) (xy 2.166661 5.849791) (xy 2.160328 5.861119) 336 | (xy 1.936846 5.718847) (xy 1.951859 5.69059) (xy 1.967281 5.663368) (xy 1.983114 5.637181) 337 | (xy 1.999357 5.612029) (xy 2.016011 5.587913) (xy 2.033074 5.564831) (xy 2.050548 5.542785) 338 | (xy 2.068432 5.521774) (xy 2.086726 5.501798) (xy 2.105431 5.482857) (xy 2.124546 5.464952) 339 | (xy 2.144071 5.448081) (xy 2.164006 5.432246) (xy 2.184352 5.417446) (xy 2.205108 5.403681) 340 | (xy 2.226274 5.390951) (xy 2.247922 5.379121) (xy 2.270123 5.368054) (xy 2.292878 5.35775) 341 | (xy 2.316186 5.348209) (xy 2.340047 5.339431) (xy 2.364462 5.331417) (xy 2.38943 5.324166) 342 | (xy 2.414952 5.317678) (xy 2.441026 5.311954) (xy 2.467655 5.306993) (xy 2.494836 5.302795) 343 | (xy 2.522571 5.29936) (xy 2.550859 5.296689) (xy 2.579701 5.294781) (xy 2.609096 5.293636) 344 | (xy 2.639044 5.293254) (xy 2.677262 5.293967) (xy 2.714521 5.296107) (xy 2.750821 5.299673) 345 | (xy 2.786163 5.304665) (xy 2.820545 5.311083) (xy 2.853969 5.318928) (xy 2.886433 5.328199) 346 | (xy 2.917939 5.338897) (xy 2.948486 5.351021) (xy 2.978075 5.364571) (xy 3.006704 5.379548) 347 | (xy 3.034374 5.395951) (xy 3.061086 5.41378) (xy 3.086839 5.433035) (xy 3.111633 5.453717) 348 | (xy 3.135468 5.475826) (xy 3.158168 5.499088) (xy 3.179403 5.523234) (xy 3.199174 5.548261) 349 | (xy 3.21748 5.574172) (xy 3.234322 5.600964) (xy 3.249699 5.62864) (xy 3.263612 5.657197) 350 | (xy 3.27606 5.686638) (xy 3.287044 5.716961) (xy 3.296563 5.748166) (xy 3.304618 5.780254) 351 | (xy 3.311208 5.813224) (xy 3.316334 5.847077) (xy 3.319995 5.881813) (xy 3.322192 5.917431) 352 | (xy 3.322924 5.953931) 353 | ) 354 | (pts 355 | (xy 2.211619 6.546831) (xy 2.212678 6.578744) (xy 2.215856 6.608845) (xy 2.221151 6.637134) 356 | (xy 2.228564 6.663609) (xy 2.238095 6.688272) (xy 2.249744 6.711122) (xy 2.263512 6.732159) 357 | (xy 2.279397 6.751384) (xy 2.297162 6.768557) (xy 2.316568 6.783441) (xy 2.337614 6.796035) 358 | (xy 2.360302 6.806339) (xy 2.384631 6.814353) (xy 2.410601 6.820077) (xy 2.438212 6.823512) 359 | (xy 2.467464 6.824657) (xy 2.49268 6.824199) (xy 2.517648 6.822825) (xy 2.542368 6.820535) 360 | (xy 2.56684 6.81733) (xy 2.591064 6.813208) (xy 2.61504 6.80817) (xy 2.638768 6.802217) 361 | (xy 2.662248 6.795348) (xy 2.690798 6.785995) (xy 2.717679 6.776254) (xy 2.742891 6.766126) 362 | (xy 2.766432 6.75561) (xy 2.788305 6.744707) (xy 2.812347 6.731112) (xy 2.816121 6.728791) 363 | (xy 2.838618 6.714037) (xy 2.860771 6.698166) (xy 2.882581 6.681178) (xy 2.904048 6.663075) 364 | (xy 2.925171 6.643855) (xy 2.932136 6.6372) (xy 2.951814 6.617909) (xy 2.969173 6.600335) 365 | (xy 2.986495 6.582002) (xy 3.00413 6.561867) (xy 3.010294 6.554158) (xy 3.025537 6.533503) 366 | (xy 3.040204 6.511838) (xy 3.053036 6.491265) (xy 3.053036 6.331286) (xy 3.030565 6.318273) 367 | (xy 3.007727 6.306099) (xy 2.984522 6.294764) (xy 2.960949 6.284269) (xy 2.937009 6.274614) 368 | (xy 2.912701 6.265799) (xy 2.888027 6.257823) (xy 2.862985 6.250686) (xy 2.837575 6.244389) 369 | (xy 2.811799 6.238932) (xy 2.785655 6.234314) (xy 2.759143 6.230536) (xy 2.732265 6.227598) 370 | (xy 2.705019 6.225499) (xy 2.677405 6.224239) (xy 2.649425 6.223819) (xy 2.615779 6.224603) 371 | (xy 2.583078 6.226954) (xy 2.551322 6.230871) (xy 2.52051 6.236356) (xy 2.490643 6.243408) 372 | (xy 2.46172 6.252027) (xy 2.433742 6.262213) (xy 2.406708 6.273966) (xy 2.380619 6.287286) 373 | (xy 2.355475 6.302173) (xy 2.339236 6.312968) (xy 2.31643 6.330172) (xy 2.295867 6.348352) 374 | (xy 2.277547 6.367509) (xy 2.26147 6.387643) (xy 2.247636 6.408754) (xy 2.236046 6.430841) 375 | (xy 2.226699 6.453906) (xy 2.219596 6.477946) (xy 2.214735 6.502964) (xy 2.212118 6.528958) 376 | ) 377 | ) 378 | (polygon 379 | (pts 380 | (xy 4.255321 5.542382) (xy 4.277398 5.517232) (xy 4.299893 5.493531) (xy 4.322807 5.471279) 381 | (xy 4.34614 5.450476) (xy 4.369891 5.431122) (xy 4.39406 5.413217) (xy 4.418649 5.396761) 382 | (xy 4.443656 5.381754) (xy 4.469081 5.368196) (xy 4.494925 5.356087) (xy 4.512387 5.348819) 383 | (xy 4.539408 5.338889) (xy 4.567578 5.329936) (xy 4.596896 5.321959) (xy 4.627363 5.314959) 384 | (xy 4.658978 5.308936) (xy 4.691741 5.30389) (xy 4.725653 5.29982) (xy 4.760713 5.296727) 385 | (xy 4.796922 5.294611) (xy 4.8217 5.293743) (xy 4.846987 5.293308) (xy 4.859823 5.293254) 386 | (xy 4.884831 5.29376) (xy 4.920528 5.296415) (xy 4.954047 5.301345) (xy 4.985386 5.30855) 387 | (xy 5.014547 5.318031) (xy 5.041529 5.329788) (xy 5.066332 5.34382) (xy 5.088956 5.360128) 388 | (xy 5.109401 5.378711) (xy 5.127667 5.399569) (xy 5.143755 5.422703) (xy 5.15805 5.447971) 389 | (xy 5.170939 5.475461) (xy 5.182422 5.505172) (xy 5.192498 5.537106) (xy 5.201169 5.571261) 390 | (xy 5.206169 5.595266) (xy 5.210543 5.620258) (xy 5.214292 5.646237) (xy 5.217417 5.673204) 391 | (xy 5.219917 5.701158) (xy 5.221792 5.7301) (xy 5.223041 5.760029) (xy 5.223666 5.790946) 392 | (xy 5.223744 5.806775) (xy 4.955688 5.806775) (xy 4.955171 5.781929) (xy 4.954183 5.757128) 393 | (xy 4.953856 5.749988) (xy 4.95294 5.724028) (xy 4.951643 5.698716) (xy 4.951414 5.695644) 394 | (xy 4.949219 5.670791) (xy 4.946529 5.65107) (xy 4.940881 5.626798) (xy 4.932485 5.61138) 395 | (xy 4.915849 5.593126) (xy 4.90745 5.585124) (xy 4.886094 5.570656) (xy 4.86776 5.564974) 396 | (xy 4.843557 5.56103) (xy 4.817577 5.559527) (xy 4.811585 5.559479) (xy 4.784179 5.560123) 397 | (xy 4.757374 5.562055) (xy 4.73117 5.565275) (xy 4.705568 5.569783) (xy 4.680566 5.575579) 398 | (xy 4.672366 5.577797) (xy 4.647479 5.585425) (xy 4.621819 5.595028) (xy 4.595387 5.606605) 399 | (xy 4.572769 5.617762) (xy 4.549615 5.63029) (xy 4.530705 5.6413) (xy 4.506958 5.656878) 400 | (xy 4.483419 5.674991) (xy 4.464738 5.691306) (xy 4.446191 5.709242) (xy 4.427777 5.728801) 401 | (xy 4.409497 5.749981) (xy 4.391351 5.772783) (xy 4.382328 5.784793) (xy 4.364468 5.809799) 402 | (xy 4.346913 5.836275) (xy 4.333947 5.857096) (xy 4.321153 5.878743) (xy 4.30853 5.901217) 403 | (xy 4.29608 5.924517) (xy 4.283801 5.948644) (xy 4.271693 5.973597) (xy 4.259758 5.999377) 404 | (xy 4.247994 6.025983) (xy 4.247994 7.090882) (xy 3.980548 7.090882) (xy 3.980548 5.738997) 405 | (xy 3.979339 5.714595) (xy 3.978716 5.709078) (xy 3.972148 5.684783) (xy 3.970168 5.680379) 406 | (xy 3.959816 5.657539) (xy 3.958566 5.654734) (xy 3.945268 5.632982) (xy 3.941469 5.628477) 407 | (xy 3.925533 5.609307) (xy 3.922541 5.605274) (xy 3.905755 5.5867) (xy 3.898116 5.579629) 408 | (xy 3.879298 5.56277) (xy 3.870639 5.555205) (xy 3.851958 5.538518) (xy 3.838887 5.527117) 409 | (xy 3.819952 5.510337) (xy 3.805304 5.497808) (xy 3.983601 5.256618) (xy 4.003987 5.272513) 410 | (xy 4.025075 5.288675) (xy 4.034282 5.295697) (xy 4.05438 5.310831) (xy 4.073828 5.325654) 411 | (xy 4.088626 5.337218) (xy 4.107555 5.352788) (xy 4.12656 5.369675) (xy 4.133811 5.376297) 412 | (xy 4.153213 5.394394) (xy 4.170758 5.412326) (xy 4.181438 5.424535) (xy 4.196982 5.444804) 413 | (xy 4.211236 5.465526) (xy 4.218685 5.477047) (xy 4.232381 5.499093) (xy 4.244922 5.521571) 414 | ) 415 | ) 416 | (polygon 417 | (pts 418 | (xy 6.918179 6.615829) (xy 6.918179 6.660403) (xy 6.918301 6.68582) (xy 6.918666 6.711237) 419 | (xy 6.919274 6.736653) (xy 6.920125 6.76207) (xy 6.92122 6.787486) (xy 6.922558 6.812903) 420 | (xy 6.92414 6.838319) (xy 6.925964 6.863736) (xy 6.928032 6.889152) (xy 6.930344 6.914569) 421 | (xy 6.932898 6.939985) (xy 6.935696 6.965402) (xy 6.938737 6.990818) (xy 6.942021 7.016235) 422 | (xy 6.945549 7.041651) (xy 6.94932 7.067068) (xy 6.66783 7.100041) (xy 6.663794 7.072468) 423 | (xy 6.660236 7.046841) (xy 6.656458 7.017545) (xy 6.653426 6.991291) (xy 6.650771 6.963799) 424 | (xy 6.649031 6.93726) (xy 6.648901 6.933955) (xy 6.626648 6.952958) (xy 6.603697 6.970735) 425 | (xy 6.580051 6.987286) (xy 6.555707 7.002611) (xy 6.530668 7.016709) (xy 6.504932 7.029582) 426 | (xy 6.478499 7.041229) (xy 6.45137 7.05165) (xy 6.423544 7.060845) (xy 6.395022 7.068814) 427 | (xy 6.365804 7.075557) (xy 6.335889 7.081074) (xy 6.305277 7.085365) (xy 6.27397 7.08843) 428 | (xy 6.241965 7.090269) (xy 6.209264 7.090882) (xy 6.1679 7.090023) (xy 6.12792 7.087447) 429 | (xy 6.089323 7.083154) (xy 6.052109 7.077143) (xy 6.016279 7.069415) (xy 5.981832 7.05997) 430 | (xy 5.948769 7.048807) (xy 5.917089 7.035927) (xy 5.886792 7.02133) (xy 5.857879 7.005015) 431 | (xy 5.830349 6.986983) (xy 5.804203 6.967234) (xy 5.77944 6.945767) (xy 5.75606 6.922583) 432 | (xy 5.734064 6.897682) (xy 5.713451 6.871063) (xy 5.694227 6.842985) (xy 5.676242 6.813704) 433 | (xy 5.659498 6.783221) (xy 5.643995 6.751537) (xy 5.629731 6.71865) (xy 5.616708 6.684561) 434 | (xy 5.604925 6.649269) (xy 5.594383 6.612776) (xy 5.585081 6.575081) (xy 5.577019 6.536183) 435 | (xy 5.570197 6.496083) (xy 5.564616 6.454782) (xy 5.560275 6.412278) (xy 5.557174 6.368571) 436 | (xy 5.555314 6.323663) (xy 5.554693 6.277553) (xy 5.554849 6.242911) (xy 5.555316 6.209053) 437 | (xy 5.556094 6.175978) (xy 5.557184 6.143687) (xy 5.558584 6.112179) (xy 5.560296 6.081455) 438 | (xy 5.562319 6.051514) (xy 5.564654 6.022357) (xy 5.5673 5.993984) (xy 5.570257 5.966394) 439 | (xy 5.572401 5.948436) (xy 5.576083 5.921894) (xy 5.580258 5.89562) (xy 5.584927 5.869615) 440 | (xy 5.59009 5.843879) (xy 5.595746 5.81841) (xy 5.601896 5.79321) (xy 5.60854 5.768278) 441 | (xy 5.615678 5.743615) (xy 5.623309 5.71922) (xy 5.631434 5.695093) (xy 5.637125 5.679158) 442 | (xy 5.646084 5.655632) (xy 5.655558 5.632912) (xy 5.668991 5.60387) (xy 5.683341 5.576259) 443 | (xy 5.698606 5.550079) (xy 5.714787 5.52533) (xy 5.731884 5.502013) (xy 5.749897 5.480126) 444 | (xy 5.759247 5.46972) (xy 5.778882 5.449665) (xy 5.799929 5.430717) (xy 5.822387 5.412876) 445 | (xy 5.846258 5.396141) (xy 5.871541 5.380514) (xy 5.898236 5.365993) (xy 5.926343 5.352578) 446 | (xy 5.955862 5.340271) (xy 5.978907 5.331868) (xy 6.002703 5.324293) (xy 6.02725 5.317543) 447 | (xy 6.052548 5.31162) (xy 6.078598 5.306524) (xy 6.105399 5.302253) (xy 6.132952 5.29881) 448 | (xy 6.161255 5.296193) (xy 6.19031 5.294402) (xy 6.220117 5.293438) (xy 6.240405 5.293254) 449 | (xy 6.266537 5.293755) (xy 6.292574 5.295258) (xy 6.318515 5.297762) (xy 6.344361 5.301268) 450 | (xy 6.370112 5.305776) (xy 6.395767 5.311286) (xy 6.421326 5.317798) (xy 6.44679 5.325311) 451 | (xy 6.472159 5.333826) (xy 6.497433 5.343343) (xy 6.522611 5.353862) (xy 6.547693 5.365382) 452 | (xy 6.57268 5.377904) (xy 6.597572 5.391428) (xy 6.622369 5.405954) (xy 6.64707 5.421482) 453 | (xy 6.64707 5.060002) (xy 6.646844 5.026228) (xy 6.646168 4.99108) (xy 6.645041 4.954558) 454 | (xy 6.644039 4.929447) (xy 6.642837 4.903725) (xy 6.641435 4.877393) (xy 6.639832 4.850449) 455 | (xy 6.638029 4.822896) (xy 6.636025 4.794732) (xy 6.633821 4.765957) (xy 6.631417 4.736571) 456 | (xy 6.628812 4.706575) (xy 6.626007 4.675969) (xy 6.623002 4.644751) (xy 6.621424 4.628914) 457 | (xy 6.896197 4.628914) (xy 6.899081 4.653855) (xy 6.901779 4.679222) (xy 6.90429 4.705013) 458 | (xy 6.906616 4.731228) (xy 6.908755 4.757869) (xy 6.910709 4.784933) (xy 6.912476 4.812423) 459 | (xy 6.914058 4.840336) (xy 6.915453 4.868675) (xy 6.916662 4.897438) (xy 6.917685 4.926625) 460 | (xy 6.918523 4.956237) (xy 6.919174 4.986274) (xy 6.919639 5.016735) (xy 6.919918 5.047621) 461 | (xy 6.920011 5.078931) 462 | ) 463 | (pts 464 | (xy 5.826414 6.243969) (xy 5.826752 6.279151) (xy 5.827768 6.313254) (xy 5.829462 6.34628) 465 | (xy 5.831833 6.378227) (xy 5.834881 6.409096) (xy 5.838607 6.438887) (xy 5.84301 6.4676) 466 | (xy 5.84809 6.495234) (xy 5.853848 6.521791) (xy 5.860283 6.547269) (xy 5.867396 6.57167) 467 | (xy 5.875186 6.594992) (xy 5.888141 6.627954) (xy 5.90262 6.658491) (xy 5.91312 6.6775) 468 | (xy 5.930456 6.703799) (xy 5.949949 6.727511) (xy 5.9716 6.748636) (xy 5.995409 6.767174) 469 | (xy 6.021374 6.783125) (xy 6.049497 6.79649) (xy 6.079778 6.807268) (xy 6.112216 6.81546) 470 | (xy 6.146811 6.821064) (xy 6.183564 6.824082) (xy 6.209264 6.824657) (xy 6.237801 6.824189) 471 | (xy 6.265097 6.822787) (xy 6.291152 6.820449) (xy 6.315968 6.817177) (xy 6.345243 6.811771) 472 | (xy 6.37258 6.804905) (xy 6.397979 6.796578) (xy 6.402827 6.794737) (xy 6.426404 6.784615) 473 | (xy 6.44867 6.77333) (xy 6.473657 6.758253) (xy 6.496755 6.741502) (xy 6.517964 6.723077) 474 | (xy 6.531054 6.709863) (xy 6.547294 6.691407) (xy 6.564339 6.670388) (xy 6.58219 6.646804) 475 | (xy 6.597049 6.626091) (xy 6.612424 6.603737) (xy 6.628314 6.579743) (xy 6.64472 6.554107) 476 | (xy 6.648901 6.547441) (xy 6.648901 5.790288) (xy 6.628093 5.769117) (xy 6.605968 5.748347) 477 | (xy 6.582526 5.727978) (xy 6.557768 5.708009) (xy 6.531693 5.688441) (xy 6.511273 5.674028) 478 | (xy 6.490113 5.65984) (xy 6.468211 5.645878) (xy 6.445569 5.632141) (xy 6.422697 5.619156) 479 | (xy 6.400103 5.607447) (xy 6.377788 5.597016) (xy 6.34847 5.585095) (xy 6.319647 5.575445) 480 | (xy 6.291321 5.568065) (xy 6.26349 5.562956) (xy 6.236156 5.560117) (xy 6.215981 5.559479) 481 | (xy 6.190049 5.560089) (xy 6.165072 5.561921) (xy 6.129394 5.566959) (xy 6.095863 5.574744) 482 | (xy 6.064479 5.585277) (xy 6.035241 5.598558) (xy 6.00815 5.614586) (xy 5.983206 5.633362) 483 | (xy 5.960408 5.654886) (xy 5.939758 5.679158) (xy 5.921253 5.706177) (xy 5.915562 5.715794) 484 | (xy 5.89963 5.746998) (xy 5.88988 5.769905) (xy 5.880826 5.794496) (xy 5.872468 5.820772) 485 | (xy 5.864807 5.848731) (xy 5.857842 5.878374) (xy 5.851574 5.909701) (xy 5.846002 5.942712) 486 | (xy 5.841127 5.977407) (xy 5.836948 6.013785) (xy 5.833465 6.051848) (xy 5.83068 6.091595) 487 | (xy 5.82859 6.133026) (xy 5.827197 6.17614) (xy 5.826501 6.220939) 488 | ) 489 | ) 490 | ) 491 | ) 492 | (fp_poly 493 | (pts 494 | (xy -2.838248 1.903776) 495 | (xy -2.667061 1.919988) 496 | (xy -2.491846 1.948263) 497 | (xy -2.314893 1.988303) 498 | (xy -2.13849 2.039809) 499 | (xy -2.125712 2.044004) 500 | (xy -1.981885 2.095827) 501 | (xy -1.827765 2.159356) 502 | (xy -1.664615 2.233921) 503 | (xy -1.493697 2.318851) 504 | (xy -1.316273 2.413474) 505 | (xy -1.133605 2.517119) 506 | (xy -0.946957 2.629115) 507 | (xy -0.757589 2.748791) 508 | (xy -0.584296 2.863581) 509 | (xy -0.552117 2.885385) 510 | (xy -0.522973 2.905211) 511 | (xy -0.49561 2.923962) 512 | (xy -0.468774 2.942541) 513 | (xy -0.441211 2.961851) 514 | (xy -0.411669 2.982796) 515 | (xy -0.378893 3.006279) 516 | (xy -0.34163 3.033204) 517 | (xy -0.298626 3.064473) 518 | (xy -0.248627 3.10099) 519 | (xy -0.190381 3.143659) 520 | (xy -0.122634 3.193382) 521 | (xy -0.044131 3.251064) 522 | (xy 0.04638 3.317607) 523 | (xy 0.076104 3.339463) 524 | (xy 0.164831 3.404629) 525 | (xy 0.257863 3.472813) 526 | (xy 0.354154 3.543257) 527 | (xy 0.452658 3.615204) 528 | (xy 0.55233 3.687895) 529 | (xy 0.652126 3.760575) 530 | (xy 0.750999 3.832484) 531 | (xy 0.847903 3.902866) 532 | (xy 0.941795 3.970963) 533 | (xy 1.031627 4.036017) 534 | (xy 1.116356 4.097271) 535 | (xy 1.194934 4.153968) 536 | (xy 1.266318 4.205349) 537 | (xy 1.329461 4.250658) 538 | (xy 1.383319 4.289137) 539 | (xy 1.426845 4.320028) 540 | (xy 1.458994 4.342573) 541 | (xy 1.478722 4.356016) 542 | (xy 1.480952 4.357461) 543 | (xy 1.543834 4.39757) 544 | (xy -2.298203 4.39757) 545 | (xy -2.609861 4.397563) 546 | (xy -2.904997 4.397541) 547 | (xy -3.184025 4.397503) 548 | (xy -3.447357 4.397449) 549 | (xy -3.695404 4.397376) 550 | (xy -3.92858 4.397283) 551 | (xy -4.147297 4.39717) 552 | (xy -4.351967 4.397034) 553 | (xy -4.543002 4.396876) 554 | (xy -4.720815 4.396694) 555 | (xy -4.885818 4.396486) 556 | (xy -5.038423 4.396251) 557 | (xy -5.179043 4.395989) 558 | (xy -5.308091 4.395698) 559 | (xy -5.425977 4.395376) 560 | (xy -5.533116 4.395024) 561 | (xy -5.629918 4.394638) 562 | (xy -5.716797 4.394219) 563 | (xy -5.794165 4.393765) 564 | (xy -5.862434 4.393275) 565 | (xy -5.922017 4.392748) 566 | (xy -5.973325 4.392182) 567 | (xy -6.016772 4.391577) 568 | (xy -6.052769 4.39093) 569 | (xy -6.081729 4.390242) 570 | (xy -6.104064 4.38951) 571 | (xy -6.120186 4.388735) 572 | (xy -6.130509 4.387913) 573 | (xy -6.135444 4.387045) 574 | (xy -6.136007 4.386536) 575 | (xy -6.129203 4.373987) 576 | (xy -6.114278 4.349612) 577 | (xy -6.092653 4.315576) 578 | (xy -6.06575 4.274042) 579 | (xy -6.034989 4.227175) 580 | (xy -6.001791 4.177137) 581 | (xy -5.967577 4.126093) 582 | (xy -5.933769 4.076206) 583 | (xy -5.901788 4.029641) 584 | (xy -5.898597 4.025037) 585 | (xy -5.719149 3.775068) 586 | (xy -5.537183 3.538728) 587 | (xy -5.353167 3.316532) 588 | (xy -5.167569 3.108998) 589 | (xy -4.98086 2.91664) 590 | (xy -4.793506 2.739975) 591 | (xy -4.605978 2.57952) 592 | (xy -4.533053 2.521569) 593 | (xy -4.35435 2.390433) 594 | (xy -4.174943 2.274233) 595 | (xy -3.995402 2.173221) 596 | (xy -3.816294 2.087653) 597 | (xy -3.638185 2.017779) 598 | (xy -3.461643 1.963855) 599 | (xy -3.287236 1.926132) 600 | (xy -3.159382 1.908745) 601 | (xy -3.003118 1.899929) 602 | ) 603 | 604 | (stroke (width 0) (type solid)) (fill solid) (layer "${layer}") (tstamp 69047df5-8699-4880-b0cc-a6c094f40c5c)) 605 | (fp_poly 606 | (pts 607 | (xy 0.010099 -7.521023) 608 | (xy 0.023208 -7.498858) 609 | (xy 0.044047 -7.463277) 610 | (xy 0.072252 -7.414907) 611 | (xy 0.107461 -7.354375) 612 | (xy 0.149311 -7.282307) 613 | (xy 0.197439 -7.199333) 614 | (xy 0.251481 -7.106077) 615 | (xy 0.311075 -7.003169) 616 | (xy 0.375858 -6.891235) 617 | (xy 0.445466 -6.770901) 618 | (xy 0.519536 -6.642796) 619 | (xy 0.597706 -6.507547) 620 | (xy 0.679611 -6.365781) 621 | (xy 0.76489 -6.218124) 622 | (xy 0.85318 -6.065205) 623 | (xy 0.944116 -5.907649) 624 | (xy 1.037336 -5.746086) 625 | (xy 1.066981 -5.694697) 626 | (xy 1.166543 -5.5221) 627 | (xy 1.266941 -5.348057) 628 | (xy 1.367614 -5.17354) 629 | (xy 1.468 -4.999524) 630 | (xy 1.567537 -4.826982) 631 | (xy 1.665664 -4.656889) 632 | (xy 1.761818 -4.490218) 633 | (xy 1.855439 -4.327942) 634 | (xy 1.945963 -4.171036) 635 | (xy 2.032829 -4.020473) 636 | (xy 2.115475 -3.877227) 637 | (xy 2.193341 -3.742272) 638 | (xy 2.265863 -3.616581) 639 | (xy 2.33248 -3.501129) 640 | (xy 2.39263 -3.396889) 641 | (xy 2.445752 -3.304835) 642 | (xy 2.491283 -3.22594) 643 | (xy 2.512855 -3.188563) 644 | (xy 2.672957 -2.911179) 645 | (xy 2.840377 -2.621109) 646 | (xy 3.013974 -2.320337) 647 | (xy 3.192601 -2.010844) 648 | (xy 3.375116 -1.694613) 649 | (xy 3.560374 -1.373625) 650 | (xy 3.747232 -1.049862) 651 | (xy 3.934546 -0.725308) 652 | (xy 4.121171 -0.401943) 653 | (xy 4.206055 -0.254864) 654 | (xy 4.274857 -0.135662) 655 | (xy 4.35079 -0.004129) 656 | (xy 4.432509 0.137408) 657 | (xy 4.518669 0.286619) 658 | (xy 4.607926 0.441178) 659 | (xy 4.698935 0.598755) 660 | (xy 4.790351 0.757023) 661 | (xy 4.880831 0.913653) 662 | (xy 4.969028 1.066318) 663 | (xy 5.053598 1.212689) 664 | (xy 5.133198 1.350437) 665 | (xy 5.166948 1.408837) 666 | (xy 5.231993 1.521496) 667 | (xy 5.29456 1.630086) 668 | (xy 5.354137 1.733709) 669 | (xy 5.410213 1.831463) 670 | (xy 5.462276 1.922451) 671 | (xy 5.509815 2.005773) 672 | (xy 5.552317 2.080528) 673 | (xy 5.589272 2.145818) 674 | (xy 5.620167 2.200743) 675 | (xy 5.644491 2.244404) 676 | (xy 5.661733 2.275901) 677 | (xy 5.67138 2.294335) 678 | (xy 5.673317 2.299055) 679 | (xy 5.663432 2.302397) 680 | (xy 5.640299 2.307392) 681 | (xy 5.607442 2.313346) 682 | (xy 5.570971 2.319179) 683 | (xy 5.511542 2.326264) 684 | (xy 5.441152 2.33164) 685 | (xy 5.363977 2.335246) 686 | (xy 5.284192 2.33702) 687 | (xy 5.205971 2.336902) 688 | (xy 5.133489 2.33483) 689 | (xy 5.070921 2.330744) 690 | (xy 5.037571 2.326983) 691 | (xy 4.895133 2.30124) 692 | (xy 4.743162 2.262825) 693 | (xy 4.582791 2.212219) 694 | (xy 4.415152 2.149904) 695 | (xy 4.241376 2.076361) 696 | (xy 4.062595 1.992071) 697 | (xy 3.879941 1.897515) 698 | (xy 3.694547 1.793175) 699 | (xy 3.507543 1.679532) 700 | (xy 3.492404 1.669963) 701 | (xy 3.345486 1.576292) 702 | (xy 3.204762 1.485416) 703 | (xy 3.068663 1.396231) 704 | (xy 2.935617 1.307632) 705 | (xy 2.804053 1.218516) 706 | (xy 2.672401 1.127779) 707 | (xy 2.539089 1.034318) 708 | (xy 2.402549 0.937029) 709 | (xy 2.261207 0.834808) 710 | (xy 2.113495 0.726551) 711 | (xy 1.957841 0.611155) 712 | (xy 1.792674 0.487517) 713 | (xy 1.616423 0.354531) 714 | (xy 1.566238 0.316505) 715 | (xy 1.377749 0.177951) 716 | (xy 1.181821 0.042663) 717 | (xy 0.977238 -0.090061) 718 | (xy 0.762787 -0.220927) 719 | (xy 0.537253 -0.350638) 720 | (xy 0.299423 -0.4799) 721 | (xy 0.048081 -0.609416) 722 | (xy -0.217986 -0.739891) 723 | (xy -0.414963 -0.832783) 724 | (xy -0.667329 -0.945417) 725 | (xy -0.911307 -1.044808) 726 | (xy -1.14848 -1.1314) 727 | (xy -1.380434 -1.205636) 728 | (xy -1.608754 -1.267957) 729 | (xy -1.835023 -1.318807) 730 | (xy -2.060826 -1.358628) 731 | (xy -2.287748 -1.387863) 732 | (xy -2.455429 -1.402804) 733 | (xy -2.520388 -1.406322) 734 | (xy -2.599406 -1.408613) 735 | (xy -2.689658 -1.409736) 736 | (xy -2.788317 -1.409751) 737 | (xy -2.892559 -1.408715) 738 | (xy -2.999558 -1.406689) 739 | (xy -3.106488 -1.403731) 740 | (xy -3.210525 -1.399902) 741 | (xy -3.308842 -1.395258) 742 | (xy -3.398614 -1.389861) 743 | (xy -3.477016 -1.383769) 744 | (xy -3.508291 -1.38077) 745 | (xy -3.536738 -1.379038) 746 | (xy -3.552542 -1.380751) 747 | (xy -3.554858 -1.383798) 748 | (xy -3.550464 -1.391616) 749 | (xy -3.537882 -1.413617) 750 | (xy -3.517389 -1.449322) 751 | (xy -3.489263 -1.498248) 752 | (xy -3.453782 -1.559916) 753 | (xy -3.411222 -1.633842) 754 | (xy -3.361862 -1.719547) 755 | (xy -3.305979 -1.816549) 756 | (xy -3.24385 -1.924366) 757 | (xy -3.175752 -2.042519) 758 | (xy -3.101963 -2.170524) 759 | (xy -3.022761 -2.307902) 760 | (xy -2.938423 -2.454171) 761 | (xy -2.849226 -2.60885) 762 | (xy -2.755448 -2.771457) 763 | (xy -2.657366 -2.941512) 764 | (xy -2.555258 -3.118532) 765 | (xy -2.449402 -3.302038) 766 | (xy -2.340073 -3.491548) 767 | (xy -2.227551 -3.68658) 768 | (xy -2.112112 -3.886653) 769 | (xy -1.994034 -4.091287) 770 | (xy -1.873595 -4.3) 771 | (xy -1.778096 -4.465482) 772 | (xy -1.622558 -4.734962) 773 | (xy -1.475292 -4.990041) 774 | (xy -1.336134 -5.230999) 775 | (xy -1.204921 -5.458118) 776 | (xy -1.081489 -5.67168) 777 | (xy -0.965675 -5.871965) 778 | (xy -0.857314 -6.059255) 779 | (xy -0.756243 -6.233831) 780 | (xy -0.662299 -6.395973) 781 | (xy -0.575318 -6.545964) 782 | (xy -0.495135 -6.684084) 783 | (xy -0.421588 -6.810615) 784 | (xy -0.354513 -6.925837) 785 | (xy -0.293746 -7.030033) 786 | (xy -0.239123 -7.123482) 787 | (xy -0.190481 -7.206467) 788 | (xy -0.147656 -7.279268) 789 | (xy -0.110485 -7.342167) 790 | (xy -0.078803 -7.395445) 791 | (xy -0.052448 -7.439383) 792 | (xy -0.031255 -7.474262) 793 | (xy -0.015061 -7.500364) 794 | (xy -0.003702 -7.517969) 795 | (xy 0.002986 -7.527359) 796 | (xy 0.005084 -7.529144) 797 | ) 798 | 799 | (stroke (width 0) (type solid)) (fill solid) (layer "${layer}") (tstamp 0931c049-bb9f-4ff8-989f-8b473ee91d81)) 800 | (group "" (id 317cdd44-7a61-4721-9b4c-1f69855c0c6c) 801 | (members 802 | 0931c049-bb9f-4ff8-989f-8b473ee91d81 803 | 2ae67af0-ada9-4fbb-ae94-7be1e8dcee65 804 | 69047df5-8699-4880-b0cc-a6c094f40c5c 805 | 85d7597f-31ae-4a54-9c39-64f4146191a0 806 | ) 807 | ) 808 | ` 809 | } 810 | var out = "" 811 | for (let layer of p.layers) { 812 | out += logo(layer) 813 | } 814 | return `(footprint "logo" (layer "F.Cu") 815 | ${p.at /* parametric position */} 816 | (attr board_only exclude_from_pos_files exclude_from_bom) 817 | (fp_text reference "${p.ref}" (at 0 0) (layer "F.SilkS") ${p.ref_hide} 818 | (effects (font (size 1.5 1.5) (thickness 0.3))) 819 | (tstamp ad80969d-9e9d-4f71-a8df-d80379095f29) 820 | ) 821 | (fp_text value "" (at 0.75 0) (layer "F.SilkS") hide 822 | (effects (font (size 1.5 1.5) (thickness 0.3))) 823 | (tstamp 0388bbc6-2dc3-4407-8d53-bec0cb7e58ae) 824 | ) 825 | ${out} 826 | )` 827 | } 828 | } 829 | --------------------------------------------------------------------------------