fix: restructure project into distinct ergogen, kicad and zmk folders
This commit is contained in:
parent
cdc911bb9c
commit
1878cfe636
30 changed files with 2 additions and 214 deletions
241
ergogen/config.yaml
Normal file
241
ergogen/config.yaml
Normal file
|
|
@ -0,0 +1,241 @@
|
|||
|
||||
meta:
|
||||
engine: 4.1.0
|
||||
author: phiwan
|
||||
|
||||
|
||||
units:
|
||||
kx: cx
|
||||
ky: cy
|
||||
# halfs
|
||||
khx: kx/2
|
||||
khy: ky/2
|
||||
# padding
|
||||
px: kx + 2
|
||||
py: ky + 2
|
||||
# adjust preview rendering
|
||||
$default_width: cx
|
||||
$default_height: cy
|
||||
|
||||
|
||||
points:
|
||||
zones:
|
||||
# main key matrix
|
||||
matrix:
|
||||
anchor.shift: [170, -170]
|
||||
key:
|
||||
tags: [key]
|
||||
padding: ky
|
||||
spread: kx
|
||||
columns:
|
||||
outer:
|
||||
# upper key
|
||||
rows.top.column_net: cpinky
|
||||
rows.top.row_net: rthumbs
|
||||
# lower key
|
||||
rows.home.column_net: cring
|
||||
rows.home.row_net: rthumbs
|
||||
# this column only has 2 keys
|
||||
rows.bottom.skip: true
|
||||
pinky.key:
|
||||
stagger: 5
|
||||
column_net: cpinky
|
||||
ring.key:
|
||||
stagger: 10
|
||||
column_net: cring
|
||||
middle.key:
|
||||
stagger: 7
|
||||
column_net: cmiddle
|
||||
index.key:
|
||||
stagger: -7
|
||||
column_net: cindex
|
||||
inner.key:
|
||||
stagger: 0
|
||||
column_net: cinner
|
||||
rows:
|
||||
bottom.row_net: rbottom
|
||||
home.row_net: rhome
|
||||
top.row_net: rtop
|
||||
# thumb clusters
|
||||
thumbs:
|
||||
key:
|
||||
tags: [key]
|
||||
spread: 22
|
||||
anchor:
|
||||
ref: matrix_inner_bottom
|
||||
shift: [-24, -ky]
|
||||
columns:
|
||||
left.key:
|
||||
splay: 0
|
||||
column_net: cmiddle
|
||||
middle.key:
|
||||
splay: -15
|
||||
shift: [0, -3]
|
||||
column_net: cindex
|
||||
right.key:
|
||||
splay: -15
|
||||
shift: [0, -6]
|
||||
column_net: cinner
|
||||
rows:
|
||||
cluster.row_net: rthumbs
|
||||
# screw points
|
||||
screws:
|
||||
key.tags: [screw]
|
||||
key.spread: 0
|
||||
anchor:
|
||||
ref: matrix_outer_top
|
||||
columns:
|
||||
left_top.key.shift: [khx+0.3, -3.5]
|
||||
left_bottom.key.shift: [khx+0.3, -ky-3.5]
|
||||
middle_top.key.shift: [2kx+khx+0.3, ky-3.5]
|
||||
middle_bottom.key.shift: [3kx+6, -ky-7]
|
||||
right_top.key.shift: [4kx+khx, +6.5]
|
||||
right_bottom.key.shift: [5kx+khx+2, -2ky+2]
|
||||
|
||||
|
||||
|
||||
outlines:
|
||||
keys:
|
||||
- what: rectangle
|
||||
where: [key]
|
||||
size: [kx, ky]
|
||||
board:
|
||||
- what: polygon
|
||||
operation: stack
|
||||
points:
|
||||
- ref: matrix_outer_top
|
||||
shift: [-khx-2,khy+2]
|
||||
- ref: matrix_outer_top
|
||||
shift: [khx-2,khy+2]
|
||||
- ref: matrix_pinky_top
|
||||
shift: [-khx-2,khy+2]
|
||||
- ref: matrix_pinky_top
|
||||
shift: [khx-2,khy+2]
|
||||
- ref: matrix_ring_top
|
||||
shift: [-khx-2,khy+2]
|
||||
- ref: matrix_ring_top
|
||||
shift: [khx-2,khy+2]
|
||||
- ref: matrix_middle_top
|
||||
shift: [-khx-2,khy+2]
|
||||
- ref: matrix_middle_top
|
||||
shift: [khx+2,khy+2]
|
||||
- ref: matrix_index_top
|
||||
shift: [-khx+2,khy+2]
|
||||
- ref: matrix_inner_top
|
||||
shift: [30.6,khy+2]
|
||||
- ref: thumbs_right_cluster
|
||||
shift: [khx+2,khy+1] # not an error
|
||||
- ref: thumbs_right_cluster
|
||||
shift: [khx+2,-khy-2]
|
||||
- ref: thumbs_right_cluster
|
||||
shift: [-khx,-khy-2]
|
||||
- ref: thumbs_middle_cluster
|
||||
shift: [-khx-1,-khy-2] # not an error
|
||||
- ref: thumbs_left_cluster
|
||||
shift: [-khx-2,-khy-2]
|
||||
- ref: matrix_pinky_bottom
|
||||
shift: [khx,-khy-2]
|
||||
- ref: matrix_pinky_bottom
|
||||
shift: [-khx-2,-khy-2]
|
||||
- ref: matrix_outer_home
|
||||
shift: [khx-2,-khy-2]
|
||||
- ref: matrix_outer_home
|
||||
shift: [-khx-2,-khy-2]
|
||||
fillet: 2
|
||||
combined:
|
||||
- name: board
|
||||
- operation: stack
|
||||
name: keys
|
||||
|
||||
|
||||
pcbs:
|
||||
pcb:
|
||||
outlines.main.outline: board
|
||||
footprints:
|
||||
|
||||
# hotswap choc
|
||||
switches:
|
||||
what: choc
|
||||
where: [key]
|
||||
params:
|
||||
keycaps: false # outline on the pcb
|
||||
reverse: true
|
||||
hotswap: true
|
||||
from: "{{column_net}}"
|
||||
to: "{{colrow}}"
|
||||
|
||||
# smd diodes
|
||||
diodes:
|
||||
what: combo_diode
|
||||
where: [key]
|
||||
params:
|
||||
include_smd: true
|
||||
include_tht: false
|
||||
reversible: true
|
||||
from: "{{colrow}}"
|
||||
to: "{{row_net}}"
|
||||
adjust:
|
||||
shift: [0, -5]
|
||||
|
||||
# mcu with reversible pins
|
||||
xiao_ble:
|
||||
what: xiao_ble_smd_reversible
|
||||
params:
|
||||
D0: "rtop"
|
||||
D1: "rhome"
|
||||
D2: "rbottom"
|
||||
D3: "rthumbs"
|
||||
D4: "sda"
|
||||
D5: "scl"
|
||||
D6: "cinner"
|
||||
D10: "cpinky"
|
||||
D9: "cring"
|
||||
D8: "cmiddle"
|
||||
D7: "cindex"
|
||||
where:
|
||||
ref: matrix_inner_top
|
||||
shift: [kx+2, 0]
|
||||
|
||||
# raw battery pads, no connector
|
||||
battery_pads:
|
||||
what: pads
|
||||
params:
|
||||
reverse: true
|
||||
net_1: "BAT+"
|
||||
net_2: "GND"
|
||||
label_1: "+"
|
||||
label_2: ""
|
||||
space: 1.25
|
||||
where:
|
||||
ref: matrix_inner_home
|
||||
shift: [kx+2, 0]
|
||||
|
||||
# OLED screen
|
||||
# added manually in kicad
|
||||
# uses jumpers to make it reversible
|
||||
|
||||
screws:
|
||||
what: mounting_hole
|
||||
params:
|
||||
drill: 3.6
|
||||
where: [screw]
|
||||
|
||||
# silkscreen
|
||||
# added manually in kicad
|
||||
# different graphics for front and back
|
||||
|
||||
# small custom graphics
|
||||
# different graphics for front and back
|
||||
phi-caps:
|
||||
what: phi-caps
|
||||
params.scale: 0.013
|
||||
where:
|
||||
ref: thumbs_left_cluster
|
||||
shift: [-2kx-2, 16]
|
||||
phi-logo:
|
||||
what: phi-logo
|
||||
params.scale: 0.011
|
||||
where:
|
||||
ref: thumbs_left_cluster
|
||||
shift: [-2kx+2, 14]
|
||||
|
||||
89
ergogen/footprints/combo_diode.js
Normal file
89
ergogen/footprints/combo_diode.js
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
// Author: Ergogen + @infused-kim improvements
|
||||
//
|
||||
// @infused-kim's improvements:
|
||||
// - Added option to hide thru-holes
|
||||
// - Added virtual attribute to silence DRC error
|
||||
|
||||
module.exports = {
|
||||
params: {
|
||||
designator: "Di",
|
||||
from: undefined,
|
||||
to: undefined,
|
||||
include_smd: true,
|
||||
include_tht: true,
|
||||
include_via: true,
|
||||
side: "B",
|
||||
reversible: false,
|
||||
},
|
||||
body: (p) => {
|
||||
const standard_opening = `
|
||||
(module Diode_SMD:D_SOD-123 (layer ${p.side}.Cu) (tedit 5B24D78E)
|
||||
${p.at /* parametric position */}
|
||||
(attr virtual)
|
||||
(fp_text reference "${p.ref}" (at 0 0) (layer ${p.side}.SilkS) ${
|
||||
p.ref_hide
|
||||
} (effects (font (size 1.27 1.27) (thickness 0.15))))
|
||||
(fp_text value "" (at 0 0) (layer ${
|
||||
p.side
|
||||
}.SilkS) hide (effects (font (size 1.27 1.27) (thickness 0.15))))
|
||||
`;
|
||||
const front_silk = `
|
||||
(fp_line (start 0.25 0) (end 0.75 0) (layer F.SilkS) (width 0.1))
|
||||
(fp_line (start 0.25 0.4) (end -0.35 0) (layer F.SilkS) (width 0.1))
|
||||
(fp_line (start 0.25 -0.4) (end 0.25 0.4) (layer F.SilkS) (width 0.1))
|
||||
(fp_line (start -0.35 0) (end 0.25 -0.4) (layer F.SilkS) (width 0.1))
|
||||
(fp_line (start -0.35 0) (end -0.35 0.55) (layer F.SilkS) (width 0.1))
|
||||
(fp_line (start -0.35 0) (end -0.35 -0.55) (layer F.SilkS) (width 0.1))
|
||||
(fp_line (start -0.75 0) (end -0.35 0) (layer F.SilkS) (width 0.1))
|
||||
`;
|
||||
const back_silk = `
|
||||
(fp_line (start 0.25 0) (end 0.75 0) (layer B.SilkS) (width 0.1))
|
||||
(fp_line (start 0.25 0.4) (end -0.35 0) (layer B.SilkS) (width 0.1))
|
||||
(fp_line (start 0.25 -0.4) (end 0.25 0.4) (layer B.SilkS) (width 0.1))
|
||||
(fp_line (start -0.35 0) (end 0.25 -0.4) (layer B.SilkS) (width 0.1))
|
||||
(fp_line (start -0.35 0) (end -0.35 0.55) (layer B.SilkS) (width 0.1))
|
||||
(fp_line (start -0.35 0) (end -0.35 -0.55) (layer B.SilkS) (width 0.1))
|
||||
(fp_line (start -0.75 0) (end -0.35 0) (layer B.SilkS) (width 0.1))
|
||||
`;
|
||||
const front_pads = `
|
||||
(pad 1 smd rect (at -1.65 0 ${p.rot}) (size 0.9 1.2) (layers F.Cu F.Paste F.Mask) ${p.to.str})
|
||||
(pad 2 smd rect (at 1.65 0 ${p.rot}) (size 0.9 1.2) (layers F.Cu F.Paste F.Mask) ${p.from.str})
|
||||
`;
|
||||
const back_pads = `
|
||||
(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})
|
||||
(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})
|
||||
`;
|
||||
const standard_closing = `
|
||||
)
|
||||
`;
|
||||
const tht = `
|
||||
(pad 1 thru_hole rect (at -3.81 0 ${p.rot}) (size 1.778 1.778) (drill 0.9906) (layers *.Cu *.Mask) ${p.to.str})
|
||||
(pad 2 thru_hole circle (at 3.81 0 ${p.rot}) (size 1.905 1.905) (drill 0.9906) (layers *.Cu *.Mask) ${p.from.str})
|
||||
`;
|
||||
const via = `
|
||||
(pad "1" thru_hole circle (at -2.1 0) (size 0.6 0.6) (drill 0.3) (layers "*.Cu" "*.Mask") ${p.to.str})
|
||||
(pad "2" thru_hole circle (at 2.1 0) (size 0.6 0.6) (drill 0.3) (layers "*.Cu" "*.Mask") ${p.from.str})
|
||||
`;
|
||||
let final = standard_opening;
|
||||
if (p.side == "F" || p.reversible) {
|
||||
final += front_silk;
|
||||
if (p.include_smd) {
|
||||
final += front_pads;
|
||||
}
|
||||
}
|
||||
if (p.side == "B" || p.reversible) {
|
||||
final += back_silk;
|
||||
if (p.include_smd) {
|
||||
final += back_pads;
|
||||
}
|
||||
}
|
||||
if (p.include_tht) {
|
||||
final += tht;
|
||||
}
|
||||
if (p.include_via) {
|
||||
final += via;
|
||||
}
|
||||
final += standard_closing;
|
||||
return final;
|
||||
},
|
||||
};
|
||||
78
ergogen/footprints/mounting_hole.js
Normal file
78
ergogen/footprints/mounting_hole.js
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
// Author: @infused-kim
|
||||
//
|
||||
// Description:
|
||||
// Simple mounting hole with gold rim.
|
||||
//
|
||||
// Parameters:
|
||||
// - outline: The width of the gold rim around the hole (Default: 0.8mm)
|
||||
// - drill: The actual size for the hole (Default 2.2mm - for m2 screws)
|
||||
// - drill_y: The height if you want an oval hole (Default: off)
|
||||
|
||||
module.exports = {
|
||||
params: {
|
||||
designator: "H",
|
||||
outline: 0.8,
|
||||
drill: 2.2,
|
||||
drill_y: 0,
|
||||
},
|
||||
body: (p) => {
|
||||
if (p.drill_y == 0) {
|
||||
p.drill_y = p.drill;
|
||||
}
|
||||
|
||||
const size_x = p.drill + p.outline * 2;
|
||||
const size_y = p.drill_y + p.outline * 2;
|
||||
|
||||
const courtyard_offset = 0.25;
|
||||
const courtyard_x = size_x / 2 + courtyard_offset;
|
||||
const courtyard_y = size_y / 2 + courtyard_offset;
|
||||
|
||||
const top = `
|
||||
(module mounting_hole (layer F.Cu) (tedit 64B5A986)
|
||||
${p.at /* parametric position */}
|
||||
(fp_text reference "${p.ref}" (at 0 3) (layer F.SilkS) ${
|
||||
p.ref_hide
|
||||
}
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
`;
|
||||
|
||||
const pad_circle = `
|
||||
(pad "" thru_hole circle (at 0 0 180) (size ${size_x} ${size_y}) (drill ${p.drill}) (layers *.Cu *.Mask))
|
||||
`;
|
||||
const courtyard_circle = `
|
||||
(fp_circle (center 0 0) (end -${courtyard_x} 0) (layer F.CrtYd) (width 0.05))
|
||||
(fp_circle (center 0 0) (end -${courtyard_x} 0) (layer B.CrtYd) (width 0.05))
|
||||
`;
|
||||
const pad_oval = `
|
||||
(pad "" thru_hole oval (at 0 0 180) (size ${size_x} ${size_y}) (drill oval ${p.drill} ${p.drill_y}) (layers *.Cu *.Mask))
|
||||
`;
|
||||
const courtyard_oval = `
|
||||
(fp_line (start ${courtyard_x} -${courtyard_y}) (end ${courtyard_x} ${courtyard_y}) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -${courtyard_x} -${courtyard_y}) (end -${courtyard_x} ${courtyard_y}) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -${courtyard_x} ${courtyard_y}) (end ${courtyard_x} ${courtyard_y}) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -${courtyard_x} -${courtyard_y}) (end ${courtyard_x} -${courtyard_y}) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -${courtyard_x} ${courtyard_y}) (end ${courtyard_x} ${courtyard_y}) (layer B.CrtYd) (width 0.05))
|
||||
(fp_line (start -${courtyard_x} ${courtyard_y}) (end -${courtyard_x} -${courtyard_y}) (layer B.CrtYd) (width 0.05))
|
||||
(fp_line (start -${courtyard_x} -${courtyard_y}) (end ${courtyard_x} -${courtyard_y}) (layer B.CrtYd) (width 0.05))
|
||||
(fp_line (start ${courtyard_x} ${courtyard_y}) (end ${courtyard_x} -${courtyard_y}) (layer B.CrtYd) (width 0.05))
|
||||
`;
|
||||
|
||||
const bottom = `
|
||||
)
|
||||
`;
|
||||
|
||||
let final = top;
|
||||
if (size_x == size_y) {
|
||||
final += pad_circle;
|
||||
final += courtyard_circle;
|
||||
} else {
|
||||
final += pad_oval;
|
||||
final += courtyard_oval;
|
||||
}
|
||||
|
||||
final += bottom;
|
||||
|
||||
return final;
|
||||
},
|
||||
};
|
||||
219
ergogen/footprints/pads.js
Normal file
219
ergogen/footprints/pads.js
Normal file
|
|
@ -0,0 +1,219 @@
|
|||
// Author: @infused-kim
|
||||
//
|
||||
// Description:
|
||||
// Let's you place solder pads on the PCB that can be used instead of
|
||||
// connectors. Useful for batteries and other peripherals in case the end-user
|
||||
// does not have the right cable connector.
|
||||
//
|
||||
// Fully reversible and pads are mirrored on the back side.
|
||||
|
||||
module.exports = {
|
||||
params: {
|
||||
designator: "PAD",
|
||||
side: "F",
|
||||
reverse: true,
|
||||
width: 1.25,
|
||||
height: 2.5,
|
||||
space: 2,
|
||||
mirror: true,
|
||||
pads: 2,
|
||||
net_1: { type: "net", value: "PAD_1" },
|
||||
net_2: { type: "net", value: "PAD_2" },
|
||||
net_3: { type: "net", value: "PAD_3" },
|
||||
net_4: { type: "net", value: "PAD_4" },
|
||||
net_5: { type: "net", value: "PAD_5" },
|
||||
net_6: { type: "net", value: "PAD_5" },
|
||||
label_1: "",
|
||||
label_2: "",
|
||||
label_3: "",
|
||||
label_4: "",
|
||||
label_5: "",
|
||||
label_6: "",
|
||||
label_at_bottom: false,
|
||||
},
|
||||
body: (p) => {
|
||||
const gen_nets = (p) => {
|
||||
const all_nets = [
|
||||
p.net_1.str,
|
||||
p.net_2.str,
|
||||
p.net_3.str,
|
||||
p.net_4.str,
|
||||
p.net_5.str,
|
||||
p.net_6.str,
|
||||
];
|
||||
const all_labels = [
|
||||
p.label_1,
|
||||
p.label_2,
|
||||
p.label_3,
|
||||
p.label_4,
|
||||
p.label_5,
|
||||
p.label_6,
|
||||
];
|
||||
|
||||
pad_cnt = p.pads;
|
||||
if (pad_cnt > all_nets.length || pad_cnt > all_labels.length) {
|
||||
pad_cnt = Math.min(all_nets.length, all_labels.length);
|
||||
}
|
||||
|
||||
let nets = [];
|
||||
for (let i = 0; i < pad_cnt; i++) {
|
||||
let net = [all_nets[i], all_labels[i]];
|
||||
nets.push(net);
|
||||
}
|
||||
|
||||
return nets;
|
||||
};
|
||||
|
||||
const gen_pad = (
|
||||
pad_idx,
|
||||
pad_cnt,
|
||||
net_str,
|
||||
net_label,
|
||||
width,
|
||||
height,
|
||||
space,
|
||||
rot,
|
||||
layer,
|
||||
label_at_bottom
|
||||
) => {
|
||||
// Calculate the pad position from center
|
||||
const pos_x_raw = (width + space) * pad_idx;
|
||||
|
||||
// Adjust it so that the pads are centered in the middle
|
||||
const pos_x = pos_x_raw - ((width + space) * (pad_cnt - 1)) / 2;
|
||||
|
||||
let label_pos_y = -1 * (height / 2 + 0.2);
|
||||
let label_justify_direction = "left";
|
||||
if (label_at_bottom) {
|
||||
label_pos_y = label_pos_y * -1;
|
||||
label_justify_direction = "right";
|
||||
}
|
||||
|
||||
if (label_at_bottom == false || layer == "B") {
|
||||
if ((rot > 0 && rot <= 180) || rot <= -180) {
|
||||
label_justify_direction = "right";
|
||||
} else {
|
||||
label_justify_direction = "left";
|
||||
}
|
||||
} else {
|
||||
if ((rot > 0 && rot <= 180) || rot <= -180) {
|
||||
label_justify_direction = "left";
|
||||
} else {
|
||||
label_justify_direction = "right";
|
||||
}
|
||||
}
|
||||
|
||||
let justify_mirror = "";
|
||||
if (layer == "B") {
|
||||
justify_mirror = "mirror";
|
||||
}
|
||||
|
||||
let label_justify = "";
|
||||
if (justify_mirror != "" || label_justify_direction != "") {
|
||||
label_justify = `(justify ${label_justify_direction} ${justify_mirror})`;
|
||||
}
|
||||
|
||||
let pad = `
|
||||
(pad ${
|
||||
pad_idx + 1
|
||||
} smd rect (at ${pos_x} 0 ${rot}) (size ${width} ${height}) (layers ${layer}.Cu ${layer}.Paste ${layer}.Mask) ${net_str})
|
||||
`;
|
||||
|
||||
if (net_label) {
|
||||
pad += `
|
||||
(fp_text user "${net_label}" (at ${pos_x} ${label_pos_y} ${
|
||||
90 + rot
|
||||
}) (layer ${layer}.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.1)) ${label_justify})
|
||||
)
|
||||
`;
|
||||
}
|
||||
|
||||
return pad;
|
||||
};
|
||||
|
||||
const gen_pads = (
|
||||
nets,
|
||||
width,
|
||||
height,
|
||||
space,
|
||||
rot,
|
||||
layer,
|
||||
label_at_bottom,
|
||||
mirror
|
||||
) => {
|
||||
if (mirror) {
|
||||
nets = nets.slice().reverse();
|
||||
}
|
||||
|
||||
let pads = "";
|
||||
for (let [net_idx, net] of nets.entries()) {
|
||||
const net_str = net[0];
|
||||
const net_label = net[1];
|
||||
|
||||
const pad = gen_pad(
|
||||
net_idx,
|
||||
nets.length,
|
||||
net_str,
|
||||
net_label,
|
||||
width,
|
||||
height,
|
||||
space,
|
||||
rot,
|
||||
layer,
|
||||
label_at_bottom
|
||||
);
|
||||
|
||||
pads += pad;
|
||||
}
|
||||
|
||||
return pads;
|
||||
};
|
||||
|
||||
const nets = gen_nets(p);
|
||||
|
||||
let pads_front = "";
|
||||
if (p.side == "F" || p.reverse) {
|
||||
pads_front = gen_pads(
|
||||
nets,
|
||||
p.width,
|
||||
p.height,
|
||||
p.space,
|
||||
p.rot,
|
||||
"F",
|
||||
p.label_at_bottom,
|
||||
false
|
||||
);
|
||||
}
|
||||
|
||||
let pads_back = "";
|
||||
if (p.side == "B" || p.reverse) {
|
||||
pads_back = gen_pads(
|
||||
nets,
|
||||
p.width,
|
||||
p.height,
|
||||
p.space,
|
||||
p.rot,
|
||||
"B",
|
||||
p.label_at_bottom,
|
||||
p.mirror
|
||||
);
|
||||
}
|
||||
const fp = `
|
||||
(module pads (layer F.Cu) (tedit 6446BF3D)
|
||||
${p.at /* parametric position */}
|
||||
(attr smd)
|
||||
|
||||
(fp_text reference "${p.ref}" (at 0 2.2) (layer F.SilkS) ${
|
||||
p.ref_hide
|
||||
}
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
${pads_front}
|
||||
${pads_back}
|
||||
)
|
||||
`;
|
||||
|
||||
return fp;
|
||||
},
|
||||
};
|
||||
9252
ergogen/footprints/phi-caps.js
Normal file
9252
ergogen/footprints/phi-caps.js
Normal file
File diff suppressed because it is too large
Load diff
3249
ergogen/footprints/phi-logo.js
Normal file
3249
ergogen/footprints/phi-logo.js
Normal file
File diff suppressed because it is too large
Load diff
127
ergogen/footprints/xiao_ble_smd_reversible.js
Normal file
127
ergogen/footprints/xiao_ble_smd_reversible.js
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
// Seeduino XIAO BLE THT
|
||||
// https://wiki.seeedstudio.com/XIAO_BLE/
|
||||
// Taken and modified from: https://github.com/crides/kleeb/blob/master/mcu.pretty/xiao-ble-tht.kicad_mod
|
||||
// removed reset pins and holes
|
||||
module.exports = {
|
||||
params: {
|
||||
designator: 'MCU',
|
||||
D0: {type: 'net', value: 'D0'},
|
||||
D1: {type: 'net', value: 'D1'},
|
||||
D2: {type: 'net', value: 'D2'},
|
||||
D3: {type: 'net', value: 'D3'},
|
||||
D4: {type: 'net', value: 'D4'},
|
||||
D5: {type: 'net', value: 'D5'},
|
||||
D6: {type: 'net', value: 'D6'},
|
||||
D7: {type: 'net', value: 'D7'},
|
||||
D8: {type: 'net', value: 'D8'},
|
||||
D9: {type: 'net', value: 'D9'},
|
||||
D10: {type: 'net', value: 'D10'},
|
||||
_3V3: {type: 'net', value: '3V3'},
|
||||
GND: {type: 'net', value: 'GND'},
|
||||
_5V: {type: 'net', value: '5V'},
|
||||
RST: {type: 'net', value: 'RST'},
|
||||
BATP: {type: 'net', value: 'BAT+'}
|
||||
},
|
||||
body: p => `
|
||||
(module "xiao-ble-smd-reversible"
|
||||
(layer "F.Cu")
|
||||
${p.at /* parametric position */}
|
||||
(attr smd exclude_from_pos_files)
|
||||
|
||||
${"" /* footprint reference */}
|
||||
(fp_text reference "${p.ref}" (at 0 0) (layer F.SilkS) ${
|
||||
p.ref_hide
|
||||
} (effects (font (size 1.27 1.27) (thickness 0.15))))
|
||||
(fp_text value "" (at 0 0) (layer F.SilkS) hide (effects (font (size 1.27 1.27) (thickness 0.15))))
|
||||
|
||||
(fp_rect (start -3.350197 -6.785813) (end -5.128197 -4.118813) (layer "Dwgs.User") (width 0.12) (fill none) (tstamp 06bccb0b-2f4b-4092-834b-3871294199da))
|
||||
(fp_rect (start 3.350197 -6.785813) (end 5.128197 -4.118813) (layer "Dwgs.User") (width 0.12) (fill none) (tstamp 2415f537-fa6d-4c04-bd97-00b9f7ab939d))
|
||||
(fp_rect (start 3.507811 -8.182813) (end 5.285811 -10.849813) (layer "Dwgs.User") (width 0.12) (fill none) (tstamp 32a2f93b-16df-4770-bc80-527fdb2ae15f))
|
||||
(fp_rect (start -3.350197 -10.849813) (end -5.128197 -8.182813) (layer "Dwgs.User") (width 0.12) (fill none) (tstamp 4f5c185a-e11b-4d82-a8bc-b9689c9c633b))
|
||||
(fp_rect (start 3.350197 -10.849813) (end 5.128197 -8.182813) (layer "Dwgs.User") (width 0.12) (fill none) (tstamp 5b77bfad-fdd5-4e7d-86ed-ad21fd1ee4e0))
|
||||
(fp_rect (start -5.285811 -6.785813) (end -3.507811 -4.118813) (layer "Dwgs.User") (width 0.12) (fill none) (tstamp 6a787b26-86fe-4c4f-b92f-6381c95ee933))
|
||||
(fp_rect (start 8.89 10.5) (end -8.89 -10.5) (layer "Dwgs.User") (width 0.12) (fill none) (tstamp 73cb09ad-e380-49f3-bc9d-038b1104bc93))
|
||||
(fp_rect (start -8.89 10.5) (end 8.89 -10.5) (layer "Dwgs.User") (width 0.12) (fill none) (tstamp 98155800-78e7-48e2-b416-a5948d22b132))
|
||||
(fp_rect (start -3.507811 -8.182813) (end -5.285811 -10.849813) (layer "Dwgs.User") (width 0.12) (fill none) (tstamp d6707dd1-1c60-4d7e-8bf8-d81571e173bf))
|
||||
(fp_rect (start 5.285811 -6.785813) (end 3.507811 -4.118813) (layer "Dwgs.User") (width 0.12) (fill none) (tstamp e701a39e-8bd3-440b-8d4a-26c336209834))
|
||||
|
||||
(fp_rect (start -8.89 10.5) (end 8.89 -10.5)
|
||||
(stroke (width 0.12) (type solid)) (fill none) (layer "Dwgs.User") (tstamp 98155800-78e7-48e2-b416-a5948d22b132))
|
||||
(fp_rect (start -5.285811 -6.785813) (end -3.507811 -4.118813)
|
||||
(stroke (width 0.12) (type solid)) (fill none) (layer "Dwgs.User") (tstamp 6a787b26-86fe-4c4f-b92f-6381c95ee933))
|
||||
(fp_rect (start -3.507811 -8.182813) (end -5.285811 -10.849813)
|
||||
(stroke (width 0.12) (type solid)) (fill none) (layer "Dwgs.User") (tstamp d6707dd1-1c60-4d7e-8bf8-d81571e173bf))
|
||||
(fp_rect (start -3.350197 -10.849813) (end -5.128197 -8.182813)
|
||||
(stroke (width 0.12) (type solid)) (fill none) (layer "Dwgs.User") (tstamp 4f5c185a-e11b-4d82-a8bc-b9689c9c633b))
|
||||
(fp_rect (start -3.350197 -6.785813) (end -5.128197 -4.118813)
|
||||
(stroke (width 0.12) (type solid)) (fill none) (layer "Dwgs.User") (tstamp 06bccb0b-2f4b-4092-834b-3871294199da))
|
||||
(fp_rect (start 3.350197 -10.849813) (end 5.128197 -8.182813)
|
||||
(stroke (width 0.12) (type solid)) (fill none) (layer "Dwgs.User") (tstamp 5b77bfad-fdd5-4e7d-86ed-ad21fd1ee4e0))
|
||||
(fp_rect (start 3.350197 -6.785813) (end 5.128197 -4.118813)
|
||||
(stroke (width 0.12) (type solid)) (fill none) (layer "Dwgs.User") (tstamp 2415f537-fa6d-4c04-bd97-00b9f7ab939d))
|
||||
(fp_rect (start 3.507811 -8.182813) (end 5.285811 -10.849813)
|
||||
(stroke (width 0.12) (type solid)) (fill none) (layer "Dwgs.User") (tstamp 32a2f93b-16df-4770-bc80-527fdb2ae15f))
|
||||
(fp_rect (start 5.285811 -6.785813) (end 3.507811 -4.118813)
|
||||
(stroke (width 0.12) (type solid)) (fill none) (layer "Dwgs.User") (tstamp e701a39e-8bd3-440b-8d4a-26c336209834))
|
||||
(fp_rect (start 8.89 10.5) (end -8.89 -10.5)
|
||||
(stroke (width 0.12) (type solid)) (fill none) (layer "Dwgs.User") (tstamp 73cb09ad-e380-49f3-bc9d-038b1104bc93))
|
||||
(fp_rect (start -4.75 -0.25) (end -2.35 1.25)
|
||||
(stroke (width 0.05) (type default)) (fill none) (layer "Edge.Cuts") (tstamp 724d0c56-5476-429f-ac61-6c9856d610a8))
|
||||
(fp_rect (start 2.35 -0.25) (end 4.75 1.25)
|
||||
(stroke (width 0.05) (type default)) (fill none) (layer "Edge.Cuts") (tstamp 2d16504a-3eb6-4b73-a511-2febd5a0fc1f))
|
||||
|
||||
(pad "1" smd oval (at 8.56996 -7.62 180) (size 2.75 1.8) (drill (offset 0.475 0)) (layers "B.Cu" "B.Paste" "B.Mask") ${p.D0.str})
|
||||
(pad "1" smd oval (at -8.56996 -7.62 180) (size 2.75 1.8) (drill (offset -0.475 0)) (layers "F.Cu" "F.Paste" "F.Mask") ${p.D0.str})
|
||||
(pad "2" smd oval (at -8.56996 -5.08 180) (size 2.75 1.8) (drill (offset -0.475 0)) (layers "F.Cu" "F.Paste" "F.Mask") ${p.D1.str})
|
||||
(pad "2" smd oval (at 8.56996 -5.08 180) (size 2.75 1.8) (drill (offset 0.475 0)) (layers "B.Cu" "B.Paste" "B.Mask") ${p.D1.str})
|
||||
(pad "3" smd oval (at -8.56996 -2.54 180) (size 2.75 1.8) (drill (offset -0.475 0)) (layers "F.Cu" "F.Paste" "F.Mask") ${p.D2.str})
|
||||
(pad "3" smd oval (at 8.56996 -2.54 180) (size 2.75 1.8) (drill (offset 0.475 0)) (layers "B.Cu" "B.Paste" "B.Mask") ${p.D2.str})
|
||||
(pad "4" smd oval (at 8.56996 0 180) (size 2.75 1.8) (drill (offset 0.475 0)) (layers "B.Cu" "B.Paste" "B.Mask") ${p.D3.str})
|
||||
(pad "4" smd oval (at -8.56996 0 180) (size 2.75 1.8) (drill (offset -0.475 0)) (layers "F.Cu" "F.Paste" "F.Mask") ${p.D3.str})
|
||||
(pad "5" smd oval (at -8.56996 2.54 180) (size 2.75 1.8) (drill (offset -0.475 0)) (layers "F.Cu" "F.Paste" "F.Mask") ${p.D4.str})
|
||||
(pad "5" smd oval (at 8.56996 2.54 180) (size 2.75 1.8) (drill (offset 0.475 0)) (layers "B.Cu" "B.Paste" "B.Mask") ${p.D4.str})
|
||||
(pad "6" smd oval (at 8.56996 5.08 180) (size 2.75 1.8) (drill (offset 0.475 0)) (layers "B.Cu" "B.Paste" "B.Mask") ${p.D5.str})
|
||||
(pad "6" smd oval (at -8.56996 5.08 180) (size 2.75 1.8) (drill (offset -0.475 0)) (layers "F.Cu" "F.Paste" "F.Mask") ${p.D5.str})
|
||||
(pad "7" smd oval (at 8.56996 7.62 180) (size 2.75 1.8) (drill (offset 0.475 0)) (layers "B.Cu" "B.Paste" "B.Mask") ${p.D6.str})
|
||||
(pad "7" smd oval (at -8.56996 7.62 180) (size 2.75 1.8) (drill (offset -0.475 0)) (layers "F.Cu" "F.Paste" "F.Mask") ${p.D6.str})
|
||||
(pad "8" smd oval (at 8.56996 7.62) (size 2.75 1.8) (drill (offset -0.475 0)) (layers "F.Cu" "F.Paste" "F.Mask") ${p.D7.str})
|
||||
(pad "8" smd oval (at -8.56996 7.62) (size 2.75 1.8) (drill (offset 0.475 0)) (layers "B.Cu" "B.Paste" "B.Mask") ${p.D7.str})
|
||||
(pad "9" smd oval (at -8.56996 5.08) (size 2.75 1.8) (drill (offset 0.475 0)) (layers "B.Cu" "B.Paste" "B.Mask") ${p.D8.str})
|
||||
(pad "9" smd oval (at 8.56996 5.08) (size 2.75 1.8) (drill (offset -0.475 0)) (layers "F.Cu" "F.Paste" "F.Mask") ${p.D8.str})
|
||||
(pad "10" smd oval (at -8.56996 2.54) (size 2.75 1.8) (drill (offset 0.475 0)) (layers "B.Cu" "B.Paste" "B.Mask") ${p.D9.str})
|
||||
(pad "10" smd oval (at 8.56996 2.54) (size 2.75 1.8) (drill (offset -0.475 0)) (layers "F.Cu" "F.Paste" "F.Mask") ${p.D9.str})
|
||||
(pad "11" smd oval (at 8.56996 0) (size 2.75 1.8) (drill (offset -0.475 0)) (layers "F.Cu" "F.Paste" "F.Mask") ${p.D10.str})
|
||||
(pad "11" smd oval (at -8.56996 0) (size 2.75 1.8) (drill (offset 0.475 0)) (layers "B.Cu" "B.Paste" "B.Mask") ${p.D10.str})
|
||||
(pad "12" smd oval (at -8.56996 -2.54) (size 2.75 1.8) (drill (offset 0.475 0)) (layers "B.Cu" "B.Paste" "B.Mask") ${p._3V3.str})
|
||||
(pad "12" smd oval (at 8.56996 -2.54) (size 2.75 1.8) (drill (offset -0.475 0)) (layers "F.Cu" "F.Paste" "F.Mask") ${p._3V3.str})
|
||||
(pad "13" smd oval (at 8.56996 -5.08) (size 2.75 1.8) (drill (offset -0.475 0)) (layers "F.Cu" "F.Paste" "F.Mask") ${p.GND.str})
|
||||
(pad "13" smd oval (at -8.56996 -5.08) (size 2.75 1.8) (drill (offset 0.475 0)) (layers "B.Cu" "B.Paste" "B.Mask") ${p.GND.str})
|
||||
(pad "14" smd oval (at -8.56996 -7.62) (size 2.75 1.8) (drill (offset 0.475 0)) (layers "B.Cu" "B.Paste" "B.Mask") ${p._5V.str})
|
||||
(pad "14" smd oval (at 8.56996 -7.62) (size 2.75 1.8) (drill (offset -0.475 0)) (layers "F.Cu" "F.Paste" "F.Mask") ${p._5V.str})
|
||||
(pad "19" thru_hole circle (at 4.445 -0.317 180) (size 1.397 1.397) (drill 1.016) (property pad_prop_castellated) (layers *.Cu *.Mask) ${p.BATP.str})
|
||||
(pad "19" thru_hole circle (at -4.445 -0.317 180) (size 1.397 1.397) (drill 1.016) (property pad_prop_castellated) (layers *.Cu *.Mask) ${p.BATP.str})
|
||||
)
|
||||
`
|
||||
}
|
||||
|
||||
|
||||
// (fp_line (start -1.27 -2.984) (end 1.27 -2.984) (layer "Edge.Cuts") (width 0.12) (tstamp 2dd9a5be-3aa9-4cf6-850b-b3df04cedb00))
|
||||
// (fp_line (start -1.778 -6.032) (end -1.778 -3.492) (layer "Edge.Cuts") (width 0.12) (tstamp 56ff2288-13d4-4098-a5c7-84a24b2613d1))
|
||||
// (fp_line (start 4.953 -0.317) (end 4.953 2.223) (layer "Edge.Cuts") (width 0.12) (tstamp 5b55646c-afd9-4127-85d7-7d899753820b))
|
||||
// (fp_line (start -2.921 2.731) (end -4.445 2.731) (layer "Edge.Cuts") (width 0.12) (tstamp 5d82a0b1-5c8e-42d0-8222-7c4b7e42e518))
|
||||
// (fp_line (start 2.921 2.731) (end 4.445 2.731) (layer "Edge.Cuts") (width 0.12) (tstamp 77da69f1-4a7e-4daf-b100-27fb75871e8c))
|
||||
// (fp_line (start -2.921 -0.317) (end -4.953 -0.317) (layer "Edge.Cuts") (width 0.12) (tstamp 836c1b72-6495-4f81-a125-58f0f7d787c2))
|
||||
// (fp_line (start -4.953 -0.317) (end -4.953 2.223) (layer "Edge.Cuts") (width 0.12) (tstamp b0c1f62a-b351-48b8-ac88-59c1c4ffa2ff))
|
||||
// (fp_line (start 2.413 0.191) (end 2.413 2.223) (layer "Edge.Cuts") (width 0.12) (tstamp c9549976-7e08-4d60-8899-3ba07e9939f9))
|
||||
// (fp_line (start 2.921 -0.317) (end 4.953 -0.317) (layer "Edge.Cuts") (width 0.12) (tstamp e48c2411-8cec-4a56-a964-fc311cc46655))
|
||||
// (fp_line (start -2.413 0.191) (end -2.413 2.223) (layer "Edge.Cuts") (width 0.12) (tstamp ec620b77-8919-4285-a6c0-f21b0acac14b))
|
||||
// (fp_line (start 1.778 -6.032) (end 1.778 -3.492) (layer "Edge.Cuts") (width 0.12) (tstamp f930fa91-6adf-4e04-b42b-e0932fc06543))
|
||||
// (fp_line (start -1.778 -6.032) (end 1.778 -6.032) (layer "Edge.Cuts") (width 0.12) (tstamp fb07492c-d4ca-4a78-b92a-c3b14ed44b3f))
|
||||
// (fp_arc (start 1.778 -3.492) (mid 1.62921 -3.13279) (end 1.27 -2.984) (layer "Edge.Cuts") (width 0.12) (tstamp 2e7f3dd4-50ff-427a-80eb-8563e69a085c))
|
||||
// (fp_arc (start 2.921 2.731) (mid 2.56179 2.58221) (end 2.413 2.223) (layer "Edge.Cuts") (width 0.12) (tstamp 3ea03728-7a77-4313-bf8a-27a007c9d6a6))
|
||||
// (fp_arc (start -2.921 -0.317) (mid -2.56179 -0.16821) (end -2.413 0.191) (layer "Edge.Cuts") (width 0.12) (tstamp 65fd9534-1b91-42a6-8ecd-7a42d8ae4ade))
|
||||
// (fp_arc (start -4.445 2.731) (mid -4.80421 2.58221) (end -4.953 2.223) (layer "Edge.Cuts") (width 0.12) (tstamp 70852beb-7102-4701-922b-9248dc6321b9))
|
||||
// (fp_arc (start 2.413 0.191) (mid 2.56179 -0.16821) (end 2.921 -0.317) (layer "Edge.Cuts") (width 0.12) (tstamp 86bba780-a183-42d2-86e6-b1ca627942a1))
|
||||
// (fp_arc (start -1.27 -2.984) (mid -1.62921 -3.13279) (end -1.778 -3.492) (layer "Edge.Cuts") (width 0.12) (tstamp 888c6fdf-c198-440a-97af-035b863dc875))
|
||||
// (fp_arc (start -2.413 2.223) (mid -2.56179 2.58221) (end -2.921 2.731) (layer "Edge.Cuts") (width 0.12) (tstamp a8e78b6b-5175-49a4-b7f2-c08b88186745))
|
||||
// (fp_arc (start 4.953 2.223) (mid 4.80421 2.58221) (end 4.445 2.731) (layer "Edge.Cuts") (width 0.12) (tstamp a99fd9b5-8940-4c26-9884-c49137a564b7))
|
||||
544
ergogen/output/outlines/board.dxf
Normal file
544
ergogen/output/outlines/board.dxf
Normal file
|
|
@ -0,0 +1,544 @@
|
|||
0
|
||||
SECTION
|
||||
2
|
||||
HEADER
|
||||
9
|
||||
$INSUNITS
|
||||
70
|
||||
4
|
||||
0
|
||||
ENDSEC
|
||||
0
|
||||
SECTION
|
||||
2
|
||||
TABLES
|
||||
0
|
||||
TABLE
|
||||
2
|
||||
LTYPE
|
||||
0
|
||||
LTYPE
|
||||
72
|
||||
65
|
||||
70
|
||||
64
|
||||
2
|
||||
CONTINUOUS
|
||||
3
|
||||
______
|
||||
73
|
||||
0
|
||||
40
|
||||
0
|
||||
0
|
||||
ENDTAB
|
||||
0
|
||||
TABLE
|
||||
2
|
||||
LAYER
|
||||
0
|
||||
ENDTAB
|
||||
0
|
||||
ENDSEC
|
||||
0
|
||||
SECTION
|
||||
2
|
||||
ENTITIES
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
159
|
||||
20
|
||||
-161.5
|
||||
11
|
||||
159
|
||||
21
|
||||
-127.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
161
|
||||
20
|
||||
-125.5
|
||||
11
|
||||
175
|
||||
21
|
||||
-125.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
177
|
||||
20
|
||||
-123.5
|
||||
11
|
||||
177
|
||||
21
|
||||
-122.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
179
|
||||
20
|
||||
-120.5
|
||||
11
|
||||
193
|
||||
21
|
||||
-120.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
195
|
||||
20
|
||||
-118.5
|
||||
11
|
||||
195
|
||||
21
|
||||
-112.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
197
|
||||
20
|
||||
-110.5
|
||||
11
|
||||
211
|
||||
21
|
||||
-110.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
213
|
||||
20
|
||||
-108.5
|
||||
11
|
||||
213
|
||||
21
|
||||
-105.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
215
|
||||
20
|
||||
-103.5
|
||||
11
|
||||
233
|
||||
21
|
||||
-103.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
235
|
||||
20
|
||||
-105.5
|
||||
11
|
||||
235
|
||||
21
|
||||
-108.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
237
|
||||
20
|
||||
-110.5
|
||||
11
|
||||
288.597893
|
||||
21
|
||||
-110.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
290.5978919
|
||||
20
|
||||
-112.502106
|
||||
11
|
||||
290.5272107
|
||||
21
|
||||
-179.6281605
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
290.2592626
|
||||
20
|
||||
-180.6260545
|
||||
11
|
||||
281.5266476
|
||||
21
|
||||
-195.7513873
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
278.7945968
|
||||
20
|
||||
-196.4834381
|
||||
11
|
||||
263.4291532
|
||||
21
|
||||
-187.612195
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
262.957784
|
||||
20
|
||||
-187.4153732
|
||||
11
|
||||
245.1085996
|
||||
21
|
||||
-182.5235891
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
244.5751124
|
||||
20
|
||||
-182.4524676
|
||||
11
|
||||
225.248676
|
||||
21
|
||||
-182.4993962
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
224.7587484
|
||||
20
|
||||
-182.4396871
|
||||
11
|
||||
197.2388599
|
||||
21
|
||||
-175.559715
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
196.7537887
|
||||
20
|
||||
-175.5
|
||||
11
|
||||
179
|
||||
21
|
||||
-175.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
177
|
||||
20
|
||||
-173.5
|
||||
11
|
||||
177
|
||||
21
|
||||
-165.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
175
|
||||
20
|
||||
-163.5
|
||||
11
|
||||
161
|
||||
21
|
||||
-163.5
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
161
|
||||
20
|
||||
-127.5
|
||||
40
|
||||
2
|
||||
50
|
||||
90
|
||||
51
|
||||
180
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
175
|
||||
20
|
||||
-123.5
|
||||
40
|
||||
2
|
||||
50
|
||||
270
|
||||
51
|
||||
0
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
179
|
||||
20
|
||||
-122.5
|
||||
40
|
||||
2
|
||||
50
|
||||
90
|
||||
51
|
||||
180
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
193
|
||||
20
|
||||
-118.5
|
||||
40
|
||||
2
|
||||
50
|
||||
270
|
||||
51
|
||||
0
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
197
|
||||
20
|
||||
-112.5
|
||||
40
|
||||
2
|
||||
50
|
||||
90
|
||||
51
|
||||
180
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
211
|
||||
20
|
||||
-108.5
|
||||
40
|
||||
2
|
||||
50
|
||||
270
|
||||
51
|
||||
0
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
215
|
||||
20
|
||||
-105.5
|
||||
40
|
||||
2
|
||||
50
|
||||
90
|
||||
51
|
||||
180
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
233
|
||||
20
|
||||
-105.5
|
||||
40
|
||||
2
|
||||
50
|
||||
0
|
||||
51
|
||||
90
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
237
|
||||
20
|
||||
-108.5
|
||||
40
|
||||
2
|
||||
50
|
||||
180
|
||||
51
|
||||
270
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
288.597893
|
||||
20
|
||||
-112.5
|
||||
40
|
||||
2
|
||||
50
|
||||
359.9396675
|
||||
51
|
||||
90
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
288.5272118
|
||||
20
|
||||
-179.6260545
|
||||
40
|
||||
2
|
||||
50
|
||||
329.9999999
|
||||
51
|
||||
359.9396675
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
279.7945968
|
||||
20
|
||||
-194.7513873
|
||||
40
|
||||
2
|
||||
50
|
||||
239.9999999
|
||||
51
|
||||
329.9999999
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
262.4291532
|
||||
20
|
||||
-189.3442458
|
||||
40
|
||||
2
|
||||
50
|
||||
59.9999999
|
||||
51
|
||||
74.6737223
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
244.5799688
|
||||
20
|
||||
-184.4524617
|
||||
40
|
||||
2
|
||||
50
|
||||
74.6737223
|
||||
51
|
||||
90.1391257
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
225.2438196
|
||||
20
|
||||
-180.4994021
|
||||
40
|
||||
2
|
||||
50
|
||||
255.9637579
|
||||
51
|
||||
270.1391257
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
196.7537887
|
||||
20
|
||||
-177.5
|
||||
40
|
||||
2
|
||||
50
|
||||
75.9637579
|
||||
51
|
||||
90
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
179
|
||||
20
|
||||
-173.5
|
||||
40
|
||||
2
|
||||
50
|
||||
180
|
||||
51
|
||||
270
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
175
|
||||
20
|
||||
-165.5
|
||||
40
|
||||
2
|
||||
50
|
||||
0
|
||||
51
|
||||
90
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
161
|
||||
20
|
||||
-161.5
|
||||
40
|
||||
2
|
||||
50
|
||||
180
|
||||
51
|
||||
270
|
||||
0
|
||||
ENDSEC
|
||||
0
|
||||
EOF
|
||||
928
ergogen/output/outlines/combined.dxf
Normal file
928
ergogen/output/outlines/combined.dxf
Normal file
|
|
@ -0,0 +1,928 @@
|
|||
0
|
||||
SECTION
|
||||
2
|
||||
HEADER
|
||||
9
|
||||
$INSUNITS
|
||||
70
|
||||
4
|
||||
0
|
||||
ENDSEC
|
||||
0
|
||||
SECTION
|
||||
2
|
||||
TABLES
|
||||
0
|
||||
TABLE
|
||||
2
|
||||
LTYPE
|
||||
0
|
||||
LTYPE
|
||||
72
|
||||
65
|
||||
70
|
||||
64
|
||||
2
|
||||
CONTINUOUS
|
||||
3
|
||||
______
|
||||
73
|
||||
0
|
||||
40
|
||||
0
|
||||
0
|
||||
ENDTAB
|
||||
0
|
||||
TABLE
|
||||
2
|
||||
LAYER
|
||||
0
|
||||
ENDTAB
|
||||
0
|
||||
ENDSEC
|
||||
0
|
||||
SECTION
|
||||
2
|
||||
ENTITIES
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
159
|
||||
20
|
||||
-161.5
|
||||
11
|
||||
159
|
||||
21
|
||||
-127.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
161
|
||||
20
|
||||
-125.5
|
||||
11
|
||||
175
|
||||
21
|
||||
-125.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
177
|
||||
20
|
||||
-123.5
|
||||
11
|
||||
177
|
||||
21
|
||||
-122.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
179
|
||||
20
|
||||
-120.5
|
||||
11
|
||||
193
|
||||
21
|
||||
-120.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
195
|
||||
20
|
||||
-118.5
|
||||
11
|
||||
195
|
||||
21
|
||||
-112.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
197
|
||||
20
|
||||
-110.5
|
||||
11
|
||||
211
|
||||
21
|
||||
-110.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
213
|
||||
20
|
||||
-108.5
|
||||
11
|
||||
213
|
||||
21
|
||||
-105.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
215
|
||||
20
|
||||
-103.5
|
||||
11
|
||||
233
|
||||
21
|
||||
-103.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
235
|
||||
20
|
||||
-105.5
|
||||
11
|
||||
235
|
||||
21
|
||||
-108.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
237
|
||||
20
|
||||
-110.5
|
||||
11
|
||||
288.597893
|
||||
21
|
||||
-110.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
290.5978919
|
||||
20
|
||||
-112.502106
|
||||
11
|
||||
290.5272107
|
||||
21
|
||||
-179.6281605
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
290.2592626
|
||||
20
|
||||
-180.6260545
|
||||
11
|
||||
281.5266476
|
||||
21
|
||||
-195.7513873
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
278.7945968
|
||||
20
|
||||
-196.4834381
|
||||
11
|
||||
263.4291532
|
||||
21
|
||||
-187.612195
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
262.957784
|
||||
20
|
||||
-187.4153732
|
||||
11
|
||||
245.1085996
|
||||
21
|
||||
-182.5235891
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
244.5751124
|
||||
20
|
||||
-182.4524676
|
||||
11
|
||||
225.248676
|
||||
21
|
||||
-182.4993962
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
224.7587484
|
||||
20
|
||||
-182.4396871
|
||||
11
|
||||
197.2388599
|
||||
21
|
||||
-175.559715
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
196.7537887
|
||||
20
|
||||
-175.5
|
||||
11
|
||||
179
|
||||
21
|
||||
-175.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
177
|
||||
20
|
||||
-173.5
|
||||
11
|
||||
177
|
||||
21
|
||||
-165.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
175
|
||||
20
|
||||
-163.5
|
||||
11
|
||||
161
|
||||
21
|
||||
-163.5
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
161
|
||||
20
|
||||
-127.5
|
||||
40
|
||||
2
|
||||
50
|
||||
90
|
||||
51
|
||||
180
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
175
|
||||
20
|
||||
-123.5
|
||||
40
|
||||
2
|
||||
50
|
||||
270
|
||||
51
|
||||
0
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
179
|
||||
20
|
||||
-122.5
|
||||
40
|
||||
2
|
||||
50
|
||||
90
|
||||
51
|
||||
180
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
193
|
||||
20
|
||||
-118.5
|
||||
40
|
||||
2
|
||||
50
|
||||
270
|
||||
51
|
||||
0
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
197
|
||||
20
|
||||
-112.5
|
||||
40
|
||||
2
|
||||
50
|
||||
90
|
||||
51
|
||||
180
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
211
|
||||
20
|
||||
-108.5
|
||||
40
|
||||
2
|
||||
50
|
||||
270
|
||||
51
|
||||
0
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
215
|
||||
20
|
||||
-105.5
|
||||
40
|
||||
2
|
||||
50
|
||||
90
|
||||
51
|
||||
180
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
233
|
||||
20
|
||||
-105.5
|
||||
40
|
||||
2
|
||||
50
|
||||
0
|
||||
51
|
||||
90
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
237
|
||||
20
|
||||
-108.5
|
||||
40
|
||||
2
|
||||
50
|
||||
180
|
||||
51
|
||||
270
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
288.597893
|
||||
20
|
||||
-112.5
|
||||
40
|
||||
2
|
||||
50
|
||||
359.9396675
|
||||
51
|
||||
90
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
288.5272118
|
||||
20
|
||||
-179.6260545
|
||||
40
|
||||
2
|
||||
50
|
||||
329.9999999
|
||||
51
|
||||
359.9396675
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
279.7945968
|
||||
20
|
||||
-194.7513873
|
||||
40
|
||||
2
|
||||
50
|
||||
239.9999999
|
||||
51
|
||||
329.9999999
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
262.4291532
|
||||
20
|
||||
-189.3442458
|
||||
40
|
||||
2
|
||||
50
|
||||
59.9999999
|
||||
51
|
||||
74.6737223
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
244.5799688
|
||||
20
|
||||
-184.4524617
|
||||
40
|
||||
2
|
||||
50
|
||||
74.6737223
|
||||
51
|
||||
90.1391257
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
225.2438196
|
||||
20
|
||||
-180.4994021
|
||||
40
|
||||
2
|
||||
50
|
||||
255.9637579
|
||||
51
|
||||
270.1391257
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
196.7537887
|
||||
20
|
||||
-177.5
|
||||
40
|
||||
2
|
||||
50
|
||||
75.9637579
|
||||
51
|
||||
90
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
179
|
||||
20
|
||||
-173.5
|
||||
40
|
||||
2
|
||||
50
|
||||
180
|
||||
51
|
||||
270
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
175
|
||||
20
|
||||
-165.5
|
||||
40
|
||||
2
|
||||
50
|
||||
0
|
||||
51
|
||||
90
|
||||
0
|
||||
ARC
|
||||
8
|
||||
0
|
||||
10
|
||||
161
|
||||
20
|
||||
-161.5
|
||||
40
|
||||
2
|
||||
50
|
||||
180
|
||||
51
|
||||
270
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
161
|
||||
20
|
||||
-161.5
|
||||
11
|
||||
179
|
||||
21
|
||||
-161.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
161
|
||||
20
|
||||
-161.5
|
||||
11
|
||||
161
|
||||
21
|
||||
-127.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
179
|
||||
20
|
||||
-127.5
|
||||
11
|
||||
161
|
||||
21
|
||||
-127.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
179
|
||||
20
|
||||
-173.5
|
||||
11
|
||||
197
|
||||
21
|
||||
-173.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
197
|
||||
20
|
||||
-173.5
|
||||
11
|
||||
197
|
||||
21
|
||||
-163.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
179
|
||||
20
|
||||
-161.5
|
||||
11
|
||||
179
|
||||
21
|
||||
-173.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
197
|
||||
20
|
||||
-122.5
|
||||
11
|
||||
179
|
||||
21
|
||||
-122.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
179
|
||||
20
|
||||
-122.5
|
||||
11
|
||||
179
|
||||
21
|
||||
-127.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
197
|
||||
20
|
||||
-163.5
|
||||
11
|
||||
215
|
||||
21
|
||||
-163.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
215
|
||||
20
|
||||
-163.5
|
||||
11
|
||||
215
|
||||
21
|
||||
-156.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
215
|
||||
20
|
||||
-112.5
|
||||
11
|
||||
197
|
||||
21
|
||||
-112.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
197
|
||||
20
|
||||
-112.5
|
||||
11
|
||||
197
|
||||
21
|
||||
-122.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
215
|
||||
20
|
||||
-156.5
|
||||
11
|
||||
233
|
||||
21
|
||||
-156.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
233
|
||||
20
|
||||
-112.5
|
||||
11
|
||||
233
|
||||
21
|
||||
-105.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
233
|
||||
20
|
||||
-105.5
|
||||
11
|
||||
215
|
||||
21
|
||||
-105.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
215
|
||||
20
|
||||
-105.5
|
||||
11
|
||||
215
|
||||
21
|
||||
-112.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
245
|
||||
20
|
||||
-163.5
|
||||
11
|
||||
269
|
||||
21
|
||||
-163.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
233
|
||||
20
|
||||
-156.5
|
||||
11
|
||||
233
|
||||
21
|
||||
-163.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
233
|
||||
20
|
||||
-112.5
|
||||
11
|
||||
269
|
||||
21
|
||||
-112.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
269
|
||||
20
|
||||
-163.5
|
||||
11
|
||||
269
|
||||
21
|
||||
-112.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
227
|
||||
20
|
||||
-180.5
|
||||
11
|
||||
245
|
||||
21
|
||||
-180.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
245
|
||||
20
|
||||
-180.5
|
||||
11
|
||||
245
|
||||
21
|
||||
-163.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
233
|
||||
20
|
||||
-163.5
|
||||
11
|
||||
227
|
||||
21
|
||||
-163.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
227
|
||||
20
|
||||
-163.5
|
||||
11
|
||||
227
|
||||
21
|
||||
-180.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
246.3302486
|
||||
20
|
||||
-180.7787756
|
||||
11
|
||||
263.7169135
|
||||
21
|
||||
-185.4375184
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
263.7169135
|
||||
20
|
||||
-185.4375184
|
||||
11
|
||||
268.1168372
|
||||
21
|
||||
-169.0167794
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
268.1168372
|
||||
20
|
||||
-169.0167794
|
||||
11
|
||||
250.7301723
|
||||
21
|
||||
-164.3580366
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
250.7301723
|
||||
20
|
||||
-164.3580366
|
||||
11
|
||||
246.3302486
|
||||
21
|
||||
-180.7787756
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
264.2061396
|
||||
20
|
||||
-185.7513873
|
||||
11
|
||||
279.7945968
|
||||
21
|
||||
-194.7513873
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
279.7945968
|
||||
20
|
||||
-194.7513873
|
||||
11
|
||||
288.2945968
|
||||
21
|
||||
-180.0289555
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
288.2945968
|
||||
20
|
||||
-180.0289555
|
||||
11
|
||||
272.7061396
|
||||
21
|
||||
-171.0289555
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
272.7061396
|
||||
20
|
||||
-171.0289555
|
||||
11
|
||||
264.2061396
|
||||
21
|
||||
-185.7513873
|
||||
0
|
||||
ENDSEC
|
||||
0
|
||||
EOF
|
||||
434
ergogen/output/outlines/keys.dxf
Normal file
434
ergogen/output/outlines/keys.dxf
Normal file
|
|
@ -0,0 +1,434 @@
|
|||
0
|
||||
SECTION
|
||||
2
|
||||
HEADER
|
||||
9
|
||||
$INSUNITS
|
||||
70
|
||||
4
|
||||
0
|
||||
ENDSEC
|
||||
0
|
||||
SECTION
|
||||
2
|
||||
TABLES
|
||||
0
|
||||
TABLE
|
||||
2
|
||||
LTYPE
|
||||
0
|
||||
LTYPE
|
||||
72
|
||||
65
|
||||
70
|
||||
64
|
||||
2
|
||||
CONTINUOUS
|
||||
3
|
||||
______
|
||||
73
|
||||
0
|
||||
40
|
||||
0
|
||||
0
|
||||
ENDTAB
|
||||
0
|
||||
TABLE
|
||||
2
|
||||
LAYER
|
||||
0
|
||||
ENDTAB
|
||||
0
|
||||
ENDSEC
|
||||
0
|
||||
SECTION
|
||||
2
|
||||
ENTITIES
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
161
|
||||
20
|
||||
-161.5
|
||||
11
|
||||
179
|
||||
21
|
||||
-161.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
161
|
||||
20
|
||||
-161.5
|
||||
11
|
||||
161
|
||||
21
|
||||
-127.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
179
|
||||
20
|
||||
-127.5
|
||||
11
|
||||
161
|
||||
21
|
||||
-127.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
179
|
||||
20
|
||||
-173.5
|
||||
11
|
||||
197
|
||||
21
|
||||
-173.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
197
|
||||
20
|
||||
-173.5
|
||||
11
|
||||
197
|
||||
21
|
||||
-163.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
179
|
||||
20
|
||||
-161.5
|
||||
11
|
||||
179
|
||||
21
|
||||
-173.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
197
|
||||
20
|
||||
-122.5
|
||||
11
|
||||
179
|
||||
21
|
||||
-122.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
179
|
||||
20
|
||||
-122.5
|
||||
11
|
||||
179
|
||||
21
|
||||
-127.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
197
|
||||
20
|
||||
-163.5
|
||||
11
|
||||
215
|
||||
21
|
||||
-163.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
215
|
||||
20
|
||||
-163.5
|
||||
11
|
||||
215
|
||||
21
|
||||
-156.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
215
|
||||
20
|
||||
-112.5
|
||||
11
|
||||
197
|
||||
21
|
||||
-112.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
197
|
||||
20
|
||||
-112.5
|
||||
11
|
||||
197
|
||||
21
|
||||
-122.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
215
|
||||
20
|
||||
-156.5
|
||||
11
|
||||
233
|
||||
21
|
||||
-156.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
233
|
||||
20
|
||||
-112.5
|
||||
11
|
||||
233
|
||||
21
|
||||
-105.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
233
|
||||
20
|
||||
-105.5
|
||||
11
|
||||
215
|
||||
21
|
||||
-105.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
215
|
||||
20
|
||||
-105.5
|
||||
11
|
||||
215
|
||||
21
|
||||
-112.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
245
|
||||
20
|
||||
-163.5
|
||||
11
|
||||
269
|
||||
21
|
||||
-163.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
233
|
||||
20
|
||||
-156.5
|
||||
11
|
||||
233
|
||||
21
|
||||
-163.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
233
|
||||
20
|
||||
-112.5
|
||||
11
|
||||
269
|
||||
21
|
||||
-112.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
269
|
||||
20
|
||||
-163.5
|
||||
11
|
||||
269
|
||||
21
|
||||
-112.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
227
|
||||
20
|
||||
-180.5
|
||||
11
|
||||
245
|
||||
21
|
||||
-180.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
245
|
||||
20
|
||||
-180.5
|
||||
11
|
||||
245
|
||||
21
|
||||
-163.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
233
|
||||
20
|
||||
-163.5
|
||||
11
|
||||
227
|
||||
21
|
||||
-163.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
227
|
||||
20
|
||||
-163.5
|
||||
11
|
||||
227
|
||||
21
|
||||
-180.5
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
246.3302486
|
||||
20
|
||||
-180.7787756
|
||||
11
|
||||
263.7169135
|
||||
21
|
||||
-185.4375184
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
263.7169135
|
||||
20
|
||||
-185.4375184
|
||||
11
|
||||
268.1168372
|
||||
21
|
||||
-169.0167794
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
268.1168372
|
||||
20
|
||||
-169.0167794
|
||||
11
|
||||
250.7301723
|
||||
21
|
||||
-164.3580366
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
250.7301723
|
||||
20
|
||||
-164.3580366
|
||||
11
|
||||
246.3302486
|
||||
21
|
||||
-180.7787756
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
264.2061396
|
||||
20
|
||||
-185.7513873
|
||||
11
|
||||
279.7945968
|
||||
21
|
||||
-194.7513873
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
279.7945968
|
||||
20
|
||||
-194.7513873
|
||||
11
|
||||
288.2945968
|
||||
21
|
||||
-180.0289555
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
288.2945968
|
||||
20
|
||||
-180.0289555
|
||||
11
|
||||
272.7061396
|
||||
21
|
||||
-171.0289555
|
||||
0
|
||||
LINE
|
||||
8
|
||||
0
|
||||
10
|
||||
272.7061396
|
||||
20
|
||||
-171.0289555
|
||||
11
|
||||
264.2061396
|
||||
21
|
||||
-185.7513873
|
||||
0
|
||||
ENDSEC
|
||||
0
|
||||
EOF
|
||||
2265
ergogen/output/pcbs/pcb.kicad_pcb
Normal file
2265
ergogen/output/pcbs/pcb.kicad_pcb
Normal file
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue