nickcoutsos / dactyl-flatpacked Goto Github PK
View Code? Open in Web Editor NEWA reimagined dactyl using slotted pieces instead of 3D printing.
A reimagined dactyl using slotted pieces instead of 3D printing.
During assembly of the original dactyl-flatpacked I realized that I left too much clearance between the slot cutouts (the OpenSCAD preview renderer doesn't like co-incident faces in difference()
operations so I usually oversize the subtracted geometry a bit and forgot to remove that in the final render) which meant nothing fit together solidly. To ensure all of the pieces where properly aligned for gluing I had some 3D printed jigs I came up with.
Two printed pieces to firmly hold column supports in place and parallel to one another. At some point I also had another jig that matched the interior curve of and column and had protrusions that fit into the switch cutouts to ensure their alignment.
Had I planned ahead I could have designed another such jig to be cut from acrylic. One jig for the finger cluster will work for all of the columns since the cross-support slots are all in the same place. This should be true of the thumb cluster as well but I'd rather double check that than be wrong about the math for a third(fourth?) time.
flimsy handling may break some of the smaller pieces, so an extra 1u key holder or two would be appreciated.
This can be easily arranged. Would this be better as a separate SVG that a user can add on or included in the the "default" template.
laser cut acrylic is expensive, and printing two copies is twice the price of printing one copy. So if you could bring both halves into one svg file and minimise wasted space, this would be a lot cheaper to print an entire keyboard.
The SVG shown in the repo can certainly be used as a cutting template as-is, but it hasn't been optimized. I mainly wanted to illustrate the output of this codebase: 2D geometry.
Optimization is an interesting problem, and not entirely straightforward. I see two types of optimization:
The first kind of speaks for itself. I think the keyboard I built in 2018 cost somewhere shy of 100 CAD to cut, and now that we're entering year three of a pandemic I don't know if acrylic is getting any cheaper. The fewer parts we have to cut, the better. The more optimally we pack those parts, the more we can get out of a single sheet of acrylic. There are complications to this: the service I went to charged for a minimum sized sheet that was already more than I needed for... probably two full keyboards. But different services will have different constraints, and some may even let you supply your own material.
The second one kind of builds on the "cut less stuff if you can" idea and throws in curveballs like making edges of different pieces touch wherever possible so that they share cut lines. This one I can't actually do before rendering the SVG or else OpenSCAD would combine them into one larger path.
Another aspect is customization. I pre-rendered the cutting template for a 6x5 dactyl with the 1.5u + 1u outer column because it was easier to get a cheap set of Ergodox keycaps, but I know that's not for everyone. I don't even use a number row these days.
All this to say, some of the optimization will have to happen on the end user's side. I'm not against implementing some that I can, though I'll be relying heavily on third party libraries (I'm looking at SVGnest so far but that solves problem one, not problem 2).
Just noticed this but it seems to have been an existing issue. The second column of the finger cluster is intersecting with thumb cluster column support and plate. One option would be shifting the thumb cluster over a tiny bit, but because it's a small corner of the finger column support's bottom side it may be possible to solve this by rounding/chamfering and keeping true to the original thumb cluster implementation.
a base that connects each half of the project together would add significant cost, but would greatly positively impact the sturdiness of the build in the long run, and provide a space to keep the wiring, microcontrollers, and ports etc
This is a good idea as well. Thin pieces can be used just to connect the thumb and finger cluster. Multiple pieces can be attached at different heights to reduce some of the stresses on the acrylic. Alternatively, one big piece that covers the entire footprint should be relatively strong if you're comfortable with the cost.
Speaking of which, this could be an area where people have different preferences so I can see there being value in generating a template for the footprint in addition to a couple of connector options. This way there's room for people to make their own customization in any old vector editor.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.