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

0 Members and 1 Guest are viewing this topic.

Offline jdcarpe

  • Literally geekhack
  • * Curator
  • Posts: 8572
  • Location: Odessa, TX
  • God mode active
Re: swill's plate building tool
« Reply #150 on: Tue, 30 December 2014, 00:02:15 »
Looks really good so far. :thumb:

Offline Melvang

  • Exquisite Lord of Bumfluff
  • * Maker
  • Posts: 4367
  • Location: Waterloo, IA
  • Melvang's Desktop Customs
Re: swill's plate building tool
« Reply #151 on: Tue, 30 December 2014, 00:07:05 »
Looks great.  One suggestion, would be to add a note that the padding is extra space from the edge of the caps, not from the switch hole.

Is there going to be an option down the road to be able to input dimensions as decimal inches?  While I do understand that the vast majority of the world deals with metric, there are still some of us that do not.
OG Kishsaver, Razer Orbweaver clears and reds with blue LEDs, and Razer Naga Epic.   "Great minds crawl in the same sewer"  Uncle Rich
Order Form for MDC Mouse Pad
Contact Form for questions

IBM F Revival Services Now with VIDEO

Offline hwood34

  • underwater squad
  • * Exalted Elder
  • Posts: 5705
  • Location: NoVA
  • 3-4-methylenedioxymethamphetamine
Re: swill's plate building tool
« Reply #152 on: Tue, 30 December 2014, 00:12:01 »
Wow, this is looking really cool :thumb: Can't wait to mess around with this thing
IV KBK Info IV | KWK Info
GBs: CF-LXXX | CF-LX R2 |

"Time is Money, Efficiency is Life"

Offline nubbinator

  • Dabbler Supreme
  • * Maker
  • Posts: 8689
  • Location: Orange County, CA
  • Model M "connoisseur"
Re: swill's plate building tool
« Reply #153 on: Tue, 30 December 2014, 00:17:35 »
Will there be Alps support? If there is, you'll be my hero.

Offline pober

  • Posts: 3
Re: swill's plate building tool
« Reply #154 on: Tue, 30 December 2014, 00:40:17 »
Just keeps looking bette and better.

Offline sethk_

  • Grand Master Wizard Pizza
  • * Esteemed Elder
  • Posts: 2715
  • Location: Pittsburgh, Pennsylvania
  • www.kbdhub.com
    • My webstore
Re: swill's plate building tool
« Reply #155 on: Tue, 30 December 2014, 00:44:44 »
Hype train! This is super cool because my school has a CNC machine that I could use to cut one.

Offline dorkvader

  • Posts: 6275
  • Location: Boston area
  • all about the "hack" in "geekhack"
Re: swill's plate building tool
« Reply #156 on: Tue, 30 December 2014, 01:13:27 »
I think it would be nice to add areas to "remove outside" for making KMAC and skeldon plates and suchlike.
Here's halverson's broken KMAC plate. Had he not got a new one, he may have found your tool useful to generate a file to bring to a local cutter.

I prefer steel plates anyway, so I'd replace it on a KMAC if I still had one.

UI looks great though! I am really impressed by the regular updates.

Will there be Alps support? If there is, you'll be my hero.
I'm not a programmer, and I don't speak for swill, but I bet that once it's done, ALPS support would be easy to add.

Offline MOZ

  • KING OF THE NEWBIES
  • * Maker
  • Posts: 3967
  • Location: Jo'burg
  • Busy making stuff
Re: swill's plate building tool
« Reply #157 on: Tue, 30 December 2014, 01:22:23 »
There is going to be Alps support, if you go back a few pages, you'll see the first phase of the development, where we were working on the various cutouts.

Swill, UI looks very good, nice and simple.

Offline byker

  • Literally Canada
  • ** Moderator Emeritus
  • Posts: 3116
  • Location: West Coast - Canada
Re: swill's plate building tool
« Reply #158 on: Tue, 30 December 2014, 01:27:25 »
This looks great Swill! Super excited to see the end-product! I am interested in designing my own layout, so I would definitely love having something like this to use.  :thumb:

Offline FrostyToast

  • Litshoard
  • * Exquisite Elder
  • Posts: 2324
  • Location: Canada
Re: swill's plate building tool
« Reply #159 on: Tue, 30 December 2014, 01:28:28 »
This is delicious!
I am loving how it has turned out so far!
Quote from: elton5354
I don't need anymore keyboards

Offline hwood34

  • underwater squad
  • * Exalted Elder
  • Posts: 5705
  • Location: NoVA
  • 3-4-methylenedioxymethamphetamine
Re: swill's plate building tool
« Reply #160 on: Tue, 30 December 2014, 03:11:48 »
Hype train! This is super cool because my school has a CNC machine that I could use to cut one.
Ooh, that sounds sweet. All mine has is a 3d printer :))
IV KBK Info IV | KWK Info
GBs: CF-LXXX | CF-LX R2 |

"Time is Money, Efficiency is Life"

Offline sethk_

  • Grand Master Wizard Pizza
  • * Esteemed Elder
  • Posts: 2715
  • Location: Pittsburgh, Pennsylvania
  • www.kbdhub.com
    • My webstore
Re: swill's plate building tool
« Reply #161 on: Tue, 30 December 2014, 03:14:20 »
Hype train! This is super cool because my school has a CNC machine that I could use to cut one.
Ooh, that sounds sweet. All mine has is a 3d printer :))
We have 2 so I might try to print a plate
« Last Edit: Tue, 30 December 2014, 14:09:52 by pwnnarwhal »

Offline Evo_Spec

  • (╯ヮ)╯︵⌨
  • * Destiny Supporter
  • Posts: 969
  • Location: Japan
Re: swill's plate building tool
« Reply #162 on: Tue, 30 December 2014, 03:31:05 »
very cool, i'll probably spend a lot of time playing with this =D
                     
GON NerD TKL DTA Edition  Corsair K95 modded with blues

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3317
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #163 on: Tue, 30 December 2014, 07:59:58 »


Looks great.  One suggestion, would be to add a note that the padding is extra space from the edge of the caps, not from the switch hole.

Is there going to be an option down the road to be able to input dimensions as decimal inches?  While I do understand that the vast majority of the world deals with metric, there are still some of us that do not.

My tool is written only in metric. I may be able to take in decimal inches and then immediately convert them to metric and work from there. I had not thought of that. Yes, this is probably possible down the road.

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3317
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #164 on: Tue, 30 December 2014, 08:03:08 »
Will there be Alps support? If there is, you'll be my hero.
Yes, I hope to support alps. I already have one alps switch cutout available (the MX and alps compatible cutout). I do not yet have anything in place for stabilizing alps keys. I only have the MX stabilizers developed so far.

If you can get me specs for additional alps support, I will add it.

Offline azhdar

  • Praise the AZERTY god
  • Posts: 2282
  • Location: France
  • 65% Enlighted
Re: swill's plate building tool
« Reply #165 on: Tue, 30 December 2014, 08:14:16 »
Replying to keep track of the project and to thank swill .

Maybe stupid question , but would the plate generated be notched ?
My classifieds           [IC] Leeku Eagle/Viper PCB(ISO+ANSI) + plate           My Collection           

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3317
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #166 on: Tue, 30 December 2014, 10:02:33 »


I think it would be nice to add areas to "remove outside" for making KMAC and skeldon plates and suchlike.
Here's halverson's broken KMAC plate. Had he not got a new one, he may have found your tool useful to generate a file to bring to a local cutter.
Show Image

I prefer steel plates anyway, so I'd replace it on a KMAC if I still had one.

UI looks great though! I am really impressed by the regular updates.

This is a nice idea and I do have a concept in place that will help support this. What I am currently calling the "mount type", which I think I will rename to "case type", is a dropdown of different supported cases. The other options below will change based on the case selected.  So for example the "poker" case you would not have the mount holes option because those options would be defined by the selected case.

The cases you are talking about will take a lot of work, but I can look into them once I have gotten the easier cases worked out.

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3317
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #167 on: Tue, 30 December 2014, 10:05:39 »
Replying to keep track of the project and to thank swill .

Maybe stupid question , but would the plate generated be notched ?
What do you mean by notched?

It is worth pointing out that I have 4 different switch cutout options drawn and you will be able to select which switch cutout you want to use. 3 of the 4 have cutouts for the switch top to be removed without desoldering.

Offline azhdar

  • Praise the AZERTY god
  • Posts: 2282
  • Location: France
  • 65% Enlighted
Re: swill's plate building tool
« Reply #168 on: Tue, 30 December 2014, 10:24:13 »
Replying to keep track of the project and to thank swill .

Maybe stupid question , but would the plate generated be notched ?
What do you mean by notched?

It is worth pointing out that I have 4 different switch cutout options drawn and you will be able to select which switch cutout you want to use. 3 of the 4 have cutouts for the switch top to be removed without desoldering.
I though notched meant top was removable without desoldering .
Thanks for the answer , now I have some project in mind !
My classifieds           [IC] Leeku Eagle/Viper PCB(ISO+ANSI) + plate           My Collection           

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3317
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #169 on: Tue, 30 December 2014, 15:10:14 »
really small update while my son was napping.  i added the ability to choose which switch opening type you want in the UI.  the tool already supports this, i just forgot to add it to the UI when i was building it.

here is the relevant section...

85865-0

Offline Melvang

  • Exquisite Lord of Bumfluff
  • * Maker
  • Posts: 4367
  • Location: Waterloo, IA
  • Melvang's Desktop Customs
Re: swill's plate building tool
« Reply #170 on: Tue, 30 December 2014, 15:30:44 »
Replying to keep track of the project and to thank swill .

Maybe stupid question , but would the plate generated be notched ?
What do you mean by notched?

It is worth pointing out that I have 4 different switch cutout options drawn and you will be able to select which switch cutout you want to use. 3 of the 4 have cutouts for the switch top to be removed without desoldering.
I though notched meant top was removable without desoldering .
Thanks for the answer , now I have some project in mind !

Just keep in mind that the hole types will get more expensive as you move from the left to the right as they are pictured in swills latest post.  The reason is it just takes longer to cut.  Especially with waterjet.
OG Kishsaver, Razer Orbweaver clears and reds with blue LEDs, and Razer Naga Epic.   "Great minds crawl in the same sewer"  Uncle Rich
Order Form for MDC Mouse Pad
Contact Form for questions

IBM F Revival Services Now with VIDEO

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3317
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #171 on: Tue, 30 December 2014, 15:36:56 »
Replying to keep track of the project and to thank swill .

Maybe stupid question , but would the plate generated be notched ?
What do you mean by notched?

It is worth pointing out that I have 4 different switch cutout options drawn and you will be able to select which switch cutout you want to use. 3 of the 4 have cutouts for the switch top to be removed without desoldering.
I though notched meant top was removable without desoldering .
Thanks for the answer , now I have some project in mind !

Just keep in mind that the hole types will get more expensive as you move from the left to the right as they are pictured in swills latest post.  The reason is it just takes longer to cut.  Especially with waterjet.
Yes. I want to add a little question mark type icon next to each row of options to show an overlay giving more info (like this valuable piece of knowledge).

Thanks for all the good suggestions. :)

Offline hwood34

  • underwater squad
  • * Exalted Elder
  • Posts: 5705
  • Location: NoVA
  • 3-4-methylenedioxymethamphetamine
Re: swill's plate building tool
« Reply #172 on: Sat, 03 January 2015, 17:06:41 »
So is there a general ETA for this? Really excited to get to use it
IV KBK Info IV | KWK Info
GBs: CF-LXXX | CF-LX R2 |

"Time is Money, Efficiency is Life"

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3317
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #173 on: Sat, 03 January 2015, 18:05:29 »
So is there a general ETA for this? Really excited to get to use it
Hoping to have a beta available in a week or two. I need to verify that all my cutouts work by getting a sample cut with all the openings before I really let people go nuts with it without a disclaimer.   Make sense?

Offline hwood34

  • underwater squad
  • * Exalted Elder
  • Posts: 5705
  • Location: NoVA
  • 3-4-methylenedioxymethamphetamine
Re: swill's plate building tool
« Reply #174 on: Sat, 03 January 2015, 18:17:55 »
So is there a general ETA for this? Really excited to get to use it
Hoping to have a beta available in a week or two. I need to verify that all my cutouts work by getting a sample cut with all the openings before I really let people go nuts with it without a disclaimer.   Make sense?
alright, cool :thumb:
IV KBK Info IV | KWK Info
GBs: CF-LXXX | CF-LX R2 |

"Time is Money, Efficiency is Life"

Offline neverused

  • Posts: 571
Re: swill's plate building tool
« Reply #175 on: Sat, 03 January 2015, 19:05:08 »
Quick question, I don't think I saw this answered hey but since this uses the text output from the keyboard layout editor, how do you input a 2x1 key such as the enter or + on a numpad? Thanks for all of your hard work on this, looks great!

Offline jdcarpe

  • Literally geekhack
  • * Curator
  • Posts: 8572
  • Location: Odessa, TX
  • God mode active
Re: swill's plate building tool
« Reply #176 on: Sat, 03 January 2015, 19:14:44 »
Quick question, I don't think I saw this answered hey but since this uses the text output from the keyboard layout editor, how do you input a 2x1 key such as the enter or + on a numpad? Thanks for all of your hard work on this, looks great!

You can specify vertical dimension of each key in that tool.

Offline neverused

  • Posts: 571
Re: swill's plate building tool
« Reply #177 on: Sat, 03 January 2015, 19:48:25 »
Quick question, I don't think I saw this answered hey but since this uses the text output from the keyboard layout editor, how do you input a 2x1 key such as the enter or + on a numpad? Thanks for all of your hard work on this, looks great!

You can specify vertical dimension of each key in that tool.

Oh wow I didn't know, what's the syntax to do so?

Offline jdcarpe

  • Literally geekhack
  • * Curator
  • Posts: 8572
  • Location: Odessa, TX
  • God mode active
Re: swill's plate building tool
« Reply #178 on: Sat, 03 January 2015, 19:51:45 »
Quick question, I don't think I saw this answered hey but since this uses the text output from the keyboard layout editor, how do you input a 2x1 key such as the enter or + on a numpad? Thanks for all of your hard work on this, looks great!

You can specify vertical dimension of each key in that tool.

Oh wow I didn't know, what's the syntax to do so?

Height. :)



Offline neverused

  • Posts: 571
Re: swill's plate building tool
« Reply #179 on: Sat, 03 January 2015, 20:00:00 »
Wow thank you, never noticed that.

Swill, if you're looking for a volunteer, I'd be happy to use your tool to design and cut my first personal project.

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3317
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #180 on: Sat, 03 January 2015, 20:32:00 »
Quick question, I don't think I saw this answered hey but since this uses the text output from the keyboard layout editor, how do you input a 2x1 key such as the enter or + on a numpad? Thanks for all of your hard work on this, looks great!

You can specify vertical dimension of each key in that tool.

Yes, this is correct.  The layout editor can handle it already.  My tool in its current state does not yet handle keys that are more than 1 unit tall.  This is one of the features I want to add before I put this into beta.

Features before beta:
1. Add the ability to have keys with heights > 1 unit.  I may write a special case for the ISO enter, but we will see...
2. Add the drawing of the additional layers of the layered sandwich case.  This would include; the switch plate, an open layer (a ring with a cutout for a usb), a closed layer (a ring without a cutout) and the bottom plate.  I also want to allow you to specify a different size hole in the bottom plate so you can make it a little smaller and actually tap the bottom plate (so you don't need nuts on the bottom of the sandwich plate).  This is how I will be making my sandwich plates...

Once I get everything wired up in my UI so all the current functionality has been addressed, I will start working on these two features and getting them integrated into the UI.  Once I have these two features built and have had a chance to verify that all my cutouts work, I will make it publically available for people to start playing with and testing...

I work two jobs and I have a 18 month old, so my free time has been pretty limited.  For about the last month, I have put pretty much every minute of my free time into this.  Getting everything off the ground is the hardest part.  Once I have something live, it is easier to take on one feature at a time.  I am targeting to get something live in a week or two, but that is assuming I can keep finding a little time every day.  I have been getting about an hour every night between midnight and 1am recently, but I can't do that forever.  :P

Offline dorkvader

  • Posts: 6275
  • Location: Boston area
  • all about the "hack" in "geekhack"
Re: swill's plate building tool
« Reply #181 on: Sat, 03 January 2015, 22:19:15 »

Hoping to have a beta available in a week or two. I need to verify that all my cutouts work by getting a sample cut with all the openings before I really let people go nuts with it without a disclaimer.   Make sense?

Very quick!

I recommend getting some acrylic lasercut to test. It's very cheap and you can see if it works or not by popping in some switches. Once you're "more sure" you can get a metal plate made but by then you should be pretty sure the switches will fit and then you can use the more expensive metal test to make sure tolerances are where you want.

If you like to test out edges, I'd love to try it out to make a new skeldon plate. ;)


1. Add the ability to have keys with heights > 1 unit.  I may write a special case for the ISO enter, but we will see...
If you look at the code, the way he does the ISO enter key (and just about any 2 height key with different thicknesses on each row like the AT model F enter key) is really awkward.

Quote
I work two jobs and I have a 18 month old, so my free time has been pretty limited.  For about the last month, I have put pretty much every minute of my free time into this. 
We love you swill!
« Last Edit: Sat, 03 January 2015, 22:21:23 by dorkvader »

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3317
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #182 on: Sat, 03 January 2015, 23:58:39 »

Hoping to have a beta available in a week or two. I need to verify that all my cutouts work by getting a sample cut with all the openings before I really let people go nuts with it without a disclaimer.   Make sense?

Very quick!

I recommend getting some acrylic lasercut to test. It's very cheap and you can see if it works or not by popping in some switches. Once you're "more sure" you can get a metal plate made but by then you should be pretty sure the switches will fit and then you can use the more expensive metal test to make sure tolerances are where you want.

If you like to test out edges, I'd love to try it out to make a new skeldon plate. ;)

I have a few things on my plate before I get to the removed excess edge space for your skeldon plate.  :)  I will try to get to that once I cover more of the 90% use case situations.  :)

Good suggestions on the laser cutting though.  I may just get my sample plate cut in both acrylic and aluminum at the same time to speed up the process of testing.  I need to call those guys tomorrow to see how much it is going to cost me to get it cut.


1. Add the ability to have keys with heights > 1 unit.  I may write a special case for the ISO enter, but we will see...
If you look at the code, the way he does the ISO enter key (and just about any 2 height key with different thicknesses on each row like the AT model F enter key) is really awkward.

Yes, it is really awkward, but I have to work with it since that is what he defined.  It ain't going to be pretty, but it should be functional.  For keys that are > 1 unit high and are an odd shape, I may just handle them on a case by case basis and if I hit them, I will just put the switch cutout where it needs to be for that situation.  It will be pretty impossible for me to know where to actually draw the cutout if I don't do it that way.  Like for example, here is the ISO code:  {x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"Enter"
From that, how would I know where to actually make my cuts?  If I can determine, "hey this is an ISO enter" and I code for handling an ISO enter as its own entity, then I think I will have a better chance of creating consistent results for people.

Speaking of which.  Does anyone know where the ISO enter cutout is placed?  I am guessing it has a 2unit vertical stabilizer?  I have never actually seen an ISO enter IRL with the cap off.

We love you swill!

Thanks.  :)  I have to admit that you guys being active in this thread and cheering me on is helping me stay motivated to get this thing finished.  The scope has grown a bit since I started (every project is like that), but I think the ideas have been really good and when this thing is finished it is going to be pretty epic.  :)

Offline MOZ

  • KING OF THE NEWBIES
  • * Maker
  • Posts: 3967
  • Location: Jo'burg
  • Busy making stuff
Re: swill's plate building tool
« Reply #183 on: Sun, 04 January 2015, 04:54:48 »
Swill, check the CAD resources thread, the ISO enter is a 2u stab vertical center on 2u, and horizontal center on 1.25u.

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3317
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #184 on: Sun, 04 January 2015, 08:25:30 »
Swill, check the CAD resources thread, the ISO enter is a 2u stab vertical center on 2u, and horizontal center on 1.25u.
Perfect, I was hoping that was the case.  I may not even need to do a special case for it. :). Thx. I will review the cad resource thread for mor details.

Offline dorkvader

  • Posts: 6275
  • Location: Boston area
  • all about the "hack" in "geekhack"
Re: swill's plate building tool
« Reply #185 on: Sun, 04 January 2015, 23:32:13 »

Yes, it is really awkward, but I have to work with it since that is what he defined.  It ain't going to be pretty, but it should be functional.  For keys that are > 1 unit high and are an odd shape, I may just handle them on a case by case basis and if I hit them, I will just put the switch cutout where it needs to be for that situation.  It will be pretty impossible for me to know where to actually draw the cutout if I don't do it that way.  Like for example, here is the ISO code:  {x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"Enter"
From that, how would I know where to actually make my cuts?  If I can determine, "hey this is an ISO enter" and I code for handling an ISO enter as its own entity, then I think I will have a better chance of creating consistent results for people.

I spent some time figuring it out, I never got the hang of the little GUI for modifying the keycap, so I instead learned how to modify the raw code and it was easier and faster anyway. Here's the relevant code for the "enter" key and the keys surrounding it
Code: [Select]
["}\n]",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"Enter"],
[{x:0.25},"~\n#"]

And if we add a key to the right on each row:
Code: [Select]
["}\n]",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"Enter",""],
[{x:0.25},"~\n#",""]
As you see it covers the bottom of the enter, so you have to do the following to get it to work
Code: [Select]
["}\n]",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"Enter",""],
[{x:0.25},"~\n#",{x:1.25},""]
Now this is as expected, but if you start playing with the parameters of that "enter" key, you start to see how it was constructed. Here's the example of my differently shaped "enter" key for the displaywriter
https://geekhack.org/index.php?topic=59973.10

Code: [Select]
["\n","[\n]",{x:0.25,a:7,f:2,h:2,h2:1,x2:-0.25},"RET"],
[{x:0.25},"\"\n'","3\n2"]
In this case, I used the x, x2, h and h2 parameters to define it.

I also had to do some modification to get a "reverse L style" enter.
http://www.keyboard-layout-editor.com/#/layouts/b6f9cb4d66a323330a8509bc0efe3330
 (note that it is defined from the "bottom")
Code: [Select]
["{\n[","}\n]"],
[{x:0.25},"\"\n'",{a:7,f:2,w:2,w2:1.25,h2:2,x2:0.75,y2:-1},"RET"]

Note I had to use the parameters w,w2,h2,x2 and y2 (I think it's assumed that h1,x1 and y1 are all 1)

So it's like you're putting 2 keycaps together into one. I think I spent about a half an hour trynig to make it work. From what I remember, you have to define it from either the top or the bottom (depending on what style you have), and the "second" part of the keycap overlaps the first in such a way that they look like one. Keys that are 2 height that are the same on each level (like numpad enter) are much easier with just an "{h:2} parameter.

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3317
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #186 on: Mon, 05 January 2015, 00:05:52 »

Yes, it is really awkward, but I have to work with it since that is what he defined.  It ain't going to be pretty, but it should be functional.  For keys that are > 1 unit high and are an odd shape, I may just handle them on a case by case basis and if I hit them, I will just put the switch cutout where it needs to be for that situation.  It will be pretty impossible for me to know where to actually draw the cutout if I don't do it that way.  Like for example, here is the ISO code:  {x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"Enter"
From that, how would I know where to actually make my cuts?  If I can determine, "hey this is an ISO enter" and I code for handling an ISO enter as its own entity, then I think I will have a better chance of creating consistent results for people.

I spent some time figuring it out, I never got the hang of the little GUI for modifying the keycap, so I instead learned how to modify the raw code and it was easier and faster anyway. Here's the relevant code for the "enter" key and the keys surrounding it
Code: [Select]
["}\n]",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"Enter"],
[{x:0.25},"~\n#"]

And if we add a key to the right on each row:
Code: [Select]
["}\n]",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"Enter",""],
[{x:0.25},"~\n#",""]
As you see it covers the bottom of the enter, so you have to do the following to get it to work
Code: [Select]
["}\n]",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"Enter",""],
[{x:0.25},"~\n#",{x:1.25},""]
Now this is as expected, but if you start playing with the parameters of that "enter" key, you start to see how it was constructed. Here's the example of my differently shaped "enter" key for the displaywriter
https://geekhack.org/index.php?topic=59973.10

Code: [Select]
["\n","[\n]",{x:0.25,a:7,f:2,h:2,h2:1,x2:-0.25},"RET"],
[{x:0.25},"\"\n'","3\n2"]
In this case, I used the x, x2, h and h2 parameters to define it.

I also had to do some modification to get a "reverse L style" enter.
http://www.keyboard-layout-editor.com/#/layouts/b6f9cb4d66a323330a8509bc0efe3330
 (note that it is defined from the "bottom")
Code: [Select]
["{\n[","}\n]"],
[{x:0.25},"\"\n'",{a:7,f:2,w:2,w2:1.25,h2:2,x2:0.75,y2:-1},"RET"]

Note I had to use the parameters w,w2,h2,x2 and y2 (I think it's assumed that h1,x1 and y1 are all 1)

So it's like you're putting 2 keycaps together into one. I think I spent about a half an hour trynig to make it work. From what I remember, you have to define it from either the top or the bottom (depending on what style you have), and the "second" part of the keycap overlaps the first in such a way that they look like one. Keys that are 2 height that are the same on each level (like numpad enter) are much easier with just an "{h:2} parameter.

Thanks for doing this write up.  Yes, I also go straight to the Raw Data and just code what I want because it makes more sense to me that way. 

For me, the 'shape' of the key is less important than the actual location of the cutout.  So for example, after further review I have realized that just supporting keys that are more than one unit tall with the basic logic for supporting 'x' and 'y' will actually take care of the ISO key.  That is kind of lucky.  This is because you can basically describe where the switch needs to be cut and what the stab will look like with the following code (which the iso key has): {x:0.25,w:1.25,h:2}
Yes, the ISO enter key has more details than that to describe the shape, but these details are enough for me to know where to draw the switch cutout.

Now as you have shown in your examples, it depends on which row the person defines the 2 unit key on.  In the following example I have defined them on the first and fourth rows (to illustrate my point).  The one on the first row overlaps down, while the one on the fourth row overlaps up.

Code: [Select]
["","",{h:2},""],
["",""],
["",""],
["","",{h:2,y:-1},""]

This is similar to your reverse L style key described by the following code (your code):

Code: [Select]
["{\n[","}\n]"],
[{x:0.25},"\"\n'",{a:7,f:2,w:2,w2:1.25,h2:2,x2:0.75,y2:-1},"RET"]

Now what is interesting about this one is how it is stabilized.  It is both two units wide (at the bottom) and two units tall.  So which way is it stabilized?  For this one, I am not entirely sure where the switch cutout should be.  Do you know? 
« Last Edit: Mon, 05 January 2015, 00:08:19 by swill »

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3317
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #187 on: Mon, 05 January 2015, 07:58:15 »
Mainly @dorkvader...

In light of this (simple example), I may have to rethink how I am going to do the vertical keys.

Code: [Select]
["","",{h:2},""],
["",""],
["",""],
["","",{h:2,y:-1},""]

I forgot about the fact that you could have a key with height > 1 described on or after the rows it affects.  I was originally thinking that I was going to be able to process my plate from the top left corner across and down and know how to place all the keys.  This is not actually the case though because if someone uses the {y:-1} format, then I don't see the height formatting (which affects the previous row) until after I have already cut the switches for that row.  I was thinking I was going to be able to basically 'keep track' of where the heights affect the other rows and account for them with {x:--} when I draw that row.  Since I can draw a row before I realize that it is affected by a height > 1 key, I have to change the way I am going to do this.

I think I will have to rewrite the way I draw the plate to account for this.  I think I need to do a first pass to locate all the centers of the cutouts and record them.  If I encounter height > 1 keys which affect other rows, I will need to modify where the centers are in the row that is affected to account for the height > 1 key.

I am going to have to think about this a little more because it does make things a little tricker.  I should be able to figure out a realistic solution though...

Offline dorkvader

  • Posts: 6275
  • Location: Boston area
  • all about the "hack" in "geekhack"
Re: swill's plate building tool
« Reply #188 on: Mon, 05 January 2015, 13:02:11 »
If it's going to be that tricky, it might be better to add ISO support later.

I mean, there aren't even that many PCBs that support ISO (some of the newer asian ones like GON and red scarf do though) and it's not as popular for custom PCB design as ANSI.

I think the following shows how hard it was for me to grasp how it works (or doesn't)
Code: [Select]
["","",{h:2},""],
["",""],
["","",{h:2},""],
["",""],

[{y:0.5}],
["","",{h:2},""],
["",""],
["",""],
["","",{h:2,y:-1},""],

[{y:2.5}],
["",""],
["","",{h:2,y:-1},""],
["",""],
["","",{h:2,y:-1},""]

The first two work but the third does not. Though this may just be my own complaints as an end-user, I have no programming experience so maybe I'm missing something.

Still, it might be prudent to contact the athour to make sure that only "legal" code be supported by your tool as well.
« Last Edit: Mon, 05 January 2015, 13:12:12 by dorkvader »

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3317
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #189 on: Mon, 05 January 2015, 14:39:44 »
If it's going to be that tricky, it might be better to add ISO support later.

I mean, there aren't even that many PCBs that support ISO (some of the newer asian ones like GON and red scarf do though) and it's not as popular for custom PCB design as ANSI.

I think the following shows how hard it was for me to grasp how it works (or doesn't)
Code: [Select]
["","",{h:2},""],
["",""],
["","",{h:2},""],
["",""],

[{y:0.5}],
["","",{h:2},""],
["",""],
["",""],
["","",{h:2,y:-1},""],

[{y:2.5}],
["",""],
["","",{h:2,y:-1},""],
["",""],
["","",{h:2,y:-1},""]

The first two work but the third does not. Though this may just be my own complaints as an end-user, I have no programming experience so maybe I'm missing something.

Still, it might be prudent to contact the athour to make sure that only "legal" code be supported by your tool as well.

Ok, that third one is just messing with my head.  As soon as you specify the -y value in that one the whole row just disappears other than the offset of the y.  Ummm, what???  I think thats a bug...

I have tried to contact the author, but he has not gotten back to me.  His code is open source and available on github, so I just go review the code if I have questions about how something works. 

Hopefully, as long as someone can make it work in his UI and I can support those use cases, I think we are good.  I think ISO support and the vertical enter keys are possible without too much issue.  Using a vertical enter key with a -y value and then putting keys to the right of it is where things get a little tricky because I currently don't have any way to know about the space the vertical key will take up in the line above it when I draw the line above it.  I need to rebuild my system so I initially go through all the openings and 'place' them and if the placement affects other rows, it makes the change to the placement of those rows in the placement phase.  Once all the keys have been placed, then it loops through and cuts the switches at each placement.  I think this approach will get around this additional 'feature' of the keyboard-layout-editor.

Thanks for bringing this to my attention.  It would have sucked to have built everything only to realize that I had missed a major use case.  :)

Offline nubbinator

  • Dabbler Supreme
  • * Maker
  • Posts: 8689
  • Location: Orange County, CA
  • Model M "connoisseur"
Re: swill's plate building tool
« Reply #190 on: Mon, 05 January 2015, 18:04:41 »
Stupid question that may have already been answered, but have you thought about having "standard" plate options pre-made for people to select and download?  Like ISO and ANSI Phantom, ISO and ANSI 60%, and so on.

Offline dorkvader

  • Posts: 6275
  • Location: Boston area
  • all about the "hack" in "geekhack"
Re: swill's plate building tool
« Reply #191 on: Mon, 05 January 2015, 18:12:06 »
Stupid question that may have already been answered, but have you thought about having "standard" plate options pre-made for people to select and download?  Like ISO and ANSI Phantom, ISO and ANSI 60%, and so on.

IIRC those are already available
https://geekhack.org/index.php?topic=47744.0

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3317
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #192 on: Mon, 05 January 2015, 23:41:21 »
Stupid question that may have already been answered, but have you thought about having "standard" plate options pre-made for people to select and download?  Like ISO and ANSI Phantom, ISO and ANSI 60%, and so on.

Yes, I will be doing preset layouts.  So like standard 60% ANSI, 60% ISO or 60% ANSI Pure, Phantom, etc, etc...

I will also be doing preset cases, so like a filco case or a poker case or such and it will predefine the dimensions of the plate and where the mount holes go.  You will also have the option to build a sandwich case for any of the layouts as well.  So just because you choose a Phantom plate does not mean you want to put it in a phantom compatible case, you might want to make your own sandwich case.  My sandwich case will give you the cad for every layer of the case as well.  I will also make the top layer hole size independent of the bottom layer hole size so you can make the bottom layer holes smaller and then tap the bottom layer and remove the need for nuts completely...

Make sense?
« Last Edit: Tue, 06 January 2015, 00:10:56 by swill »

Offline nubbinator

  • Dabbler Supreme
  • * Maker
  • Posts: 8689
  • Location: Orange County, CA
  • Model M "connoisseur"
Re: swill's plate building tool
« Reply #193 on: Mon, 05 January 2015, 23:42:45 »
Yes it does.  That will be awesome.  I'm looking forward to this tool.

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3317
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool
« Reply #194 on: Tue, 06 January 2015, 21:14:54 »
I have been making slow and steady progress on this tool.  It has been a little more work than I was expecting and I am not really at a point where I can release it yet, but I do have a working prototype.

Here you go...


Items I want to resolve before I put it live for people to play with:

1. Support vertical empty space (like between a fn and number row on a TKL).
2. Support keys with height > 1 unit.
3. Add the additional layers of the cad drawing so you have all the layers you need to build a sandwich case.


I am a little behind the schedule I was hoping to hit, so I probably won't launch anything for another couple weeks.  Also, my wife is going into a very hard period of her school for the next two months, so my time may be more limited for the next little while.  I will keep chugging along and give you guys updates...  :)

Offline MOZ

  • KING OF THE NEWBIES
  • * Maker
  • Posts: 3967
  • Location: Jo'burg
  • Busy making stuff
Re: swill's plate building tool
« Reply #195 on: Wed, 07 January 2015, 01:04:08 »
Thanks for the update swill. Don't stress yourself over it, take it easy. I know more than a few projects where I burnt out due to the exhaustion, and tying to work in the small time I had between my busy schedule.

Offline dorkvader

  • Posts: 6275
  • Location: Boston area
  • all about the "hack" in "geekhack"
Re: swill's plate building tool
« Reply #196 on: Wed, 07 January 2015, 09:56:03 »


Items I want to resolve before I put it live for people to play with:

Cheers!

http://builder.swillkb.com/
f5 f5 f5
« Last Edit: Wed, 07 January 2015, 09:59:44 by dorkvader »

Offline Charger

  • Posts: 166
Re: swill's plate building tool
« Reply #197 on: Wed, 07 January 2015, 10:04:55 »
I'm not sure if this has been asked so i will ask it and hope it hasn't

Will this support big-ass enter as well?

Offline MOZ

  • KING OF THE NEWBIES
  • * Maker
  • Posts: 3967
  • Location: Jo'burg
  • Busy making stuff
Re: swill's plate building tool
« Reply #198 on: Wed, 07 January 2015, 10:29:58 »
I'm not sure if this has been asked so i will ask it and hope it hasn't

Will this support big-ass enter as well?

Big-ass enter is complicated, I've seen a number of different arrangements of mounting stems.

Offline Dihedral

  • Posts: 826
  • Location: United Kingdom
  • Mostly Harmless
Re: swill's plate building tool
« Reply #199 on: Wed, 07 January 2015, 10:40:34 »
I thought something that took keyboard-layout-editor markup and turned it into a plate dwg would be awesome, so good luck with this project!