GithubHelp home page GithubHelp logo

kb_keycaps_trackpoint's Introduction

Scripts to cut TrackPoint holes into keyboard keycaps

These scripts allow you to generate keycaps with a cutout for a TrackPoint.

Chicago Steno and MBK keycaps with TrackPoint cutout

Printed Keycaps

Currently, Chicago Stenographer and MBK keycaps are supported, but it's trivial to add other models as long as you have the stl files.

The generated STLs are sprued and optimized for printing at JLCPCB:

Sprued keycaps

This repo was inspired by the awesome idea and work of wolfwood's printed-keycap-mods.

However, their code didn't support MBK and is optimized for DIY printing with FDM rather than JLCPCB.

1. Table of Contents

1. Printing / Ordering

1.1. How to download the STLs and which files to use

Go to the releases section and download the STL files.

You can find combined STLs that contain all the variations you might need in the ./combined/ folder.

The published files are generated for choc-spaced boards with a stagger of 2.375 (what the corne uses). You can follow the instructions below to generate keycaps with customized spacing and stagger.

Chicago Stenographer has many different variations of keycaps. To understand which ones to use and what the differences are, check out my fork of those keycaps.

There you will also find the rest of the keycaps needed to print a full set or you can buy a full set from the creator at asymplex.xyz.

MBK keycaps are not really meant to be printed, so you should buy the rest of the keycaps from one of the many vendors that sell them.

1.2. How to order on JLCPCB

  • Upload the STL model
  • Select 3D Technology: MJF (Nylon)
  • Select Material: PA12-HP Nylon
  • Optionally select Surface Finish: Add - Dyeing - Dyed Black to get black keycaps.
    • Without this they will be a "textured gray"
  • Make sure to select the correct Quantity

The two combined sets should cost $5.05.

1.3. How to print them yourself

I have no clue... I don't own a 3D printer and this is my first 3D modeling project.

You can check out wolfwood's printed-keycap-mods as his project is optimized for FDM printing.

You may also find these instructions valuable.

Perhaps you can modify the files here manually.

I would also be happy to accept a PR that generates STLs that are optimized for printing yourself.

2. Using the scripts

2.1. How to generate your own keycaps

  • Install OpenSCAD
  • Set up the dev environment
    • Adjust the Makefile with the path to your OpenSCAD installation
  • Run the keycap generator
    • Run make help to see all available targets
    • Or run make to build everything

You can also open the individual files in the OpenSCAD GUI if you prefer.

2.2. How to fix large STL file sizes

OpenSCAD generates files with very big sizes and JLCPCB only allows files to be up to 80mb.

To fix this Fusion360 (The free version is fine)...

  • Create a new file
    • Do not open the STL directly. That will mess up the units
  • Select the Mesh tab on the top toolbar
  • Select Insert Mesh (first icon)
    • Select the STL file and click Open
    • This will load the model and show a Insert Mesh window
    • Make sure the Unit Type is set to Millimeter
    • Press the OK button
  • Save it to the cloud
  • Use File -> Export to export the file as STL again

The file size should now be under 80 MB.

2.3. How to adjust the stagger

You can adjust the stagger by running make STAGGER=5.5.

2.4. How to adjust the key spacing

By default, keycaps are cut using the choc spacing, but you can change the spacing to mx by running make PROFILE=mx.

You can also specify custom values by running make PROFILE=custom SPREADX=20 SPREADY=22.

But keep in mind that this doesn't change the size of the keycaps. It only changes the distance at which they are placed before cutting.

2.5. How to add a new keycap type

3.5.1. Add the keycap STLs

First, add the keycap STLs to the ./keycaps/ directory.

3.5.2. Figure out the positioning offset of the keycaps

The cutter expects the keycaps to be centered around the origin, but many keycap designers offset the keys slightly.

You can open the files in Fusion 360 or another 3D editor to figure out the offsets.

3.5.3. Create the SCAD file

Then duplicate the src/gen_mbk.scad file. Make sure the file name starts with gen_ or the Makefile won't recognize it.

Adjust the keycap path and add the necessary positional adjustments.

For example, the MBK homing keycap was centered at x: -23 and y: 0. So we moved it to the origin with:

// Keycap array: stl path, translate adjustment, rotation, mirror
mbk_1u_homing = [
    "../keycaps/mbk/mbk_keycap_1u_homing.stl",  // stl path

    [23, 0, 0],  // translate adjustment / movement
    [0, 0, 0],  // rotation
    [0, 0, 0]  // mirroring
];

Check out the OpenSCAD documentation for translate, rotate, and mirror here for more information.

3.5.4. Run the script

Then just run the cutter with make name_of_set or make all.

The name of the target will be the file name of your .scad file but without the gen_ prefix and .scad extension.

For example gen_my_keycap.scad can be run with make my_keycap.

3. Related Resources & Projects

4. License

TLDR:

  • Personal use with attribution
  • Commercial use not allowed

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

CC BY-SA 4.0

kb_keycaps_trackpoint's People

Contributors

infused-kim avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

ssbb herzkoenig

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.