Author Topic: NOW OPEN SOURCE!!! swill's plate building tool [builder.swillkb.com]  (Read 3045898 times)

0 Members and 1 Guest are viewing this topic.

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #50 on: Tue, 04 November 2014, 23:00:28 »
Need some advice on switch cutouts...

So I have been doing a lot of research on this topic and have looked at a lot of CAD files.  I have also done a bunch of measurements of a switch as well as a hammer plate. 

So here is a bunch of random questions:
- I see in the Cherry spec that the main cutout area is 14mm +- 0.05mm
- I see a range of sizes in different drawings.  The most common are: 13.95mm and 13.97mm.  Is there a reason people are always drawing the cutout a bit smaller than the spec?  Does it have to do with the machining taking more material than you draw usually?
- I have no idea what cad files Hammer used, but they do not match up to any of the drawings I am seeing.  Some of his dimensions are bigger than the drawings I am seeing and some of his are also smaller, so its not like it was the same drawing and the cuts are consistently bigger or something like that.  For example, his main cutout area is 14.1mm but his flaps are only 2.9mm wide (where many drawings have them at 3.5mm wide or there abouts and the main cutout at 13.95mm for that cutout type)
- For the switch flaps, I am seeing some different numbers, but 15.6mm is pretty common in drawings.  15.57mm also shows up in a couple places.  Again, smaller...  Is there a theme?
- When I measured the distance between the flaps on the Hammer plate and it is a huge 16.9mm.  I know this measurement is not the most important because it is just a convenience factor for ease of switch removal.

The only measurements that REALLY make sense to me are the dimensions for one of the layouts that jdcarpe suggested.  Basically a 14mm main cutout with a 12.8mm x 15.6mm rectangle centered in it.  This is both MX and Alps compatible and those numbers just make sense to me.

So in short.  Is there a reason everyone is drawing these cutouts smaller than the spec?

@jdcarpe: if you are watching this thread.  do you know what switch cutout dimensions were used for the universal tkl plate you sold me?  i will get after that plate with a caliper and see if i can figure out what the expected tolerances are in cutting and how close they are to the drawing in reality.

Anyone with experience on this, please chime in.  I am drawing all of these cutouts via code, so I can easily change it later, but it is a lot of work to draw out some of the more elaborate cutouts.  I also want to get an idea of what I am doing and why people have made the decisions they have before I get into drawing the stabilizers and automating the creation of them because they are even more complicated to draw than the switch cutouts.

Thanks again for everyone who has been giving me feedback in this thread.  :)

Offline jdcarpe

  • * Curator
  • Posts: 8852
  • Location: Odessa, TX
  • Live long, and prosper.
Re: swill's plate building tool
« Reply #51 on: Tue, 04 November 2014, 23:32:29 »
Where the 13.97 comes from is the nice round 0.55" measurement for the MX square, instead of the 0.551" as laid out in the Cherry spec sheet. I have seen it quite often. To be honest, I'm not sure what the most common dimension is that I use, because I have mostly copied and pasted from drawing to drawing, using plate drawing files from different sources. But if I were to draw them again from scratch, I would use the metric dimensions, as I believe they are what the imperial measurements are aiming toward.

Also, I don't think it matters that much, anyway. The switch housings do not have such tight tolerances that they can't be made to work with holes of 14.0 or 13.95 mm.

As far as cutouts go, I prefer either the simple square (best for hand wiring), the "Phantom" tab style, or the MX/Alps combo. The last one really precludes the need for the Phantom style, so you could even eliminate that one entirely. The one with tabs for 90-degree rotation is not acceptable for my own use, after testing with real world examples.

I think Hammer may have his plates machined instead of laser cut, similar to how GON makes his. That may account for the larger hole dimensions that don't seem to make sense.
KMAC :: LZ-GH :: WASD CODE :: WASD v2 :: GH60 :: Alps64 :: JD45 :: IBM Model M :: IBM 4704 "Pingmaster"

http://jd40.info :: http://jd45.info


in memoriam

"When I was a kid, I used to take things apart and never put them back together."

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #52 on: Wed, 05 November 2014, 09:57:04 »
Alright, here are the dimensions for the switch types I currently support.  Please let me know if you see any issues with these dimensions...



« Last Edit: Wed, 05 November 2014, 10:05:13 by swill »

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #53 on: Fri, 07 November 2014, 21:55:03 »
Been somewhat slow going recently.  I have been putting out fires at work non-stop and my sister is in town from BC, so I have not had much time to work on this.

Tonight I drew up the 2 unit stabilizers based on the cherry spec.  I may change this later, but for now I am basically overlaying the switch cutout over the cherry spec 2 unit stabilizer.  Please add comments if you see problems with this approach.  According to how I am seeing the problem, this should work pretty well.  Is there a reason I would need to draw any different types of 2 unit stabilizers?  What would the universal stabilizer cutout offer that these don't?

Any feedback on this would be helpful. 


Offline Melvang

  • Exquisite Lord of Bumfluff
  • * Maker
  • Posts: 4398
  • Location: Waterloo, IA
  • Melvang's Desktop Customs
Re: swill's plate building tool
« Reply #54 on: Fri, 07 November 2014, 22:41:53 »
The universal stab cut out would offer the use of costar stabs as well.
OG Kishsaver, Razer Orbweaver clears and reds with blue LEDs, and Razer Naga Epic.   "Great minds crawl in the same sewer"  Uncle Rich

Offline MOZ

  • KING OF THE NEWBIES
  • * Maker
  • Posts: 3981
  • Location: Jo'burg
  • Busy making stuff
Re: swill's plate building tool
« Reply #55 on: Sat, 08 November 2014, 01:34:28 »
Two recommendations:
1. Use the universal style cutout for the stab areas, because as Melvang said, it would allow use of costar stabs as well.
2. I'll post a second type of stab cutout, which is used for acrylic plates, actually any plate thicker than 2mm, it allows the use of only PCB mounted stabs, but no modification has to be done to the stabs as the cutout allows for enough room for the complete stabs to come through and not interact with the plate.

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #56 on: Sat, 08 November 2014, 10:03:05 »
The universal stab cut out would offer the use of costar stabs as well.
Oh OK. I didn't realize that the cherry spec only supported cherry style stabs. I guess now that I write it, it makes sense. Thx. I will draw the universal stab tonight. I have the details from the OP of the CAD resource page.

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #57 on: Sat, 08 November 2014, 10:10:54 »
Two recommendations:
1. Use the universal style cutout for the stab areas, because as Melvang said, it would allow use of costar stabs as well.
2. I'll post a second type of stab cutout, which is used for acrylic plates, actually any plate thicker than 2mm, it allows the use of only PCB mounted stabs, but no modification has to be done to the stabs as the cutout allows for enough room for the complete stabs to come through and not interact with the plate.
Great thanks MOZ. I will draw the universal tonight and if you post another type for thicker plates, I will make it available too.

I will be giving people the choice of what switch cutout they want, which 2u stab cutout they want and which spacebar cutout they want (which I have not drawn yet).

Slow and steady. Once I get the spacebars drawn I will be ready to start putting together the actual layout logic. I will be starting with only ANSII (and modifications of ANSII) to start. I will support vertical keys to start, but probably not the iso enter in the first version.

I have to start somewhere and this is the easiest way for me to get started.

Thanks for the support guys.

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #58 on: Sat, 08 November 2014, 21:43:11 »
I am confused...  Why do the different sized keys have different universal stabilizer sizes?  I thought that they all would take the same 2 unit stabilizer.  Why would there be other sized cutouts?

Here is what I am talking about...


Offline FrostyToast

  • Litshoard
  • * Exquisite Elder
  • Posts: 2368
  • Location: Canada
Re: swill's plate building tool
« Reply #59 on: Sat, 08 November 2014, 21:46:43 »
I am confused...  Why do the different sized keys have different universal stabilizer sizes?  I thought that they all would take the same 2 unit stabilizer.  Why would there be other sized cutouts?

Here is what I am talking about...

Show Image


I could be wrong but I think the cutouts ate the same, but the horizontal spacing around the stabilizer changes.
Quote from: elton5354
I don't need anymore keyboards

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #60 on: Sat, 08 November 2014, 21:52:44 »
I am confused...  Why do the different sized keys have different universal stabilizer sizes?  I thought that they all would take the same 2 unit stabilizer.  Why would there be other sized cutouts?

Here is what I am talking about...

Show Image


I could be wrong but I think the cutouts ate the same, but the horizontal spacing around the stabilizer changes.

Yes, the tabs on the bottom are both 3.3mm and the space between them is 20.6mm on all of them.  Why would you need extra space around them?  Why wouldn't you be able to just the 2u one (backspace in that drawing) for all of those other keys?

Offline FrostyToast

  • Litshoard
  • * Exquisite Elder
  • Posts: 2368
  • Location: Canada
Re: swill's plate building tool
« Reply #61 on: Sat, 08 November 2014, 21:56:47 »
I am confused...  Why do the different sized keys have different universal stabilizer sizes?  I thought that they all would take the same 2 unit stabilizer.  Why would there be other sized cutouts?

Here is what I am talking about...

Show Image


I could be wrong but I think the cutouts ate the same, but the horizontal spacing around the stabilizer changes.

Yes, the tabs on the bottom are both 3.3mm and the space between them is 20.6mm on all of them.  Why would you need extra space around them?  Why wouldn't you be able to just the 2u one (backspace in that drawing) for all of those other keys?

Isn't that extra space around them just meant to mark how much distance is required between cutouts to fit the proper caps on?
Quote from: elton5354
I don't need anymore keyboards

Offline Melvang

  • Exquisite Lord of Bumfluff
  • * Maker
  • Posts: 4398
  • Location: Waterloo, IA
  • Melvang's Desktop Customs
Re: swill's plate building tool
« Reply #62 on: Sat, 08 November 2014, 21:58:14 »
Yeah 2u through 2.75u all have the same dimensions.  So the extra space is just there for the caps.
OG Kishsaver, Razer Orbweaver clears and reds with blue LEDs, and Razer Naga Epic.   "Great minds crawl in the same sewer"  Uncle Rich

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #63 on: Sat, 08 November 2014, 22:12:14 »
Yeah 2u through 2.75u all have the same dimensions.  So the extra space is just there for the caps.

Ok, thanks for confirming.  I am just going to draw the 2u version then because that will just simplify things for my program.  Thx...

Final question.  What is the significance of the tabs on the right and left of that?  Is that incase you decide to actually put two switches in that space instead of one with a stabilizer, those two switches can be opened?  According to my measurements neither stabilizer will reach that far to either side.

Offline Melvang

  • Exquisite Lord of Bumfluff
  • * Maker
  • Posts: 4398
  • Location: Waterloo, IA
  • Melvang's Desktop Customs
Re: swill's plate building tool
« Reply #64 on: Sat, 08 November 2014, 22:14:46 »
Yeah 2u through 2.75u all have the same dimensions.  So the extra space is just there for the caps.

Ok, thanks for confirming.  I am just going to draw the 2u version then because that will just simplify things for my program.  Thx...

Final question.  What is the significance of the tabs on the right and left of that?  Is that incase you decide to actually put two switches in that space instead of one with a stabilizer, those two switches can be opened?  According to my measurements neither stabilizer will reach that far to either side.

That I can't really help you with, sorry.
OG Kishsaver, Razer Orbweaver clears and reds with blue LEDs, and Razer Naga Epic.   "Great minds crawl in the same sewer"  Uncle Rich

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #65 on: Sat, 08 November 2014, 22:23:02 »
Yeah 2u through 2.75u all have the same dimensions.  So the extra space is just there for the caps.

Ok, thanks for confirming.  I am just going to draw the 2u version then because that will just simplify things for my program.  Thx...

Final question.  What is the significance of the tabs on the right and left of that?  Is that incase you decide to actually put two switches in that space instead of one with a stabilizer, those two switches can be opened?  According to my measurements neither stabilizer will reach that far to either side.

That I can't really help you with, sorry.

No worries.  I appreciate the help.  :)

I am going to make that assumption because the opening (without the tabs) is 33mm which is 19mm (two switch centers) and then 7mm on the outside of center for both of them.  Now that I do the math, I am pretty confident that is the case.  I will draw mine that way too just to be consistent.  Thx...

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #66 on: Sat, 08 November 2014, 23:16:14 »
I now have both the 2 unit cherry spec stabs drawn and the 2 unit universal stabs drawn.  Next I will be working on the space bars.  I will probably just start with the 6.25 and 7 unit space bars from the cherry spec and the universal spacebar (which should support costar, I think).

Getting there...  :)  Once I have a couple spacebars drawn I will start automating the actual layouts.  Then the fun really begins...

Tonights progress:


Offline dorkvader

  • Posts: 6288
  • Location: Boston area
  • all about the "hack" in "geekhack"
Re: swill's plate building tool
« Reply #67 on: Sat, 08 November 2014, 23:52:40 »
Final question.  What is the significance of the tabs on the right and left of that?  Is that incase you decide to actually put two switches in that space instead of one with a stabilizer, those two switches can be opened?  According to my measurements neither stabilizer will reach that far to either side.
I think it's just so you can just copy/paste the cutouts across the row and it'll all line up easily: to make it easy for people to build plates and also see that they'll fit their layout and also line-up properly.

TBH, I'd probably do it in a similar way: have a lookup-table for predefined cutouts for all the common switches, and then paste across rows to render the CAD output. but I'm not a programmer so IDK how efficient that'd be.

Actually I'd have just the switch and just also store the spacing, so it'd paste space, switch&stab cutout, space then move on to the next one in the layout. But again: I only programmed in QBasic when I was like 10.

Offline cjhard

  • Posts: 239
  • Location: Lexington, KY
  • Claudia the Magnificent
Re: swill's plate building tool
« Reply #68 on: Sun, 09 November 2014, 01:31:41 »
The method I'm using for my SVG renderer is drawing a path with variable distances. Functionally, the 2u is the same as the 10u with a longer bar, so I initiate a path, move to position, and start tracing a line using relative coords, and then once I hit a variable, I use absolute coords based on Cherry specs.

I run renderSpacebar( -2.625, -2.1, 2.625, 2.1 ); and it'll draw a stabilizer with cutouts at those unit positions for the 6.25u A+B style.
Not as easy to render the options like stab openings, or screw holes, but I'll get to that whenever I get to it.

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #69 on: Sun, 09 November 2014, 08:46:59 »
Final question.  What is the significance of the tabs on the right and left of that?  Is that incase you decide to actually put two switches in that space instead of one with a stabilizer, those two switches can be opened?  According to my measurements neither stabilizer will reach that far to either side.
I think it's just so you can just copy/paste the cutouts across the row and it'll all line up easily: to make it easy for people to build plates and also see that they'll fit their layout and also line-up properly.

TBH, I'd probably do it in a similar way: have a lookup-table for predefined cutouts for all the common switches, and then paste across rows to render the CAD output. but I'm not a programmer so IDK how efficient that'd be.

Actually I'd have just the switch and just also store the spacing, so it'd paste space, switch&stab cutout, space then move on to the next one in the layout. But again: I only programmed in QBasic when I was like 10.

This is similar to what I am doing.  Basically, I am drawing each of the different components.  Then when my program parses the layout, it will move across the board and place the appropriate cutouts in the different locations.

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #70 on: Sun, 09 November 2014, 09:41:06 »
The method I'm using for my SVG renderer is drawing a path with variable distances. Functionally, the 2u is the same as the 10u with a longer bar, so I initiate a path, move to position, and start tracing a line using relative coords, and then once I hit a variable, I use absolute coords based on Cherry specs.

I run renderSpacebar( -2.625, -2.1, 2.625, 2.1 ); and it'll draw a stabilizer with cutouts at those unit positions for the 6.25u A+B style.
Not as easy to render the options like stab openings, or screw holes, but I'll get to that whenever I get to it.

This is similar to what I am doing, but I am not setting up my layout before hand and then placing the switches after.  Instead, I will run over the layout quickly once just to figure out some sums so I can determine the size of the plate based on the number and size of the keys.  When working with redefined case layouts (like the poker for example), then I will have to do a little magic to figure out how to get the holes between switches, but we will see...

Basically, I will be cutting one switch at a time based on the current switch size and the previous switch size.  I will be looping through each row and placing the switches and 2u stabilizers for keys 2 <= key < 3. 

I will have global settings for all of the following details:
these options will be shown after you specify your source layout so I know what size spacebar you will be using and such.
- Switch type (the 4 types I have shown so far)
- 2 unit stab (cherry spec or universal so far)
- spacebar type (cherry spec or universal so far.  i will probably draw more options later)

Then when I move through the switches and draw them I will use the global settings to know which switch type to draw.  If the key size is (2 <= key < 3) then it will draw a 2 unit stabilizer based on your selection.  If the key is (3 <= key), then it will pick draw a spacebar stabilizer based on your previous selection.

Keep in mind that I am still planning this and this is what I have come up with so far.

Currently I have the following function for cutting the switch: cut_switch(p, c, s=None)
It takes the plate to cut the switch on (p) as well as the center of where the switch should be cut (c) and if a stabilizer should be cut (s) which will be a numerical value of the size of the stab to be cut.

When moving from one switch location to the next, the (c) value is calculated as:
c = .5*prev_switch_size*1unit_size + .5*curr_switch_size*1unit_size

So for example, for my testing, the following layout is created with the code below:



Code: [Select]
p = init_plate()
p = p.center((-plate_width/2)+(switch_size/2), (-plate_height/2)+(switch_size/2))
p = cut_switch(p, (plate_x_pad, plate_y_pad))
x_off += u1 - plate_x_pad
p = cut_switch(p, (u1, 0))
p = cut_switch(p, (u1, 0))
p = cut_switch(p, (u1, 0))
p = cut_switch(p, (u1, 0))
p = cut_switch(p, (u1, 0))
p = cut_switch(p, (u1, 0))
p = cut_switch(p, (u1, 0))
p = p.center(-x_off, u1)
x_off = 0
switch_type = 0
p = cut_switch(p, (1.5*u1, 0))
switch_type = 1
p = cut_switch(p, (2*u1, 0))
switch_type = 2
p = cut_switch(p, (2*u1, 0))
switch_type = 3
p = cut_switch(p, (2*u1, 0))
p = p.center(-x_off, u1)
x_off = 0
switch_type = 0
u2_stab_type = 0
p = cut_switch(p, (1.5*u1, 0), 2)
switch_type = 1
p = cut_switch(p, (2*u1, 0), 2)
switch_type = 2
p = cut_switch(p, (2*u1, 0), 2)
switch_type = 3
p = cut_switch(p, (2*u1, 0), 2)
p = p.center(-x_off, u1)
x_off = 0
switch_type = 0
u2_stab_type = 1
p = cut_switch(p, (1.5*u1, 0), 2)
switch_type = 1
p = cut_switch(p, (2*u1, 0), 2)
switch_type = 2
p = cut_switch(p, (2*u1, 0), 2)
switch_type = 3
p = cut_switch(p, (2*u1, 0), 2)

Obviously this is not automated yet, but I am trying to put the pieces in place to be able to easily automate.

Offline jdcarpe

  • * Curator
  • Posts: 8852
  • Location: Odessa, TX
  • Live long, and prosper.
Re: swill's plate building tool
« Reply #71 on: Sun, 09 November 2014, 11:47:41 »
So, a couple things. Hopefully this will be helpful to you.

  • Your stabilizer holes are for Cherry stabs only, but I'm sure you knew that. A couple rectangular notches on the top, and you can use those holes with Costar stabs, as well.
  • If you use the Cherry spec sheet stabilizer hole, and cut out the little tabs where the stab insert holes connect to the switch hole at the top, it works fine with the ability to open the switches. But you won't have Alps compatibility with that type of hole.
  • Your 2-unit "universal" cutout is ONLY useful for exactly one location on a keyboard -- the Backspace. The other locations, i.e. Left Shift, Right Shift, Enter, require different spacing due to how their switches are arranged.
  • Also, I'm not sure Cherry plate mount stabs will clip on tho the "universal" hole cutouts. In the past, we have REQUIRED the use of PCB mount stabs if you use a plate with "universal" holes.
« Last Edit: Sun, 09 November 2014, 11:49:46 by jdcarpe »
KMAC :: LZ-GH :: WASD CODE :: WASD v2 :: GH60 :: Alps64 :: JD45 :: IBM Model M :: IBM 4704 "Pingmaster"

http://jd40.info :: http://jd45.info


in memoriam

"When I was a kid, I used to take things apart and never put them back together."

Offline MOZ

  • KING OF THE NEWBIES
  • * Maker
  • Posts: 3981
  • Location: Jo'burg
  • Busy making stuff
Re: swill's plate building tool
« Reply #72 on: Sun, 09 November 2014, 14:03:54 »
JD, pretty much cleared all the points I was going to outline, but just a couple of things I recall:
1. dorkvader was right in pointing out that the file you posted from the GH CAD resources thread, has same stab cutouts for 2u-2.75u keys, just the bounding boxes are of different sizes, which allows new users to just copy and paste these drawings and join corner to corner, without having to worry about spacing.
2. When you said "universal" cutout I thought you meant the one jdcarpe has mentioned above, as in Cherry spec stabs with extra notches on the top to allow for costar stabs.
3. The universal cutout as you have now, as pointed out by JD, is useful only for the Backspace and something I wouldn't really recommend as it does't hold the switch very well or the stabs and is useful most with PCB mount switches and stabs. Besides, it is more of an "advance" concept, since you are making the tool for people starting out, I'd recommend to skip this option for now. As a second phase feature for your tool, you could include an option to add other options to a base layout, like a split backspace, and the tool would then automatically combine the cutouts and generate a new cutout, this would allow the user to have multi-layout plates to their liking, without you having to worry about all the possible cutouts.

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #73 on: Mon, 10 November 2014, 09:45:21 »
  • Your stabilizer holes are for Cherry stabs only, but I'm sure you knew that. A couple rectangular notches on the top, and you can use those holes with Costar stabs, as well.

Yes, I did understand that.  I thought the 'universal' plate was costar compatible, but I am not sure that it is.  I was kind of going off the fact that it was called 'universal'.

  • If you use the Cherry spec sheet stabilizer hole, and cut out the little tabs where the stab insert holes connect to the switch hole at the top, it works fine with the ability to open the switches. But you won't have Alps compatibility with that type of hole.

Ok, I will revisit this drawing and try to make this one drawing work for both costar and cherry stabs.  Is there a cutout that is costar and cherry compatible as well as alps compatible?

  • Your 2-unit "universal" cutout is ONLY useful for exactly one location on a keyboard -- the Backspace. The other locations, i.e. Left Shift, Right Shift, Enter, require different spacing due to how their switches are arranged.
  • Also, I'm not sure Cherry plate mount stabs will clip on tho the "universal" hole cutouts. In the past, we have REQUIRED the use of PCB mount stabs if you use a plate with "universal" holes.

I think I understand what the 'universal' cutout is designed for.  I think it is mainly to solve for people not knowing if they want to put one or two switches there and if they put one switch they can put pcb mount stabilizers.  I am not really targeting this level of detail yet, so I will stick with standard stabilizers and will adjust the spacing around them depending on the size of the key.

This is the only thing I have been able to find for the measurements for costar stabilizers.  Is this correct?  I will be using this spec unless someone else has a better resource somewhere.

http://deskthority.net/keyboards-f2/costar-stabilizer-plate-measurements-t5872.html

Thanks again for the great feedback...

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #74 on: Mon, 10 November 2014, 09:54:07 »
JD, pretty much cleared all the points I was going to outline, but just a couple of things I recall:
1. dorkvader was right in pointing out that the file you posted from the GH CAD resources thread, has same stab cutouts for 2u-2.75u keys, just the bounding boxes are of different sizes, which allows new users to just copy and paste these drawings and join corner to corner, without having to worry about spacing.
2. When you said "universal" cutout I thought you meant the one jdcarpe has mentioned above, as in Cherry spec stabs with extra notches on the top to allow for costar stabs.
3. The universal cutout as you have now, as pointed out by JD, is useful only for the Backspace and something I wouldn't really recommend as it does't hold the switch very well or the stabs and is useful most with PCB mount switches and stabs. Besides, it is more of an "advance" concept, since you are making the tool for people starting out, I'd recommend to skip this option for now. As a second phase feature for your tool, you could include an option to add other options to a base layout, like a split backspace, and the tool would then automatically combine the cutouts and generate a new cutout, this would allow the user to have multi-layout plates to their liking, without you having to worry about all the possible cutouts.

Thank you for the additional detail.  I am starting to get my head around all this stuff now.  I am really green when it comes down to all the details when it comes to drawing the different compatibilities and why some cutouts are drawn the way they are.  If the costar spec I linked in the previous post, I should be all set to draw a cherry spec stabilizer with costar support.  I am getting pretty good with drawing cutouts from code now, so that is definitely making me more comfortable.  :)

I do have a couple plates with the 'universal' cutouts as defined in the OP of the CAD Resource thread (which is where I got that naming from).  The switch would click in (if my plate was not 5mm acrylic), but it does require you to use PCB mount stabilizers.  Not sure how I missed that when I did that drawing.  I think the fact that the bottom tabs in that layout matched exactly to the costar spec, I got a bit blinded by the fact that the height of the opening was not correct (its an extra .85mm to tall). 

I will revisit my cherry spec drawing and adapt it to also work for costar and I will go with that for my 2u stabs for now.  I have to admit, I am dreading that I have to draw all of those different spacebar stabilizer cutouts.  Haha...  I will probably start out with just a couple and just make sure my code can be expanded later to support the rest and I will move on to the next piece and come back to the rest of the cutouts.

Thanks again for all the support and suggestions.  It has been invaluable to have you guys reviewing my work (and theories) and setting me straight.  I really appreciate it.  :)

Offline jdcarpe

  • * Curator
  • Posts: 8852
  • Location: Odessa, TX
  • Live long, and prosper.
Re: swill's plate building tool
« Reply #75 on: Mon, 10 November 2014, 10:50:13 »
I went back over all the plates I have been drawing, and every one of them uses the 13.97mm dimension for the MX square. I don't know if that helps with the laser kerf, but I suspect it does.

Attached is a drawing of the stabilizer hole I use.
KMAC :: LZ-GH :: WASD CODE :: WASD v2 :: GH60 :: Alps64 :: JD45 :: IBM Model M :: IBM 4704 "Pingmaster"

http://jd40.info :: http://jd45.info


in memoriam

"When I was a kid, I used to take things apart and never put them back together."

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #76 on: Mon, 10 November 2014, 12:51:54 »
I went back over all the plates I have been drawing, and every one of them uses the 13.97mm dimension for the MX square. I don't know if that helps with the laser kerf, but I suspect it does.

Attached is a drawing of the stabilizer hole I use.

Thanks for that.  I will use that as a guide.  I am going to see how close it is to mine (other than the tabs on the top).  I think that the tabs on the bottom are slightly different as well because the tabs on the bottom are slightly different between cherry and costar.  This is really helpful, thanks...

Out of interest.  The switch hole in this stabilizer cutout is 14mm instead of 13.97mm.  I wonder if the 13.97 has just been propagated with copy and paste from the initial drawings (converted from standard measurements .55" instead of .551"). 

What do you think?  Do you think it was intentional to use that size because of laser cutting kerf or do you think it is just a remnant of previous loss of precision that no one cared to change?

I have to draw all these cutouts manually because I am creating this from code, so I can't just copy and paste from other people's work.  That being said, it is much easier to work with 14 instead of 13.97 for me since I am manually writing out all the vertices.

For example, your prefered switch cutout (supports both mx and alps), is a relatively simple cutout.  If I use the numbers 14mm, 12.8mm and 15.6mm, it results in the following array.

Code: [Select]
points = [
(7,-7), (7,-6.4), (7.8,-6.4),
(7.8,6.4), (7,6.4), (7,7),
(-7,7), (-7,6.4), (-7.8,6.4),
(-7.8,-6.4), (-7,-6.4), (-7,-7), (7,-7)
]

Which then gets cut with the following:

Code: [Select]
p = p.center(c[0],c[1]).polyline(points).cutThruAll()

It is a bit more of a pain and messy if I work with the 13.97mm number.  I am trying to do this 'right' though, so I don't mind doing more work even if it is a pain if it is the best solution.

Once I get all of the components drawn, I am going to layout all of the components on one piece of material and see if I can find someone to cut it for me (and potentially test for me as well) so I can be sure that each of the components works as expected.

Offline OverKill

  • Posts: 109
  • Location: Arizona, USA
Re: swill's plate building tool
« Reply #77 on: Tue, 11 November 2014, 15:54:38 »
I went back over all the plates I have been drawing, and every one of them uses the 13.97mm dimension for the MX square. I don't know if that helps with the laser kerf, but I suspect it does.

Attached is a drawing of the stabilizer hole I use.

Thanks for that.  I will use that as a guide.  I am going to see how close it is to mine (other than the tabs on the top).  I think that the tabs on the bottom are slightly different as well because the tabs on the bottom are slightly different between cherry and costar.  This is really helpful, thanks...

Out of interest.  The switch hole in this stabilizer cutout is 14mm instead of 13.97mm.  I wonder if the 13.97 has just been propagated with copy and paste from the initial drawings (converted from standard measurements .55" instead of .551"). 

What do you think?  Do you think it was intentional to use that size because of laser cutting kerf or do you think it is just a remnant of previous loss of precision that no one cared to change?

I have to draw all these cutouts manually because I am creating this from code, so I can't just copy and paste from other people's work.  That being said, it is much easier to work with 14 instead of 13.97 for me since I am manually writing out all the vertices.

For example, your prefered switch cutout (supports both mx and alps), is a relatively simple cutout.  If I use the numbers 14mm, 12.8mm and 15.6mm, it results in the following array.

Code: [Select]
points = [
(7,-7), (7,-6.4), (7.8,-6.4),
(7.8,6.4), (7,6.4), (7,7),
(-7,7), (-7,6.4), (-7.8,6.4),
(-7.8,-6.4), (-7,-6.4), (-7,-7), (7,-7)
]

Which then gets cut with the following:

Code: [Select]
p = p.center(c[0],c[1]).polyline(points).cutThruAll()

It is a bit more of a pain and messy if I work with the 13.97mm number.  I am trying to do this 'right' though, so I don't mind doing more work even if it is a pain if it is the best solution.

Once I get all of the components drawn, I am going to layout all of the components on one piece of material and see if I can find someone to cut it for me (and potentially test for me as well) so I can be sure that each of the components works as expected.

There is no need to work with 13.97mm. Stick with 14mm. When people get their plates made, if there is an issue they can specify they want the tolerance of the holes to be -.003 +0 or -.005 +0. I have made all of my plates and prototypes to cherry spec and they are fine.

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #78 on: Tue, 11 November 2014, 16:40:53 »
I went back over all the plates I have been drawing, and every one of them uses the 13.97mm dimension for the MX square. I don't know if that helps with the laser kerf, but I suspect it does.

Attached is a drawing of the stabilizer hole I use.

Thanks for that.  I will use that as a guide.  I am going to see how close it is to mine (other than the tabs on the top).  I think that the tabs on the bottom are slightly different as well because the tabs on the bottom are slightly different between cherry and costar.  This is really helpful, thanks...

Out of interest.  The switch hole in this stabilizer cutout is 14mm instead of 13.97mm.  I wonder if the 13.97 has just been propagated with copy and paste from the initial drawings (converted from standard measurements .55" instead of .551"). 

What do you think?  Do you think it was intentional to use that size because of laser cutting kerf or do you think it is just a remnant of previous loss of precision that no one cared to change?

I have to draw all these cutouts manually because I am creating this from code, so I can't just copy and paste from other people's work.  That being said, it is much easier to work with 14 instead of 13.97 for me since I am manually writing out all the vertices.

For example, your prefered switch cutout (supports both mx and alps), is a relatively simple cutout.  If I use the numbers 14mm, 12.8mm and 15.6mm, it results in the following array.

Code: [Select]
points = [
(7,-7), (7,-6.4), (7.8,-6.4),
(7.8,6.4), (7,6.4), (7,7),
(-7,7), (-7,6.4), (-7.8,6.4),
(-7.8,-6.4), (-7,-6.4), (-7,-7), (7,-7)
]

Which then gets cut with the following:

Code: [Select]
p = p.center(c[0],c[1]).polyline(points).cutThruAll()

It is a bit more of a pain and messy if I work with the 13.97mm number.  I am trying to do this 'right' though, so I don't mind doing more work even if it is a pain if it is the best solution.

Once I get all of the components drawn, I am going to layout all of the components on one piece of material and see if I can find someone to cut it for me (and potentially test for me as well) so I can be sure that each of the components works as expected.

There is no need to work with 13.97mm. Stick with 14mm. When people get their plates made, if there is an issue they can specify they want the tolerance of the holes to be -.003 +0 or -.005 +0. I have made all of my plates and prototypes to cherry spec and they are fine.
Great. Thanks for confirming that, I can rest easy now. :)

Offline Melvang

  • Exquisite Lord of Bumfluff
  • * Maker
  • Posts: 4398
  • Location: Waterloo, IA
  • Melvang's Desktop Customs
Re: swill's plate building tool
« Reply #79 on: Tue, 11 November 2014, 20:46:56 »
Plus when getting plates laser cut from stainless, there is enough texture from the cut itself that it REALLY grabs the hell out of the switch.  I noticed this with the JD40.  I can't speak for waterjet though.  You don't see this on factory OEM plates due to the cost of doing that large of volume it is far cheaper to stamp/die cut all those holes and you end up with a smooth face on the edges of the switch hole so the size is a touch more critical.
OG Kishsaver, Razer Orbweaver clears and reds with blue LEDs, and Razer Naga Epic.   "Great minds crawl in the same sewer"  Uncle Rich

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #80 on: Sat, 15 November 2014, 23:30:15 »
I have to admit that it has been bugging the hell out of me that all of the different drawings have different dimensions.  Yes, it is usually within about .15-.25mm, but for some reason my OCD just cant let it go.  I have been reviewing the different specs as well as the different drawings I have available to me and I am trying to deduce why there is such a difference in the numbers.  That is the main reason you have not seen progress in the last few days because I have been banging away at understanding why there is so much variance.

In general, it looks like a lot of the cutouts do something like move the cherry cutout .15mm +/- up (mostly) and then add the costar cutout to it.  So far, I think the reason they do this is because there is extra space in the bottom tab by about .2mm that is outside the costar spec, so in order to get the tolerances closer to the costar spec, they slightly move the cherry spec up.  I am kind of guessing here, but that is what it is looking like right now given my current calculations.

The reason I am spending so much time understanding this right now is because I will basically be using the same stabilizer layout for the spacebars and I only want to draw them once (or as few times as possible).  :)

Anyway, slow but I am making progress.  Once I get these drawn things will start to go quicker.  Thats what I got for an update today...  :P
« Last Edit: Sat, 15 November 2014, 23:32:31 by swill »

Offline dorkvader

  • Posts: 6288
  • Location: Boston area
  • all about the "hack" in "geekhack"
Re: swill's plate building tool
« Reply #81 on: Sun, 16 November 2014, 00:13:53 »
you know this might be part of the reason I've always had huge issues with cherry PM stabilizers. They are all for custom plates and require a custom bent wire, where a slightly off length or bend radius can be the difference between it working and failing. An additional +-0.2mm tolerance level will further exacerbate the issue.

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #82 on: Sun, 16 November 2014, 11:43:25 »
you know this might be part of the reason I've always had huge issues with cherry PM stabilizers. They are all for custom plates and require a custom bent wire, where a slightly off length or bend radius can be the difference between it working and failing. An additional +-0.2mm tolerance level will further exacerbate the issue.
Now that you mention it, I too have had issues with cherry PM stabs in custom plates. Something was rubbing somewhere that was causing the key to not reset correctly. I solved the problem by using a stab wire that had a slightly smaller than spec diameter and that fixed it for me.  I could not figure out for the life of me what was rubbing.  I will have to go back and see if it was the stab wire rubbing against the switch body. I have to admit I never even thought to check that when I was troubleshooting. 

Thanks for jogging my memory. :)

Given my understanding of costar stabilizers, it probably would not be the end of the world if you moved it down 0.2mm since that would only ever affect the 'up' position and I doubt it would even be noticeable if it did make it touch somewhere. What do you guys think?

Offline OverKill

  • Posts: 109
  • Location: Arizona, USA
Re: swill's plate building tool
« Reply #83 on: Mon, 17 November 2014, 09:29:39 »
Plus when getting plates laser cut from stainless, there is enough texture from the cut itself that it REALLY grabs the hell out of the switch.  I noticed this with the JD40.  I can't speak for waterjet though.  You don't see this on factory OEM plates due to the cost of doing that large of volume it is far cheaper to stamp/die cut all those holes and you end up with a smooth face on the edges of the switch hole so the size is a touch more critical.

JD himself said he specs his holes smaller so that is most likely what you are noticing with it "grabbing" more.

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #84 on: Mon, 17 November 2014, 09:36:41 »
Plus when getting plates laser cut from stainless, there is enough texture from the cut itself that it REALLY grabs the hell out of the switch.  I noticed this with the JD40.  I can't speak for waterjet though.  You don't see this on factory OEM plates due to the cost of doing that large of volume it is far cheaper to stamp/die cut all those holes and you end up with a smooth face on the edges of the switch hole so the size is a touch more critical.

JD himself said he specs his holes smaller so that is most likely what you are noticing with it "grabbing" more.
I am not sure that 3 hundredths of a MM is going to make a noticeable difference. I am pretty sure the cutting tolerance is bigger than that. Cherry spec is +/- 5 hundredths of a MM.

The laser cutting I have seen probably have the equivalent of teeth at least 1 tenth of a MM because the process does not leave a smooth surface. 
« Last Edit: Mon, 17 November 2014, 09:42:24 by swill »

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #85 on: Mon, 01 December 2014, 22:58:37 »
Been kind of busy on other things recently, so I have not had much time to work on this.  Tonight on the train home from work I revisited the u2 stabilizer drawings I was working on.

So basically every drawing that I have seen so far is different and I am not sure why that is.  So tonight I basically tried to do exactly what the cherry spec says and then modified it slightly to be costar compatible.

From a cherry spec perspective is is pretty much 100% accurate.  The differences are really only with the costar spec.  Due to the positioning of the bottom tab on the cherry spec, the costar spec will either be too low or the opening will be too large.  I am not sure the differences we are working with will make a difference, but here is what I have so far.

Costar spec says the stab holes should be 14mm long and they should start .75mm lower than the top of the switch opening.  Right now mine are 14mm long and start .97mm lower than the top of the switch opening.

However, none of the other drawings actually meet the costar spec either.  For example...
- jdcarp's drawing has a 14.2mm long costar stabilizer opening and it is only .53mm lower than the top of the switch opening.
- most of the drawings in the CAD Resource OP have a 13.97mm long costar stabilizer opening and it is .77mm from the top of the switch opening (however the cherry spec opening is shifted up about .15mm to .2mm).

Which opening do you feel is the one that should be closer to 'correct' according to spec?  I am guessing that the cherry spec one is more important to be closer to the spec because I am concerned that the wire may rub on the switch housing if it is pushed up too much (I think I have experienced that, I still need to check).

I could split the difference.  Make my opening 14.1mm long and add that .1mm to the top.  The drawings in the OP of the CAD Resource only have a 1.14mm bottom tab (I currently have a 1.2mm bottom tab because that is what the cherry spec said to put).  If I adjusted it to a 1.15mm tab I would have the following:  A 14.1mm long stabilizer opening and it would be .82mm from the top of the switch opening.  I think that basically gets us to within the tolerances on all the different dimensions...  Thoughts???

Here are the cutouts (with the different switch opening options):



And here are the dimensions of the cutout with the basic switch opening.  This is basically exactly to the cherry spec with a slightly wider bottom tab (from 3.0mm to 3.3mm) to meet the costar spec and then a small bump on the top to meet the costar spec of 14mm long stab hole.



Offline MOZ

  • KING OF THE NEWBIES
  • * Maker
  • Posts: 3981
  • Location: Jo'burg
  • Busy making stuff
Re: swill's plate building tool
« Reply #86 on: Tue, 02 December 2014, 10:12:12 »
If you are doing it from scratch, I'd say going with your solution (Purely based on gut feeling), I used the drawings in the OP of my thread to create plates for my keyboards and have used Cherry PCB mount stabs without an issue, however acrylic laser cutting has a kerf of about 0.2mm for 3-5mm plates, so the differences that you pointed out would have been nullified.

Offline jdcarpe

  • * Curator
  • Posts: 8852
  • Location: Odessa, TX
  • Live long, and prosper.
Re: swill's plate building tool
« Reply #87 on: Tue, 02 December 2014, 10:24:27 »
Yeah, I'm with MOZ. If you drew it to Cherry spec from scratch, and then widened the hole slightly, and crew the little cutout on top to the Costar 14mm spec, then you should go with that. It's probably the best solution to be found.
KMAC :: LZ-GH :: WASD CODE :: WASD v2 :: GH60 :: Alps64 :: JD45 :: IBM Model M :: IBM 4704 "Pingmaster"

http://jd40.info :: http://jd45.info


in memoriam

"When I was a kid, I used to take things apart and never put them back together."

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #88 on: Tue, 09 December 2014, 07:32:33 »
Does anyone know where I can find the costar spacebar spec so I can get the correct spacing for it?  Starting with 6.25 and 7...

Offline MOZ

  • KING OF THE NEWBIES
  • * Maker
  • Posts: 3981
  • Location: Jo'burg
  • Busy making stuff
Re: swill's plate building tool
« Reply #89 on: Tue, 09 December 2014, 09:18:06 »
Are there any official costar specs available? Or is everyone using this information as standard: http://deskthority.net/keyboards-f2/costar-stabilizer-plate-measurements-t5872.html.

If that diagram is correct. Then you can use those specs to extend the design to any stab positions. Basically, the costar stab slot is going to be 14mm tall, 3.3mm wide and 0.75mm below the top of the switch. The horizontal position can be found by aligning the horizontal center of the costar slot with those specified here:
http://www.cherrycorp.com/english/switches/key/mx.htm
http://deskthority.net/wiki/Space_bar_dimensions

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #90 on: Tue, 09 December 2014, 09:34:32 »
Are there any official costar specs available? Or is everyone using this information as standard: http://deskthority.net/keyboards-f2/costar-stabilizer-plate-measurements-t5872.html.

If that diagram is correct. Then you can use those specs to extend the design to any stab positions. Basically, the costar stab slot is going to be 14mm tall, 3.3mm wide and 0.75mm below the top of the switch. The horizontal position can be found by aligning the horizontal center of the costar slot with those specified here:
http://www.cherrycorp.com/english/switches/key/mx.htm
http://deskthority.net/wiki/Space_bar_dimensions

Thank you.  I was using the link you sent me as the costar spec for the 2u stabilizer.  I was thinking that I would do exactly what you said for the other space bar compatibility.  I am building the spacebar cutout so it is parameterized so I can just specify the centers for where the stabs should be and it will create the cutout.  I think I have everything I need to finish the spacebar drawing (for symmetrical spacebars anyway).  Thx...

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #91 on: Tue, 16 December 2014, 19:08:34 »
Alright.  I finally had a chance to automate the creation of all of the center stemmed space bars for my plate building tool.  I will add functionality for the non-center stemmed space bars if there is demand, but I will start with these stabilizer options.

I have built 4 different 2 unit stabilizer cutouts, but I think I will default to the one which I have created from scratch.  My 2 unit stabilizer is exactly to the cherry spec with a slight modification to the cutout in the center vertical axis of the stabilizers to support the costar stabilizer.  I will obviously get a test plate cut before letting people go into major production with this tool to ensure all my cutouts work as well as I expect.  My space bar cutouts are also exactly to cherry specs with the same modification as the 2 unit stabs for costar support.

Here are the supported center stem stabilizers (numbers represent keycap size in units of 19.05mm):
2, 3, 4, 4.5, 5.5, 6.25 (50mm), 7 (57.15mm), 8, 9, 10

Here is an image of the different drawings on a sample plate:



Let me know if you have any feedback.  I will begin working on the actual logic to build the plates now that I have all of the different types of key cutouts accounted for.  Yes, I know I am missing ISO support.  You will have to live with just ANSI for the first iteration...

Offline MOZ

  • KING OF THE NEWBIES
  • * Maker
  • Posts: 3981
  • Location: Jo'burg
  • Busy making stuff
Re: swill's plate building tool
« Reply #92 on: Wed, 17 December 2014, 00:17:10 »
Looking good swill.

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #93 on: Thu, 18 December 2014, 22:04:17 »
I had a couple hours tonight, so I put together the basic parsing and layout logic based on the raw data provided by the keyboard-layout-editor.com site.

I had previously designed the following layout which I would like to build using Melvang's awesome Enabler PCBs.  I am currently calling this layout the 'swill60' since it is kind of my take on a 60% fixing all the things that I have trouble with in a true 60% (dedicated arrow keys and a dedicated `~ key) since I am a software developer.  This whole project spawned from me wanting to build this plate, but I had no CAD skills and I did not want to bother anyone else with my problems.

Here is my swill60 layout:

Note: All of the keys in this layout are relatively common with the only ones that could be a bit tricky to get would be the two shift keys.  I have seen many sets with those shift keys as options though, so I am not concerned about that.

The raw data for this layout is as follows (all generated by the online tool).
Code: [Select]
["Esc","!\n1","@\n2","#\n3","$\n4","%\n5","^\n6","&\n7","*\n8","(\n9",")\n0","_\n-","+\n=",{w:2},"Backspace"],
[{w:1.5},"Tab","Q","W","E","R","T","Y","U","I","O","P","{\n[","}\n]",{w:1.5},"|\n\\"],
[{w:1.75},"Control","A","S","D","F","G","H","J","K","L",":\n;","\"\n'",{w:2.25},"Enter"],
["Fn",{w:1.25},"Shift","Z","X","C","V","B","N","M","<\n,",">\n.","?\n/","↑",{w:1.75},"Shift"],
[{x:0.625},"~\n`","Win",{w:1.25},"Alt",{w:6.25},"",{w:1.25},"Alt","←","↓","→"]

My current code takes the raw data above and generates the following plate cad drawings.

Standard square switch openings with the plate edge flush to the edge of the keycaps:


Openable MX and Alps compatible switch openings with the plate protruding 5mm out on all sides for sandwich mounting:


Openable MX switch openings with the plate protruding 5mm out on all sides for sandwich mounting:


These 3 variations were created by simply changing the variable for which switch opening to use (currently 4 types supported) as well as the x and y plate padding.  All of these options will be available in my web UI once I get that far.  You will also notice that I already support x offsets in rows (notice the bottom row).  I also support 4 different 2 unit stabilizer cutouts, but I may not expose them all as some of them will hopefully be deprecated by my latest drawings.

Current Limitations:
- So far I only support layouts with caps that are 1 unit tall.
- I am not adding mounting holes of any kind yet.

All in all, I am pretty pleased with the progress so far.  This first prototype of the code proves to me that the idea is sound and is workable.  Supporting variable height/shaped keys will likely be a bit challenging, so that will probably wait for a little while (sorry ISO users).

Please feel free to let me know if you have feedback.
« Last Edit: Thu, 18 December 2014, 22:08:22 by swill »

Offline Melvang

  • Exquisite Lord of Bumfluff
  • * Maker
  • Posts: 4398
  • Location: Waterloo, IA
  • Melvang's Desktop Customs
Re: swill's plate building tool
« Reply #94 on: Thu, 18 December 2014, 22:12:47 »
Just wondering but what sort of user agreement would you have as far as making profit using your tool?

Not that I personally am worried about it but it is a thought that very well could come up in the future.

Also, do you have plans for the additional layers for a sandwich style case planned in the future?
OG Kishsaver, Razer Orbweaver clears and reds with blue LEDs, and Razer Naga Epic.   "Great minds crawl in the same sewer"  Uncle Rich

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #95 on: Thu, 18 December 2014, 23:48:03 »
Just wondering but what sort of user agreement would you have as far as making profit using your tool?

Not that I personally am worried about it but it is a thought that very well could come up in the future.

Also, do you have plans for the additional layers for a sandwich style case planned in the future?

That is a good question.  To be quite honest, I was just planning to open source it and let people use it without restrictions.  In this type of community there is often a fine line between profitable or not, so I don't want to have a user agreement in place that will tip that balance in the wrong direction.  That is a really hard question and to be honest I have not really thought about it.  What I would probably do is put a 'donate' button up on the site with the tool.  I would ask that if people are using the tool for commercial reasons they consider donating.

Its funny because everyone who I have talked to about this project (outside of the keyboard community) have asked me right away, "how do you plan to monetize it".  I probably should have expected this to be asked.  :)  The reality though is that I am doing this mainly as a community service.  This community is full of builders and tinkerers who have good ideas.  I like to do what I can to enable builders because we all benefit from their ideas and hard work.  The main purpose of the tool is to lower the bar for builders to prototype and progress their ideas without having to learn/master CAD. 

Do you (or anyone really) have any suggestions on this topic?  Is there any sort of commonly accepted approach for this sort of thing that seems to work pretty well?  Something like Creative Commons comes to mind, but I have only ever seen that associated to art and photography and such.

As for additional layers.  Yes, I thought about that tonight.  I will tackle that when I automate the placement of the sandwich screw holes.  It will be super easy to do, so yes you can expect that.  It is probably 5-10 lines of code to add that support (once the screw hole placement code is in place).

Offline Melvang

  • Exquisite Lord of Bumfluff
  • * Maker
  • Posts: 4398
  • Location: Waterloo, IA
  • Melvang's Desktop Customs
Re: swill's plate building tool
« Reply #96 on: Fri, 19 December 2014, 00:11:51 »
Just wondering but what sort of user agreement would you have as far as making profit using your tool?

Not that I personally am worried about it but it is a thought that very well could come up in the future.

Also, do you have plans for the additional layers for a sandwich style case planned in the future?

That is a good question.  To be quite honest, I was just planning to open source it and let people use it without restrictions.  In this type of community there is often a fine line between profitable or not, so I don't want to have a user agreement in place that will tip that balance in the wrong direction.  That is a really hard question and to be honest I have not really thought about it.  What I would probably do is put a 'donate' button up on the site with the tool.  I would ask that if people are using the tool for commercial reasons they consider donating.

Its funny because everyone who I have talked to about this project (outside of the keyboard community) have asked me right away, "how do you plan to monetize it".  I probably should have expected this to be asked.  :)  The reality though is that I am doing this mainly as a community service.  This community is full of builders and tinkerers who have good ideas.  I like to do what I can to enable builders because we all benefit from their ideas and hard work.  The main purpose of the tool is to lower the bar for builders to prototype and progress their ideas without having to learn/master CAD. 

Do you (or anyone really) have any suggestions on this topic?  Is there any sort of commonly accepted approach for this sort of thing that seems to work pretty well?  Something like Creative Commons comes to mind, but I have only ever seen that associated to art and photography and such.

As for additional layers.  Yes, I thought about that tonight.  I will tackle that when I automate the placement of the sandwich screw holes.  It will be super easy to do, so yes you can expect that.  It is probably 5-10 lines of code to add that support (once the screw hole placement code is in place).

I hope you didn't think I was sounding to materialistic.  But I am just seeing this as a potential issue for the future.  Say Bigbluesaw.com sees this and wants to imbed the source into their website.  BAM they would be makin a killing off of us.  Or any shop with a laser or waterjet for that matter. 

i think I would suggest looking up the technical differences between the different open source license options.  The differences between what you can and can't do varies quite a bit.
OG Kishsaver, Razer Orbweaver clears and reds with blue LEDs, and Razer Naga Epic.   "Great minds crawl in the same sewer"  Uncle Rich

Offline dorkvader

  • Posts: 6288
  • Location: Boston area
  • all about the "hack" in "geekhack"
Re: swill's plate building tool
« Reply #97 on: Fri, 19 December 2014, 03:34:31 »
I recommend CC-BY or CC-BY-NC[-ND] if you're really paranoid about people making money off you.

"how do you plan to monetize it". If you need more money there are better ways to get it and you can use this as an example of your skills. If people see that and give you a raise / new job then it'll be like money to you. CC-BY also ensures your name gets out there which is always a bonus.

Offline MOZ

  • KING OF THE NEWBIES
  • * Maker
  • Posts: 3981
  • Location: Jo'burg
  • Busy making stuff
Re: swill's plate building tool
« Reply #98 on: Fri, 19 December 2014, 04:27:33 »
"how do you plan to monetize it"? I hate that question, every time I build something, others around me ask this question, be it a module for an existing web solution like XenForo or a keyboard related hobby. Can't a person just do something out of interest without any monetary benefit in mind.


Sorry for the rant. The tool looks great. Perhaps an option to have round corners and specify radius.

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #99 on: Fri, 19 December 2014, 09:38:07 »
I hope you didn't think I was sounding to materialistic.  But I am just seeing this as a potential issue for the future.  Say Bigbluesaw.com sees this and wants to imbed the source into their website.  BAM they would be makin a killing off of us.  Or any shop with a laser or waterjet for that matter. 

i think I would suggest looking up the technical differences between the different open source license options.  The differences between what you can and can't do varies quite a bit.

Not at all.  I really appreciate you asking the question and raising it as a concern.  You have a very good point that my good intentions could be abused if we don't put a little thought into protecting our intellectual property.  I still want to open source the code and I want people in the community to be able to use it or contribute without feeling hampered by a license, but I also don't want our work to be abused by others...