rofl > lol

This commit is contained in:
Leo Batyuk 2021-09-03 18:37:21 +02:00
parent 7e4470bb27
commit 31c9554b0a
2 changed files with 292 additions and 1 deletions

View file

@ -1,6 +1,6 @@
{ {
"scripts": { "scripts": {
"gen": "ergogen lol.yaml --debug" "gen": "ergogen rofl.yaml --debug"
}, },
"dependencies": { "dependencies": {
"ergogen": "github:mrzealot/ergogen" "ergogen": "github:mrzealot/ergogen"

291
rofl.yaml Normal file
View file

@ -0,0 +1,291 @@
units:
kx: cx
ky: cy
px: 2
py: 2
points:
key:
footprints:
choc_hotswap:
type: choc
params:
hotswap: true
reverse: true
keycaps: true
nets:
# from: P1
# to: P2
from: =colrow
to: =column_net
diode:
type: diode
nets:
# from: P3
# to: P4
from: =colrow
to: =row_net
anchor:
shift: [0, -5]
zones:
matrix:
# anchor:
# rotate: 5
key.padding: ky
columns:
pinky:
stagger: 0 ky
spread: kx
key:
column_net: P21
ring:
stagger: 0.7 ky
spread: kx
key:
column_net: P20
middle:
stagger: 0.2 ky
spread: kx
key:
column_net: P19
index:
stagger: -0.2 ky
spread: kx
key:
column_net: P18
inner:
stagger: -0.1 ky
spread: kx
key:
column_net: P15
rows:
bottom:
row_net: P7
home:
row_net: P6
top:
row_net: P5
thumbfan:
anchor:
ref: matrix_inner_bottom
shift: [-1.5 kx, -1 ky]
columns:
near:
spread: kx
rotate: -15
origin: [-0.5 kx, -0.5 ky]
key:
column_net: P19
home:
spread: kx
rotate: -15
origin: [-0.5 kx, -0.5 ky]
key:
column_net: P18
far:
spread: kx
rotate: -15
origin: [-0.5 kx, -0.5 ky]
key:
column_net: P15
rows:
thumb:
row_net: P4
outlines:
exports:
raw:
- type: keys
side: left
size: [kx + px, ky + py]
corner: px
thumbfan_glue:
- type: polygon
points:
- ref: matrix_inner_bottom
shift: [0.5 kx + 0.5px, -0.5 ky + 0.5 py]
- ref: thumbfan_far_thumb
shift: [0.5 kx - 0.5px, 0.5 ky + 0.5 py]
- ref: thumbfan_far_thumb
shift: [0.5 kx - 0.5px, -0.5 ky - 0.5 py]
- ref: thumbfan_near_thumb
shift: [-0.5 kx + 0.5 px, -0.5 ky - 0.5 py]
- ref: matrix_pinky_bottom
shift: [0.5 kx - 0.5 py, -0.5 ky - 0.5 py]
- ref: matrix_pinky_home
- ref: matrix_inner_home
patch_outer:
- type: polygon
points:
- ref: matrix_ring_top
- ref: matrix_ring_bottom
- ref: matrix_pinky_bottom
shift: [-0.5 (kx + px), 0]
- ref: matrix_pinky_top
shift: [-0.5 (kx + px), 0]
patch_inner:
- type: polygon
points:
- ref: matrix_inner_top
shift: [0.5 (kx + px), 0]
- ref: matrix_inner_bottom
shift: [0.5 (kx + px), 0]
- ref: matrix_index_bottom
- ref: matrix_index_top
controller_area:
main:
type: rectangle
anchor:
ref:
- matrix_inner_top
shift: [0 kx, -4.05 ky]
size: [32, 76.5]
corner: px
switches:
main:
type: keys
side: left
size: 14
bound: false
keycaps:
main:
type: keys
side: left
size: [kx, ky]
bound: false
corner: 1
keywell:
main:
type: outline
name: raw
patch_inner:
type: outline
name: patch_inner
operation: add
patch_outer:
type: outline
name: patch_outer
operation: add
thumbfan_glue:
type: outline
name: thumbfan_glue
operation: add
base_outline:
main:
type: outline
name: keywell
controller:
type: outline
name: controller_area
operation: add
screw_holes:
top_left:
type: circle
anchor:
- ref: matrix_ring_home
shift: [-0.5 kx, 0 ky]
radius: 1
bottom_left:
type: circle
anchor:
- ref: matrix_pinky_bottom
shift: [0.5 kx, 0]
radius: 1
top_right:
type: circle
anchor:
- ref: matrix_inner_top
shift: [-0.5 kx, 0]
radius: 1
palm:
type: circle
anchor:
- ref: matrix_index_bottom
shift: [0, -1.06 ky]
radius: 1
thumb:
type: circle
anchor:
- ref: thumbfan_far_thumb
shift: [-0.55 kx, 0]
radius: 1
mounting_holes:
$extends: outlines.exports.screw_holes
top_left:
radius: 1.6
bottom_left:
radius: 1.6
top_right:
radius: 1.6
palm:
radius: 1.6
thumb:
radius: 1.6
bottom_outline:
main:
type: outline
name: base_outline
screw_holes:
type: outline
name: screw_holes
operation: subtract
plate:
main:
type: outline
name: keywell
switches:
type: outline
name: switches
operation: subtract
mounting_holes:
type: outline
# TODO use mounting holes of bigger diameter on PCB
name: screw_holes
operation: subtract
pcb:
main:
type: outline
name: base_outline
mounting_holes:
type: outline
name: mounting_holes
operation: subtract
pcbs:
main:
outlines:
edge:
outline: pcb
layer: Edge.Cuts
# TODO there's a way to add stuff to the silkscreen layer
footprints:
mcu_l:
type: promicro
params:
orientation: up
anchor:
ref:
- matrix_inner_top
shift: [20, -11]
rotate: 270
mcu_r:
type: promicro
params:
orientation: down
anchor:
ref:
- matrix_inner_top
shift: [22.5, -12.25]
rotate: 270
trrs:
type: trrs
anchor:
ref:
- matrix_inner_bottom
shift: [30, -8]
rotate: 270
params:
reverse: true
symmetric: true
nets:
A: P0
B: P0
C: GND
D: VCC