kpt_lib 0.1.1

Keyboard plate prototyping
Documentation
# Keyboard plate prototyping (lib)


* For usage look at either the [cli]http://github.com/elasticrash/keyboard/tree/master/cli and/or the [ui]http://github.com/elasticrash/keyboard/tree/master/ui examples
* [output examples]http://github.com/elasticrash/keyboard/tree/master/samples
* configuration examples 
    * [1. 60%]http://github.com/elasticrash/keyboard/blob/master/generic60.json
    * [2. Ortho]https://github.com/elasticrash/keyboard/blob/master/ortho40.json
    * [3. example design]https://github.com/elasticrash/keyboard/blob/master/tougo.json
    * [4. example design/column stagger]https://github.com/elasticrash/keyboard/blob/master/tougo_cs.json

## How to make your own layout


Layouts are in json format 

basic structure is as follow

```json
{
    "layout": [
        // rows
        [
            //keys
             {
                "size": float //size in units
                "char": string //optional for UI module
                "k_type": bit // 0: hidden (spacer) 1: visible (key)
            },
        ],
        [
        ],
        [
        ],
        [
        ]
    ],
    "options": {
        "plate_height": f32 //how thick the plate needs to be, defaults to 20mm
        "screw_holes": bool // adds m2 sized holes at the edge of the plate
                            // not that useful at the moment, needs to be
                            // moved more in to allow heat inserts to be 
                            // used
        "row": [ // options for the rows (not supported yet)
             
        ],
        "column": [ //options for the colums
            {
                "index": integer // column index (zero based)
                "offset": float // vertical offset (used to achieve vertical stagger)
                                // column needs to be the same key size
                                // rows need to have the same amount keys/spacers
            },
        ]
    }
}
```

## Supported exports


* Dxf
* Ply