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

0 Members and 2 Guests 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 [builder.swillkb.com]
« Reply #1400 on: Sat, 03 October 2015, 14:05:24 »
This is awesome, and I am particularly happy since I am going to try to modify your Kalerator code to be KiCAD compatible...

That would be awesome! If you do this I'd love to work with you so that kalerator could output either EAGLE or KiCAD when generating your PCB.
I am also looking at ways to add kicad support to my main builder as well, so I am also very interested. 

Offline potatowire

  • Posts: 167
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1401 on: Sat, 03 October 2015, 22:24:27 »
This is awesome, and I am particularly happy since I am going to try to modify your Kalerator code to be KiCAD compatible...

That would be awesome! If you do this I'd love to work with you so that kalerator could output either EAGLE or KiCAD when generating your PCB.
I am also looking at ways to add kicad support to my main builder as well, so I am also very interested.
I'll soon be on extended travel away from my family, and this is the project I'll use to occupy my free time. I will share all meaningful progress.

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1402 on: Sat, 03 October 2015, 22:48:33 »
This is awesome, and I am particularly happy since I am going to try to modify your Kalerator code to be KiCAD compatible...

That would be awesome! If you do this I'd love to work with you so that kalerator could output either EAGLE or KiCAD when generating your PCB.
I am also looking at ways to add kicad support to my main builder as well, so I am also very interested.
I'll soon be on extended travel away from my family, and this is the project I'll use to occupy my free time. I will share all meaningful progress.

cool.  :)

Offline StinkyTheDonut

  • Posts: 52
  • Location: Yes
  • I like rubber domes.
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1403 on: Mon, 05 October 2015, 05:22:13 »
I tried to make a drawing for a single key and it's not working.
If i just put a single key, the drawing comes out weird and dislocated no matter what settings I try.
Once there is at least one other key, any layout seems to be fine.
I only have a washable keyboard.

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1404 on: Mon, 05 October 2015, 06:20:32 »
I tried to make a drawing for a single key and it's not working.
If i just put a single key, the drawing comes out weird and dislocated no matter what settings I try.
Once there is at least one other key, any layout seems to be fine.
Strange. I will check into that.

So your input is basically just the following?

[""]

Offline StinkyTheDonut

  • Posts: 52
  • Location: Yes
  • I like rubber domes.
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1405 on: Mon, 05 October 2015, 18:20:19 »
I just copied the layout editor and used [{a:7},""]
Tested [""] just now and got the same thing.
I tried moving  the single key around and originally I was doing a 6.25 space bar.
All of the drawings end up weird as long as there is only 1 key.

Also, I was messing around with random giant sized key and noticed that the plate size doesn't account for the giant key unless there is another key in a higher row.
here it is being ignored
[{y:1,a:7,w:5,h:3},"",""]

But the moment the giant key is accounted for, the horizontal position of the other key is then ignored instead
[{y:0.75,x:5,a:7},""],
[{y:-0.75,w:5,h:3},""]

And after more testing it seems that happens for any long keys with another key.
long key ignored
[{y:1,a:7,h:2},"",""]

other key ignored
[{x:1,a:7},""],
[{h:2},""]


I'm too lazy to mess around anymore right now lol.
I only have a washable keyboard.

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1406 on: Mon, 05 October 2015, 18:22:22 »
I just copied the layout editor and used [{a:7},""]
Tested [""] just now and got the same thing.
I tried moving  the single key around and originally I was doing a 6.25 space bar.
All of the drawings end up weird as long as there is only 1 key.

Also, I was messing around with random giant sized key and noticed that the plate size doesn't account for the giant key unless there is another key in a higher row.
here it is being ignored
[{y:1,a:7,w:5,h:3},"",""]

But the moment the giant key is accounted for, the horizontal position of the other key is then ignored instead
[{y:0.75,x:5,a:7},""],
[{y:-0.75,w:5,h:3},""]

And after more testing it seems that happens for any long keys with another key.
long key ignored
[{y:1,a:7,h:2},"",""]

other key ignored
[{x:1,a:7},""],
[{h:2},""]


I'm too lazy to mess around anymore right now lol.
Thanks for the testing. I will try to look into this tonight. Sorry for the delay.

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1407 on: Mon, 05 October 2015, 23:05:03 »
I just copied the layout editor and used [{a:7},""]
Tested [""] just now and got the same thing.
I tried moving  the single key around and originally I was doing a 6.25 space bar.
All of the drawings end up weird as long as there is only 1 key.

Also, I was messing around with random giant sized key and noticed that the plate size doesn't account for the giant key unless there is another key in a higher row.
here it is being ignored
[{y:1,a:7,w:5,h:3},"",""]

But the moment the giant key is accounted for, the horizontal position of the other key is then ignored instead
[{y:0.75,x:5,a:7},""],
[{y:-0.75,w:5,h:3},""]

And after more testing it seems that happens for any long keys with another key.
long key ignored
[{y:1,a:7,h:2},"",""]

other key ignored
[{x:1,a:7},""],
[{h:2},""]


I'm too lazy to mess around anymore right now lol.

Just did some testing.  Yep, definitely some issues here.  I will review this logic.  This is probably due to the recent changes I made to support rotated clusters since I completely changed the way the plate dimensions and such were drawn.  I even had a comment in my code to review the placement of the top left most key, but I didn't find any issues with it when I was testing standard layouts, so I pushed the code.  I will have to spend a few train rides tracking down these issues.  Thanks for reporting them...  :)  If you happen to find more interesting edge cases, let me know.  I think what you have submitted so far is pretty good coverage of the types of errors with the placement of the first couple keys when they are non-standard keys.

Offline StinkyTheDonut

  • Posts: 52
  • Location: Yes
  • I like rubber domes.
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1408 on: Tue, 06 October 2015, 08:53:45 »
Glad Im being helpful  :)

turns out its not just the big keys.
[{x:1,a:7},""],
[{y:-0.75},""]


[{x:0.25,a:7},""],
[""]


I only have a washable keyboard.

Offline skullydazed

  • * Vendor
  • Posts: 307
  • Location: Bay Area, CA
  • Had to turn PM's off. Email info@clueboard.co!
    • Clueboard
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1409 on: Tue, 06 October 2015, 12:01:05 »
I've been working on some more features in the python version. Hopefully these will be easy enough to port over to golang, they're pretty handy for generating cases for different PCBs. I've been testing them on the laser cutter at my makerspace which I'm still getting the settings dialed in on, so I wouldn't consider these proved yet, but they're not untested.

Code: [Select]
skully@builder:~/kb_builder$ ./kb_cli -f clueboard_ansi_basic.kle --case sandwich --usb-offset 134.4125 --stab matias --switch alps --corners 4 --pcb-height 4 --width 10

This will build a plate and case for matias stabilizers, which are alps-like for 2/2.25/2.75u keys, but costar for the spacebar. It will also make a little more vertical room inside the case to accommodate an existing PCB. Finally, it will move the USB cutout to the right by 134.4125 mm so that it lines up with the PCB's usb connector. When it's all said and done I end up with a plate and an open layer that look like this:





The last feature I need to add is the ability to cut the corners instead of rounding them, and then I can make all of this work in the web UI too.

Swill, would you rather get new features to the engine early so you can review smaller chunks, or wait until I have the web ui components done too?

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1410 on: Tue, 06 October 2015, 12:31:31 »
Swill, would you rather get new features to the engine early so you can review smaller chunks, or wait until I have the web ui components done too?

As you wish.  I trust your ability, so I will do a quick review of the code before I merge it, but I will let you do the majority of the 'testing to make sure everything is not broken' is done.  I will periodically do a fresh install from source and validate that things are working for the most part, but I have not worked an actual test suite into this (maybe I should look into this).

Offline skullydazed

  • * Vendor
  • Posts: 307
  • Location: Bay Area, CA
  • Had to turn PM's off. Email info@clueboard.co!
    • Clueboard
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1411 on: Tue, 06 October 2015, 12:50:40 »
As you wish.  I trust your ability, so I will do a quick review of the code before I merge it, but I will let you do the majority of the 'testing to make sure everything is not broken' is done.  I will periodically do a fresh install from source and validate that things are working for the most part, but I have not worked an actual test suite into this (maybe I should look into this).

OK. I'm gonna test this design on the laser today and maybe do some tweaking, and then I'll send my work over.

I can help with that test suite if you want, I've done a bit of that for my old day job. If you want a good starting place I use py.test in kalerator here:

https://github.com/skullydazed/kalerator/tree/master/tests

I can probably put together a basic framework for kb_builder too.

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1412 on: Tue, 06 October 2015, 13:06:46 »
As you wish.  I trust your ability, so I will do a quick review of the code before I merge it, but I will let you do the majority of the 'testing to make sure everything is not broken' is done.  I will periodically do a fresh install from source and validate that things are working for the most part, but I have not worked an actual test suite into this (maybe I should look into this).

OK. I'm gonna test this design on the laser today and maybe do some tweaking, and then I'll send my work over.

I can help with that test suite if you want, I've done a bit of that for my old day job. If you want a good starting place I use py.test in kalerator here:

https://github.com/skullydazed/kalerator/tree/master/tests

I can probably put together a basic framework for kb_builder too.

cool.  thanks...  can you post what you are using for the sizing for the alps only cutout as well a the stabilizer sizes and locations so others in the community can validate the details?  jdcarpe has been a great resource for validating the numbers being used since has has a lot of experience in plate design. 

Off the top of my head, I think the alps cutout is: 15.6mm x 12.9mm

I don't remember what the location of the stabilizers are and their size, but I believe I JD sent that to me and I should have it in DXF file on my computer, just need to go find it.

Offline skullydazed

  • * Vendor
  • Posts: 307
  • Location: Bay Area, CA
  • Had to turn PM's off. Email info@clueboard.co!
    • Clueboard
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1413 on: Tue, 06 October 2015, 13:41:56 »
Here's the cutout for the alps switch:

Code: [Select]
                (7.75-k,-6.4+k), (7.75-k,6.4-k),
                (-7.75+k,6.4-k), (-7.75+k,-6.4+k),
                (7.75-k,-6.4+k),

That works perfectly in both the 1.2mm plate from BBS and in the 2.4mm acrylic I cut on the laser cutter, but the laser seems to have a .3mm variance. I think if it were .1mm bigger it wouldn't work on the 1.1mm plate, as it's not exactly tight now.

Here are the stabs:

Code: [Select]
                if w == 2.75:
                    mid_offset = 16.7
                else:
                    mid_offset = 12.7
                top_y = 4
                bottom_y = 9
                inside_x = mid_offset
                outside_x = inside_x + 2.7

                points_r = [
                    (inside_x+k, top_y+k), (outside_x-k, top_y+k),
                    (outside_x-k, bottom_y-k), (inside_x+k, bottom_y-k),
                    (inside_x+k, top_y+k)
                ]
                inside_x *= -1
                outside_x *= -1
                points_l = [
                    (inside_x+k, top_y+k), (outside_x-k, top_y+k),
                    (outside_x-k, bottom_y-k), (inside_x+k, bottom_y-k),
                    (inside_x+k, top_y+k)
                ]

This puts the mid-point of the box either 16.7 or 12.7mm out from 0, and equal to the bottom of the switch cutout. The box itself is 2.7mm x 5mm. This is based on measuring with my micrometer, so I am not terribly confident in the stab cutouts.

I haven't yet implemented the alps spacebar stabs. Since matias uses costar stabs there I have decided to put that off. :)

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1414 on: Tue, 06 October 2015, 14:07:09 »
Here's the cutout for the alps switch:

Code: [Select]
                (7.75-k,-6.4+k), (7.75-k,6.4-k),
                (-7.75+k,6.4-k), (-7.75+k,-6.4+k),
                (7.75-k,-6.4+k),

That works perfectly in both the 1.2mm plate from BBS and in the 2.4mm acrylic I cut on the laser cutter, but the laser seems to have a .3mm variance. I think if it were .1mm bigger it wouldn't work on the 1.1mm plate, as it's not exactly tight now.

Here are the stabs:

Code: [Select]
                if w == 2.75:
                    mid_offset = 16.7
                else:
                    mid_offset = 12.7
                top_y = 4
                bottom_y = 9
                inside_x = mid_offset
                outside_x = inside_x + 2.7

                points_r = [
                    (inside_x+k, top_y+k), (outside_x-k, top_y+k),
                    (outside_x-k, bottom_y-k), (inside_x+k, bottom_y-k),
                    (inside_x+k, top_y+k)
                ]
                inside_x *= -1
                outside_x *= -1
                points_l = [
                    (inside_x+k, top_y+k), (outside_x-k, top_y+k),
                    (outside_x-k, bottom_y-k), (inside_x+k, bottom_y-k),
                    (inside_x+k, top_y+k)
                ]

This puts the mid-point of the box either 16.7 or 12.7mm out from 0, and equal to the bottom of the switch cutout. The box itself is 2.7mm x 5mm. This is based on measuring with my micrometer, so I am not terribly confident in the stab cutouts.

I haven't yet implemented the alps spacebar stabs. Since matias uses costar stabs there I have decided to put that off. :)

Ok.  You should use the same 2u stab layout for all keys that are in the range of 2u >= key > 3u, so that will cover all those keys with a single set piece of code.

Also, the kb_builder lets you specify a different stabilizer type for each switch, so you could have the default to 'alps' and then for the spacebar just add the {_s:2} to make the spacebar have a costar only stabilizer type.  This makes it easy to adapt the build to whatever stabilizers you are using.  I would recommend implementing a generic alps configuration and if someone needs to change stab types for specific layouts, they can do that by modifying that specific key.

Edit: I would recommend reviewing the costar stabilizer logic.

Here is the 2u costar stabilizer logic...

Code: [Select]
# cut 2 unit stabilizer cutout
if (w >= 2 and w < 3) or (rotate and h >= 2 and h < 3): # 2 unit stabilizer
    if s == 2:
        # costar stabilizers only
        points_l = [(-10.3-k,-6.45+k), (-13.6+k,-6.45+k), (-13.6+k,7.75-k), (-10.3-k,7.75-k), (-10.3-k,-6.45+k)]
        points_r = [(10.3+k,-6.45+k), (13.6-k,-6.45+k), (13.6-k,7.75-k), (10.3+k,7.75-k), (10.3+k,-6.45+k)]
        if rotate:
            points_l = self.rotate_points(points_l, 90, (0,0))
            points_r = self.rotate_points(points_r, 90, (0,0))
        if rs:
            points_l = self.rotate_points(points_l, rs, (0,0))
            points_r = self.rotate_points(points_r, rs, (0,0))
        p = p.polyline(points_l).cutThruAll()
        p = p.polyline(points_r).cutThruAll()
« Last Edit: Tue, 06 October 2015, 14:11:10 by swill »

Offline skullydazed

  • * Vendor
  • Posts: 307
  • Location: Bay Area, CA
  • Had to turn PM's off. Email info@clueboard.co!
    • Clueboard
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1415 on: Tue, 06 October 2015, 15:01:57 »
Ok.  You should use the same 2u stab layout for all keys that are in the range of 2u >= key > 3u, so that will cover all those keys with a single set piece of code.

For alps that only works for 2U and 2.25U stabs. The 2.75U stab is a different length, that's why I have the if statement for the mid_offset. That could probably be simplified to something like the following, but the same logic applies either way:

Code: [Select]
inside_x = 16.7 if w == 2.75 else 12.7

Also, the kb_builder lets you specify a different stabilizer type for each switch, so you could have the default to 'alps' and then for the spacebar just add the {_s:2} to make the spacebar have a costar only stabilizer type.  This makes it easy to adapt the build to whatever stabilizers you are using.  I would recommend implementing a generic alps configuration and if someone needs to change stab types for specific layouts, they can do that by modifying that specific key.

I think I'm ahead of you there. This is what I have planned:

Code: [Select]
  --stab STAB           Stabilizer type: cherry, costar, (*)cherry-costar, alps, matias

If you select alps you'll get traditional alps style stabilizers everywhere. If you select matias you get alps stabs most places but costar for the spacebar. This way someone could use traditional alps and add {_s:2}, or they can simply select matias. I think doing it this way will lead to more people having success with the tool when making alps plates.

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1416 on: Tue, 06 October 2015, 15:27:04 »
Ok.  You should use the same 2u stab layout for all keys that are in the range of 2u >= key > 3u, so that will cover all those keys with a single set piece of code.

For alps that only works for 2U and 2.25U stabs. The 2.75U stab is a different length, that's why I have the if statement for the mid_offset. That could probably be simplified to something like the following, but the same logic applies either way:

Code: [Select]
inside_x = 16.7 if w == 2.75 else 12.7

Also, the kb_builder lets you specify a different stabilizer type for each switch, so you could have the default to 'alps' and then for the spacebar just add the {_s:2} to make the spacebar have a costar only stabilizer type.  This makes it easy to adapt the build to whatever stabilizers you are using.  I would recommend implementing a generic alps configuration and if someone needs to change stab types for specific layouts, they can do that by modifying that specific key.

I think I'm ahead of you there. This is what I have planned:

Code: [Select]
  --stab STAB           Stabilizer type: cherry, costar, (*)cherry-costar, alps, matias

If you select alps you'll get traditional alps style stabilizers everywhere. If you select matias you get alps stabs most places but costar for the spacebar. This way someone could use traditional alps and add {_s:2}, or they can simply select matias. I think doing it this way will lead to more people having success with the tool when making alps plates.

Ok, I didn't realize that the stab size was different for 2.75u.  Thanks...  :)

Regarding the --stab STAB having matias as an option, does matias support different size spacebars?  How would you determine which keys should have different stabilizer types?  Based on the width of the key? 

Offline skullydazed

  • * Vendor
  • Posts: 307
  • Location: Bay Area, CA
  • Had to turn PM's off. Email info@clueboard.co!
    • Clueboard
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1417 on: Tue, 06 October 2015, 15:54:41 »
Regarding the --stab STAB having matias as an option, does matias support different size spacebars?  How would you determine which keys should have different stabilizer types?  Based on the width of the key?

Yes, right now if it's 2 <= w < 3 it'll be an alps stab, if any other length costar. This matches the stabilizer set that matias sells, which comes with a 6.25U and 7U stabilizer wire.

One of the things I need to figure out still is what the spacing for vintage spacebars is. I have a 6.5U here but need at least 6.25u and 7u, and hopefully we can divine a rule for length beyond that.

Offline Melvang

  • Exquisite Lord of Bumfluff
  • * Maker
  • Posts: 4398
  • Location: Waterloo, IA
  • Melvang's Desktop Customs
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1418 on: Tue, 06 October 2015, 21:43:51 »
Is there a way to add padding to the plate on one side only?

I want to add extra length to both the top and bottom of the plate, but much more on the bottom side as a psuedo rest. 

Edit:  Also, do we still have to do funny stuff to the files due to units issues?
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 [builder.swillkb.com]
« Reply #1419 on: Tue, 06 October 2015, 21:46:14 »
Is there a way to add padding to the plate on one side only?

I want to add extra length to both the top and bottom of the plate, but much more on the bottom side as a psuedo rest. 

Edit:  Also, do we still have to do funny stuff to the files due to units issues?
Not at this time, but I may be able to find a way to hack it. I will do a few tests and see what I can come up with.

Offline Melvang

  • Exquisite Lord of Bumfluff
  • * Maker
  • Posts: 4398
  • Location: Waterloo, IA
  • Melvang's Desktop Customs
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1420 on: Tue, 06 October 2015, 21:48:30 »
Is there a way to add padding to the plate on one side only?

I want to add extra length to both the top and bottom of the plate, but much more on the bottom side as a psuedo rest. 

Edit:  Also, do we still have to do funny stuff to the files due to units issues?
Not at this time, but I may be able to find a way to hack it. I will do a few tests and see what I can come up with.

If not I am sure I can do it in Solidworks if my year isn't up yet.

Is there a run down to fix the units stuffs in SolidWorks student edition?  If not, can you help me with a custom TOP SECRET UBER CLASSIFIED project swill?
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 [builder.swillkb.com]
« Reply #1421 on: Tue, 06 October 2015, 21:56:45 »
Is there a way to add padding to the plate on one side only?

I want to add extra length to both the top and bottom of the plate, but much more on the bottom side as a psuedo rest. 

Edit:  Also, do we still have to do funny stuff to the files due to units issues?
Not at this time, but I may be able to find a way to hack it. I will do a few tests and see what I can come up with.

If not I am sure I can do it in Solidworks if my year isn't up yet.

Is there a run down to fix the units stuffs in SolidWorks student edition?  If not, can you help me with a custom TOP SECRET UBER CLASSIFIED project swill?

Ya, I can give you a hand, just PM me.

I was able to hack something together.  It is not perfect, but it is a start.  You will have to add the mount holes in something like FreeCAD or LibreCAD or something like that after, but this is the idea...

Code: [Select]
[{y:-3},"~\n`","!\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},"Caps Lock","A","S","D","F","G","H","J","K","L",":\n;","\"\n'",{w:2.25},"Enter"],
[{w:2.25},"Shift","Z","X","C","V","B","N","M","<\n,",">\n.","?\n/",{w:2.75},"Shift"],
[{w:1.25},"Ctrl",{w:1.25},"Win",{w:1.25},"Alt",{a:7,w:6.25},"",{a:4,w:1.25},"Alt",{w:1.25},"Win",{w:1.25},"Menu",{w:1.25},"Ctrl"]

Notice the first row has a {y:-3} offset.

Then use something like this for the padding section.

113044-0

This would result in something like the following plate.

113046-1

You can tweak the y offset (can be a decimal) and the height padding to give yourself the amount of space you want around the edge of the plate and the bottom.

Does that help?

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1422 on: Tue, 06 October 2015, 21:59:46 »
Edit:  Also, do we still have to do funny stuff to the files due to units issues?

It depends on how your stuff is setup.  If you use mm by default then you should be fine.  If you use inches by default, then you will need to save the actual units of measure into the exported file.  If you need help with this just let me know.  If I don't have a video for doing this I can create one and put it in the OP.

Offline Melvang

  • Exquisite Lord of Bumfluff
  • * Maker
  • Posts: 4398
  • Location: Waterloo, IA
  • Melvang's Desktop Customs
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1423 on: Tue, 06 October 2015, 22:01:04 »
Is there a way to add padding to the plate on one side only?

I want to add extra length to both the top and bottom of the plate, but much more on the bottom side as a psuedo rest. 

Edit:  Also, do we still have to do funny stuff to the files due to units issues?
Not at this time, but I may be able to find a way to hack it. I will do a few tests and see what I can come up with.

If not I am sure I can do it in Solidworks if my year isn't up yet.

Is there a run down to fix the units stuffs in SolidWorks student edition?  If not, can you help me with a custom TOP SECRET UBER CLASSIFIED project swill?

Ya, I can give you a hand, just PM me.

I was able to hack something together.  It is not perfect, but it is a start.  You will have to add the mount holes in something like FreeCAD or LibreCAD or something like that after, but this is the idea...

Code: [Select]
[{y:-3},"~\n`","!\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},"Caps Lock","A","S","D","F","G","H","J","K","L",":\n;","\"\n'",{w:2.25},"Enter"],
[{w:2.25},"Shift","Z","X","C","V","B","N","M","<\n,",">\n.","?\n/",{w:2.75},"Shift"],
[{w:1.25},"Ctrl",{w:1.25},"Win",{w:1.25},"Alt",{a:7,w:6.25},"",{a:4,w:1.25},"Alt",{w:1.25},"Win",{w:1.25},"Menu",{w:1.25},"Ctrl"]

Notice the first row has a {y:-3} offset.

Then use something like this for the padding section.

(Attachment Link)

This would result in something like the following plate.

(Attachment Link)

You can tweak the y offset (can be a decimal) and the height padding to give yourself the amount of space you want around the edge of the plate and the bottom.

Does that help?


I should be able to make something work here.

Edit:  Also, do we still have to do funny stuff to the files due to units issues?

It depends on how your stuff is setup.  If you use mm by default then you should be fine.  If you use inches by default, then you will need to save the actual units of measure into the exported file.  If you need help with this just let me know.  If I don't have a video for doing this I can create one and put it in the OP.

Thanks again Swill.

Edit:  So I am messing around with that, and is working as advertised, though it doesn't like a number <1.  I wouldn't worry to much about it though.  But what does that number represent?  Unit size so 1=19.05mm/3/4"?
« Last Edit: Tue, 06 October 2015, 22:10:16 by Melvang »
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 [builder.swillkb.com]
« Reply #1424 on: Tue, 06 October 2015, 22:11:49 »
Thanks again Swill.

For sure.  I am probably going to be a bit side tracked this week and won't have too much time to dedicate to this project since I am currently building some other GH related tools.  I am building an application that will let you search GH PMs.  For the guys who run GBs and get 100s of PMs a day, this should make their life easier.  I will pilot this pm searching application with a couple people who really need it for now and if I get it to a point where I feel I can open it up to the world I will.  All to say, I won't be as reactive to bug fixing in this tool for a week or so...

Offline Melvang

  • Exquisite Lord of Bumfluff
  • * Maker
  • Posts: 4398
  • Location: Waterloo, IA
  • Melvang's Desktop Customs
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1425 on: Tue, 06 October 2015, 22:15:06 »
Thanks again Swill.

For sure.  I am probably going to be a bit side tracked this week and won't have too much time to dedicate to this project since I am currently building some other GH related tools.  I am building an application that will let you search GH PMs.  For the guys who run GBs and get 100s of PMs a day, this should make their life easier.  I will pilot this pm searching application with a couple people who really need it for now and if I get it to a point where I feel I can open it up to the world I will.  All to say, I won't be as reactive to bug fixing in this tool for a week or so...

Thats fine.  If I am assuming my Edit in my last post is correct, if I enter -2, then set vertical padding to 57.15 and horizontal padding to 19.05, I will have 1 unit to both sides and the top, with 5 units below.
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 [builder.swillkb.com]
« Reply #1426 on: Tue, 06 October 2015, 22:15:33 »
Edit:  So I am messing around with that, and is working as advertised, though it doesn't like a number <1.  I wouldn't worry to much about it though.  But what does that number represent?  Unit size so 1=19.05mm/3/4"?

1 should be 1 key unit which is equal 19.05mm.  For values < 1, you need to prefix the number with a 0.  So .25 would be 0.25 otherwise it does not like it...

StinkyTheDonut has reported some strange behaviour with the placement of the first key(s), so there are definitely a couple bugs in this area that I need to spend some time fixing...

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1427 on: Tue, 06 October 2015, 22:20:10 »
Thanks again Swill.

For sure.  I am probably going to be a bit side tracked this week and won't have too much time to dedicate to this project since I am currently building some other GH related tools.  I am building an application that will let you search GH PMs.  For the guys who run GBs and get 100s of PMs a day, this should make their life easier.  I will pilot this pm searching application with a couple people who really need it for now and if I get it to a point where I feel I can open it up to the world I will.  All to say, I won't be as reactive to bug fixing in this tool for a week or so...

Thats fine.  If I am assuming my Edit in my last post is correct, if I enter -2, then set vertical padding to 57.15 and horizontal padding to 19.05, I will have 1 unit to both sides and the top, with 5 units below.

Because this is a hack, I don't think it will work exactly as you expect there.  I think you will end up with 1u around the left, top and right, but only 3u on the bottom. 

Edit: So I think you will have to do 19.05*(number of key units you want on the bottom) as your height padding. That padding - (neg y offset * 19.05) will give you to space above the keys.  Does that make any sense?  It is because the bottom padding will only ever max out to be what you specify in the height padding and the top padding will use the negative y offset to subtract from the top height padding.  So you will not end up with 2 times the height padding and the layout just translated as you are expecting.  The negative y offset actually removes that amount of padding from the top.
« Last Edit: Tue, 06 October 2015, 22:31:18 by swill »

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1428 on: Thu, 15 October 2015, 07:49:33 »
I have seen a lot of people having problems with their stabilizer cutouts recently.  This is a known issue and I should have time to start working on implementing a fix soon™.  When switches with stabilizers are drawn the union of the switch points and the stabilizer points to produce a cutout specific for the switch stabilizer combination.  Especially with rotated clusters there seems to be issues with the library I am using for this and I need to replace the lib.

If you are having problems with this, here are a couple things I have found that can change the behavior of the draw and can sometimes make the union work by changing to points just slightly.
- flip the stabilizer cutout: {_rs:180}
- modify the padding slightly and try again

Your problems are not falling on deaf ears.  Every time someone has a problem I get notified, so I definitely know I need to get to this soon...

113796-0

ps - if you are interested in my slack daemon for pushing errors into slack, you can check it out here, its open source: https://github.com/swill/slackd

Offline BigBlueSaw

  • Posts: 44
  • Location: Atlanta, GA
    • Big Blue Saw
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1429 on: Mon, 19 October 2015, 11:21:30 »
I added a couple new pieces generated from swill's keyboard builder to the example page. They're at the bottom:
http://www.bigbluesaw.com/big-blue-saw/big-blue-saw-special-info/waterjet-and-laser-cut-keyboard-plates.html

One is a JD40 plate with a case all as one file, the other is the same case designed for 3mm acrylic, and without the top plate.

http://www.bigbluesaw.com/index.php?option=com_estimator&step=20&file=A0A0-A0A0-jd40_With_case_for1.5mmMaterial.dxf&material=3&thickness=0.06
http://www.bigbluesaw.com/index.php?option=com_estimator&step=20&file=A0A0-A0A0-jd40_caseonly_for3mmMaterial.dxf&material=4&thickness=0.118

This makes it as if you're either ordering the whole thing as the same material or ordering the plate separately from the case, as if you wanted a different material.

There was some confusion over the pricing because people were uploading each individual piece in a complete set as a separate file and then getting sticker shock because each piece was quantity 1. In reality, the way to get the best prices is to put everything that's the same material into the same file.

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1430 on: Thu, 22 October 2015, 08:08:59 »
Now that I have gotten the Alpha release of the pm_search (link) tool out the door, I can start focusing on this again.  I know I need to solve the issue of the stabilizers not drawing correctly sometimes, that is top of mind for me...

Offline derezzed

  • * Destiny Supporter
  • Posts: 298
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1431 on: Thu, 22 October 2015, 20:16:53 »
My design has a single switch on the bottom row that is .25u lower than the rest of the keys on the bottom row.  Older versions of the Plate Builder used to draw a cutout on the middle layers of a sandwich case.  But sometime during the summer, the Plate Builder stopped doing this.  This isn't much of an issue for me because I can always make the cutout myself, should the need arise, but I mentioned it in case it is indicative of an issue that might affect other elements of the tool's function or in case it is related to another issue that someone has brought to your attention and could help you diagnose the issue.  I included a mock-up of what the tool used to draw.

114568-0

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1432 on: Fri, 23 October 2015, 08:35:57 »
My design has a single switch on the bottom row that is .25u lower than the rest of the keys on the bottom row.  Older versions of the Plate Builder used to draw a cutout on the middle layers of a sandwich case.  But sometime during the summer, the Plate Builder stopped doing this.  This isn't much of an issue for me because I can always make the cutout myself, should the need arise, but I mentioned it in case it is indicative of an issue that might affect other elements of the tool's function or in case it is related to another issue that someone has brought to your attention and could help you diagnose the issue.  I included a mock-up of what the tool used to draw.

(Attachment Link)

Can you post me the KLE code you used to draw this plate so I can test?

When I added the ability to draw rotated clusters (like the ergodox), it ended up introducing some bugs that are hard to track down.  Not sure how this one happened, but I will check it and see what is going on once you send me the code.  Thanks for letting me know...

Offline derezzed

  • * Destiny Supporter
  • Posts: 298
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1433 on: Fri, 23 October 2015, 22:00:25 »
My design has a single switch on the bottom row that is .25u lower than the rest of the keys on the bottom row.  Older versions of the Plate Builder used to draw a cutout on the middle layers of a sandwich case.  But sometime during the summer, the Plate Builder stopped doing this.  This isn't much of an issue for me because I can always make the cutout myself, should the need arise, but I mentioned it in case it is indicative of an issue that might affect other elements of the tool's function or in case it is related to another issue that someone has brought to your attention and could help you diagnose the issue.  I included a mock-up of what the tool used to draw.

(Attachment Link)

Can you post me the KLE code you used to draw this plate so I can test?

When I added the ability to draw rotated clusters (like the ergodox), it ended up introducing some bugs that are hard to track down.  Not sure how this one happened, but I will check it and see what is going on once you send me the code.  Thanks for letting me know...

Here it is:

["~\n`","!\n1\n\n\nF1","@\n2\n\n\nF2","#\n3\n\n\nF3","$\n4\n\n\nF4","%\n5\n\n\nF5","^\n6\n\n\nF6","&\n7\n\n\nF7","*\n8\n\n\nF8","(\n9\n\n\nF9",")\n0\n\n\nF10","_\n-\n\n\nF11","+\n=\n\n\nF12",{c:"#999999"},"Home\n\n\n\nPgUp","End\n\n\n\nPgDn"],
[{w:1.5},"Tab",{c:"#cccccc"},"Q","W\n\n\n\nClick1","E\n\n\n\nMsUp","R\n\n\n\nClick2","T","Y\n\n\n\nIns","U\n\n\n\nHome","I\n\n\n\n↑","O\n\n\n\nEnd","P\n\n\n\nBackSpc","{\n[","}\n]",{c:"#999999",w:1.5},"|\n\\"],
[{w:1.75},"Ctrl",{c:"#cccccc"},"A","S\n\n\n\nMsLt","D\n\n\n\nMsDn","F\n\n\n\nMsRt","G","H\n\n\n\nPgUp","J\n\n\n\n←","K\n\n\n\n↓","L\n\n\n\n→",":\n;","\"\n'",{c:"#999999",w:2.25},"Enter"],
[{w:2.25},"Shift",{c:"#cccccc"},"Z","X","C","V","B","N\n\n\n\nPgDn","M\n\n\n\nDel","<\n,",">\n.","?\n/",{c:"#999999",w:1.75},"RShift",{c:"#6897ca"},"↑"],
["Esc",{c:"#999999",w:1.25},"Win",{w:1.25},"Alt","Del",{w:2},"Backspace",{c:"#6897ca",h:1.5},"Fn",{c:"#999999",w:2},"Space",{w:1.25},"Alt",{w:1.25},"RCtrl",{c:"#6897ca"},"←","→","↓"]

I used this design last night with the Plate Builder and I noticed that the padding is larger than it used to be.  Previously 6mm padding was rendered at very nearly 6mm (my readings may have been off due to not selecting the second point perfectly vertical to the first point of the distance measuring tool in LibreCAD) but, last night, the padding was over 8 mm on the sides and top, and over 13mm on the bottom.  I also tried  reducing the function key to 1u vertical and dropping it .25u below the bottom row and it didn't change anything.

114649-0

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1434 on: Fri, 23 October 2015, 23:24:43 »
My design has a single switch on the bottom row that is .25u lower than the rest of the keys on the bottom row.  Older versions of the Plate Builder used to draw a cutout on the middle layers of a sandwich case.  But sometime during the summer, the Plate Builder stopped doing this.  This isn't much of an issue for me because I can always make the cutout myself, should the need arise, but I mentioned it in case it is indicative of an issue that might affect other elements of the tool's function or in case it is related to another issue that someone has brought to your attention and could help you diagnose the issue.  I included a mock-up of what the tool used to draw.

(Attachment Link)

Can you post me the KLE code you used to draw this plate so I can test?

When I added the ability to draw rotated clusters (like the ergodox), it ended up introducing some bugs that are hard to track down.  Not sure how this one happened, but I will check it and see what is going on once you send me the code.  Thanks for letting me know...

Here it is:

["~\n`","!\n1\n\n\nF1","@\n2\n\n\nF2","#\n3\n\n\nF3","$\n4\n\n\nF4","%\n5\n\n\nF5","^\n6\n\n\nF6","&\n7\n\n\nF7","*\n8\n\n\nF8","(\n9\n\n\nF9",")\n0\n\n\nF10","_\n-\n\n\nF11","+\n=\n\n\nF12",{c:"#999999"},"Home\n\n\n\nPgUp","End\n\n\n\nPgDn"],
[{w:1.5},"Tab",{c:"#cccccc"},"Q","W\n\n\n\nClick1","E\n\n\n\nMsUp","R\n\n\n\nClick2","T","Y\n\n\n\nIns","U\n\n\n\nHome","I\n\n\n\n↑","O\n\n\n\nEnd","P\n\n\n\nBackSpc","{\n[","}\n]",{c:"#999999",w:1.5},"|\n\\"],
[{w:1.75},"Ctrl",{c:"#cccccc"},"A","S\n\n\n\nMsLt","D\n\n\n\nMsDn","F\n\n\n\nMsRt","G","H\n\n\n\nPgUp","J\n\n\n\n←","K\n\n\n\n↓","L\n\n\n\n→",":\n;","\"\n'",{c:"#999999",w:2.25},"Enter"],
[{w:2.25},"Shift",{c:"#cccccc"},"Z","X","C","V","B","N\n\n\n\nPgDn","M\n\n\n\nDel","<\n,",">\n.","?\n/",{c:"#999999",w:1.75},"RShift",{c:"#6897ca"},"↑"],
["Esc",{c:"#999999",w:1.25},"Win",{w:1.25},"Alt","Del",{w:2},"Backspace",{c:"#6897ca",h:1.5},"Fn",{c:"#999999",w:2},"Space",{w:1.25},"Alt",{w:1.25},"RCtrl",{c:"#6897ca"},"←","→","↓"]

I used this design last night with the Plate Builder and I noticed that the padding is larger than it used to be.  Previously 6mm padding was rendered at very nearly 6mm (my readings may have been off due to not selecting the second point perfectly vertical to the first point of the distance measuring tool in LibreCAD) but, last night, the padding was over 8 mm on the sides and top, and over 13mm on the bottom.  I also tried  reducing the function key to 1u vertical and dropping it .25u below the bottom row and it didn't change anything.

(Attachment Link)

So this is actually drawing correctly.  The padding is 6mm on the outside of the keycap, not the switch.  The keycaps are basically 19mm wide for 1u, so that means that 19-14 = 5.  So if you have no padding there should be 2.5mm of material between the cutout and the edge of the plate.  If you add 6mm to that, it gives you the 8.5mm to the switch edge as you have verified.  So that is actually correct...

For the bottom Fn key, you have (((19 * 1.5) - 14) / 2) + 6 = 13.25, so that is correct too. 

So are you trying to make that one key .25u lower than the bottom row, but you don't want the bottom boundary of that cap to be the calculated edge of the board, you want that key to be pushed down into the padding and for there to be 6mm padding around the keycaps everywhere around the board except for that key?

Let me think about how to do that and see if I can come up with a solution for you...

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1435 on: Fri, 23 October 2015, 23:31:18 »
Ok, here is how you can do it.  You can't use the sandwich case because it won't know what to do with the holes, so you will have to add the holes to the cad after.

Here is the code:
Code: [Select]
[{y:0.5},"~\n`","!\n1\n\n\nF1","@\n2\n\n\nF2","#\n3\n\n\nF3","$\n4\n\n\nF4","%\n5\n\n\nF5","^\n6\n\n\nF6","&\n7\n\n\nF7","*\n8\n\n\nF8","(\n9\n\n\nF9",")\n0\n\n\nF10","_\n-\n\n\nF11","+\n=\n\n\nF12",{c:"#999999"},"Home\n\n\n\nPgUp","End\n\n\n\nPgDn"],
[{w:1.5},"Tab",{c:"#cccccc"},"Q","W\n\n\n\nClick1","E\n\n\n\nMsUp","R\n\n\n\nClick2","T","Y\n\n\n\nIns","U\n\n\n\nHome","I\n\n\n\n↑","O\n\n\n\nEnd","P\n\n\n\nBackSpc","{\n[","}\n]",{c:"#999999",w:1.5},"|\n\\"],
[{w:1.75},"Ctrl",{c:"#cccccc"},"A","S\n\n\n\nMsLt","D\n\n\n\nMsDn","F\n\n\n\nMsRt","G","H\n\n\n\nPgUp","J\n\n\n\n←","K\n\n\n\n↓","L\n\n\n\n→",":\n;","\"\n'",{c:"#999999",w:2.25},"Enter"],
[{w:2.25},"Shift",{c:"#cccccc"},"Z","X","C","V","B","N\n\n\n\nPgDn","M\n\n\n\nDel","<\n,",">\n.","?\n/",{c:"#999999",w:1.75},"RShift",{c:"#6897ca"},"↑"],
["Esc",{c:"#999999",w:1.25},"Win",{w:1.25},"Alt","Del",{w:2},"Backspace",{c:"#6897ca",h:1.5},"Fn",{c:"#999999",w:2},"Space",{w:1.25},"Alt",{w:1.25},"RCtrl",{c:"#6897ca"},"←","→","↓"]

And here are the settings:

114652-0

And here is the result:

114654-1

So here is what I did.  In order to cut down the padding on the bottom, I added 1/2 a key of 'y' space at the top and then did negative 1/2 a key of vertical padding.  So if you had zero perceived padding around the keyboard, it would be 19.05/2 = 9.525 (but negative).  Since you want 6mm of padding around the board, we add 6 to that to give you -3.525 as the vertical padding value.

Does this make any sense?

Offline Eszett

  • Posts: 543
  • Supporting the communities Geekhack & Deskthority
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1436 on: Tue, 27 October 2015, 02:00:21 »
Hi swill! I have a question. I measured the Alps cutouts from the plate builder as beeing 15.6x12.8. AFAIK, the official datasheet gives 15.5x12.8. Waht's about that extra 0.1, has it a certain reason?
« Last Edit: Tue, 27 October 2015, 02:17:36 by Eszett »

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1437 on: Tue, 27 October 2015, 08:26:12 »
Hi swill! I have a question. I measured the Alps cutouts from the plate builder as beeing 15.6x12.8. AFAIK, the official datasheet gives 15.5x12.8. Waht's about that extra 0.1, has it a certain reason?
That is what jdcarpe has suggested to use and he has a lot more experience with alps plates than I do. :)

0.1 MM is basically nothing though.

Offline Eszett

  • Posts: 543
  • Supporting the communities Geekhack & Deskthority
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1438 on: Tue, 27 October 2015, 08:38:54 »
No problem, I'm just curious. I will chat abit with jdcarpe. Thanks swill!

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1439 on: Tue, 27 October 2015, 08:41:58 »
No problem, I'm just curious. I will chat abit with jdcarpe. Thanks swill!
No problem. For the record the first tests with that size was bordering on too small, so I would not make it smaller.

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1440 on: Tue, 27 October 2015, 14:28:05 »
Wow, this is crazy.  In the last 3-4 months there have been 5,500 unique layout configurations drawn with this tool.  That kinda blows my mind...

Offline Melvang

  • Exquisite Lord of Bumfluff
  • * Maker
  • Posts: 4398
  • Location: Waterloo, IA
  • Melvang's Desktop Customs
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1441 on: Tue, 27 October 2015, 16:35:34 »
Wow, this is crazy.  In the last 3-4 months there have been 5,500 unique layout configurations drawn with this tool.  That kinda blows my mind...

Very nice.

Glad to see this is helping people.

Edit:  Quick question swill.  If I use a standard TKL layout from KLE, will the resulting plate fit a Phantom PCB?  Or does the offset from the alpha block to the navigation/arrows end up off a little bit?  I guess what I am asking is, is the offset a standard fraction of a unit size?
« Last Edit: Tue, 27 October 2015, 19:07:32 by Melvang »
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 [builder.swillkb.com]
« Reply #1442 on: Tue, 27 October 2015, 19:56:47 »
Wow, this is crazy.  In the last 3-4 months there have been 5,500 unique layout configurations drawn with this tool.  That kinda blows my mind...

Very nice.

Glad to see this is helping people.

Edit:  Quick question swill.  If I use a standard TKL layout from KLE, will the resulting plate fit a Phantom PCB?  Or does the offset from the alpha block to the navigation/arrows end up off a little bit?  I guess what I am asking is, is the offset a standard fraction of a unit size?
The KLE layout is wrong. I would have to do some math to figure out what fraction of a key it needs to be. If you can measure from a pin on one switch across the gap to the same pin on another switch, I can give you a KLE setup which will work.

Offline Melvang

  • Exquisite Lord of Bumfluff
  • * Maker
  • Posts: 4398
  • Location: Waterloo, IA
  • Melvang's Desktop Customs
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1443 on: Tue, 27 October 2015, 20:15:46 »
Wow, this is crazy.  In the last 3-4 months there have been 5,500 unique layout configurations drawn with this tool.  That kinda blows my mind...

Very nice.

Glad to see this is helping people.

Edit:  Quick question swill.  If I use a standard TKL layout from KLE, will the resulting plate fit a Phantom PCB?  Or does the offset from the alpha block to the navigation/arrows end up off a little bit?  I guess what I am asking is, is the offset a standard fraction of a unit size?
The KLE layout is wrong. I would have to do some math to figure out what fraction of a key it needs to be. If you can measure from a pin on one switch across the gap to the same pin on another switch, I can give you a KLE setup which will work.

Thats fine thanks for the offer though.  I was just trying to avoid pulling out the calipers.  I don't have a Phantom PCB though.  I do have a couple others that are standard full size I could measure off of.  One is a costar built Das, and the other is a Rosewill.  I would assume they would be correct dimensions to match up to a Phantom as far as plate measurements between switches goes.

OG Kishsaver, Razer Orbweaver clears and reds with blue LEDs, and Razer Naga Epic.   "Great minds crawl in the same sewer"  Uncle Rich

Offline xlr82xs

  • Posts: 1
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1444 on: Tue, 27 October 2015, 20:17:06 »
I know it has been a long time in coming (and its not in the production tool yet), but the rotated clusters is well on its way.  Here is a little teaser...

(Attachment Link)

I still have to work out the details of the plate dimensions based on the rotated keys, so that will be the next step.  This is a big step in the right direction though...  :)

I'm looking at doing a very similar design, however, when I use the following code :

Code: [Select]
[{f:1,f2:2},"\nEsc","\nF1","\nF2","\nF3","\nF4","\nF5","\nF6","\nF7","\nF8","Repeat Rate\nF9","Disable Macro\nF10","Macro\nF11","Remap\nF12","PrintScr SysReq","Scroll<br>lock","Pause Break","Keypad","Progrm"],
[{y:0.5,x:3.25,f:3},"#\n3",{x:9.5},"*\n8\n\n\n="],
[{y:-0.75,x:2.25},"@\n2",{x:1},"$\n4",{x:7.5},"&\n7\n\n\nNm Lk",{x:1},"(\n9\n\n\n="],
[{y:-0.75,x:1.25},"!\n1",{x:3},"%\n5",{x:5.5},"^\n6",{x:3},")\n0\n\n\n*"],
[{y:-0.75,w:1.25},"+\n=",{x:15.5,w:1.25},"_\n-"],
[{y:-0.75,x:3.25,f:6},"E",{x:9.5},"I\n\n\n\n8"],
[{y:-0.75,x:2.25},"W",{x:1},"R",{x:7.5},"U\n\n\n\n7",{x:1},"O\n\n\n\n9"],
[{y:-0.75,x:1.25},"Q",{x:3},"T",{x:5.5},"Y",{x:3},"P\n\n\n\n-"],
[{y:-0.75,a:6,f:3,w:1.25},"Tab",{x:15.5,a:4,w:1.25},"|\n\\"],
[{y:-0.75,x:3.25,f:6},"D",{x:9.5},"K\n\n\n\n5"],
[{y:-0.75,x:2.25},"S",{x:1},"F",{x:7.5},"J\n\n\n\n4",{x:1},"L\n\n\n\n6"],
[{y:-0.75,x:1.25},"A",{x:3},"G",{x:5.5},"H",{x:3,f:3},":\n;\n\n\n+"],
[{y:-0.75,a:6,w:1.25},"Caps<br>Lock",{x:15.5,a:4,w:1.25},"\"\n'"],
[{y:-0.75,x:3.25,f:6},"C",{x:9.5,f:3},"<\n,\n\n\n2"],
[{y:-0.75,x:2.25,f:6},"X",{x:1},"V",{x:7.5},"M\n\n\n\n1",{x:1,f:3},">\n.\n\n\n3"],
[{y:-0.75,x:1.25,f:6},"Z",{x:3},"B",{x:5.5},"N",{x:3,f:3},"?\n/\n\n\nEnter"],
[{y:-0.75,a:6,w:1.25},"Shift",{x:15.5,w:1.25},"Shift"],
[{y:-0.75,x:3.25,a:5,f:5},"⇦\n\n\n\n⇦",{x:9.5},"⇩\n\n\n\n⇩"],
[{y:-0.75,x:2.25,a:4,f:3},"|\n\\\n\n\nInsert",{x:1,a:5,f:5},"⇨\n\n\n\n⇨",{x:7.5},"⇧\n\n\n\n⇧",{x:1,a:4,f:3},"{\n[\n\n\n."],
[{y:-0.75,x:1.25},"~\n`",{x:13.5},"}\n]\n\n\nEnter"],
[{r:15,rx:5.25,ry:4,y:1,x:1.75},"Ctrl","Alt"],
[{x:0.75,a:7,h:2},"Back<br>Space",{h:2},"Delete","Home"],
[{x:2.75},"End"],
[{r:-15,rx:12.75,y:1,x:-3.75,a:4},"Cmd\n\n\n\n\n\nWin",{a:7},"Ctrl"],
[{x:-3.75,a:6},"Page<br>Up",{a:7,h:2},"Enter",{h:2},"Space"],
[{x:-3.75,a:6},"Page<br>Down"]

It generates a plate layout like :



for the layout :



obviously I'm doing something wrong with the tilts on the lower left cluster (it alternates between not including the stabilizers on either of the two larger keys) but for the life of me, I can't figure out what.

Do you have any thoughts on what I'm doing wrong ?
I'm considering just editing the output to duplicate the key+stabilizer but since cutting is so horrifically expensive here in the AU, I don't want to have too many test cuts.


--- Edit ---
I just read the last couple of pages of the thread between where you posted your new design and now.
I can see that this is an existing issue.

However, I did notice another thing, if I specify 6 holes for the mounts on the sandwich layout, it wants to put one of the bolt holes in the middle of the cutout for the usb cable on the second layer. Since i'll probably just be using the top and bottom plates with spacers, this isn't a huge issue for me, but it's probably something to keep in mind. Somehow I was expecting the three holes to be on the left and right sides of the keyboard not along the top to avoid this problem.
« Last Edit: Tue, 27 October 2015, 20:23:25 by xlr82xs »

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1445 on: Tue, 27 October 2015, 20:42:23 »
I know it has been a long time in coming (and its not in the production tool yet), but the rotated clusters is well on its way.  Here is a little teaser...

(Attachment Link)

I still have to work out the details of the plate dimensions based on the rotated keys, so that will be the next step.  This is a big step in the right direction though...  :)

I'm looking at doing a very similar design, however, when I use the following code :

Code: [Select]
[{f:1,f2:2},"\nEsc","\nF1","\nF2","\nF3","\nF4","\nF5","\nF6","\nF7","\nF8","Repeat Rate\nF9","Disable Macro\nF10","Macro\nF11","Remap\nF12","PrintScr SysReq","Scroll<br>lock","Pause Break","Keypad","Progrm"],
[{y:0.5,x:3.25,f:3},"#\n3",{x:9.5},"*\n8\n\n\n="],
[{y:-0.75,x:2.25},"@\n2",{x:1},"$\n4",{x:7.5},"&\n7\n\n\nNm Lk",{x:1},"(\n9\n\n\n="],
[{y:-0.75,x:1.25},"!\n1",{x:3},"%\n5",{x:5.5},"^\n6",{x:3},")\n0\n\n\n*"],
[{y:-0.75,w:1.25},"+\n=",{x:15.5,w:1.25},"_\n-"],
[{y:-0.75,x:3.25,f:6},"E",{x:9.5},"I\n\n\n\n8"],
[{y:-0.75,x:2.25},"W",{x:1},"R",{x:7.5},"U\n\n\n\n7",{x:1},"O\n\n\n\n9"],
[{y:-0.75,x:1.25},"Q",{x:3},"T",{x:5.5},"Y",{x:3},"P\n\n\n\n-"],
[{y:-0.75,a:6,f:3,w:1.25},"Tab",{x:15.5,a:4,w:1.25},"|\n\\"],
[{y:-0.75,x:3.25,f:6},"D",{x:9.5},"K\n\n\n\n5"],
[{y:-0.75,x:2.25},"S",{x:1},"F",{x:7.5},"J\n\n\n\n4",{x:1},"L\n\n\n\n6"],
[{y:-0.75,x:1.25},"A",{x:3},"G",{x:5.5},"H",{x:3,f:3},":\n;\n\n\n+"],
[{y:-0.75,a:6,w:1.25},"Caps<br>Lock",{x:15.5,a:4,w:1.25},"\"\n'"],
[{y:-0.75,x:3.25,f:6},"C",{x:9.5,f:3},"<\n,\n\n\n2"],
[{y:-0.75,x:2.25,f:6},"X",{x:1},"V",{x:7.5},"M\n\n\n\n1",{x:1,f:3},">\n.\n\n\n3"],
[{y:-0.75,x:1.25,f:6},"Z",{x:3},"B",{x:5.5},"N",{x:3,f:3},"?\n/\n\n\nEnter"],
[{y:-0.75,a:6,w:1.25},"Shift",{x:15.5,w:1.25},"Shift"],
[{y:-0.75,x:3.25,a:5,f:5},"⇦\n\n\n\n⇦",{x:9.5},"⇩\n\n\n\n⇩"],
[{y:-0.75,x:2.25,a:4,f:3},"|\n\\\n\n\nInsert",{x:1,a:5,f:5},"⇨\n\n\n\n⇨",{x:7.5},"⇧\n\n\n\n⇧",{x:1,a:4,f:3},"{\n[\n\n\n."],
[{y:-0.75,x:1.25},"~\n`",{x:13.5},"}\n]\n\n\nEnter"],
[{r:15,rx:5.25,ry:4,y:1,x:1.75},"Ctrl","Alt"],
[{x:0.75,a:7,h:2},"Back<br>Space",{h:2},"Delete","Home"],
[{x:2.75},"End"],
[{r:-15,rx:12.75,y:1,x:-3.75,a:4},"Cmd\n\n\n\n\n\nWin",{a:7},"Ctrl"],
[{x:-3.75,a:6},"Page<br>Up",{a:7,h:2},"Enter",{h:2},"Space"],
[{x:-3.75,a:6},"Page<br>Down"]

It generates a plate layout like :

Show Image


for the layout :

Show Image


obviously I'm doing something wrong with the tilts on the lower left cluster (it alternates between not including the stabilizers on either of the two larger keys) but for the life of me, I can't figure out what.

Do you have any thoughts on what I'm doing wrong ?
I'm considering just editing the output to duplicate the key+stabilizer but since cutting is so horrifically expensive here in the AU, I don't want to have too many test cuts.


--- Edit ---
I just read the last couple of pages of the thread between where you posted your new design and now.
I can see that this is an existing issue.

However, I did notice another thing, if I specify 6 holes for the mounts on the sandwich layout, it wants to put one of the bolt holes in the middle of the cutout for the usb cable on the second layer. Since i'll probably just be using the top and bottom plates with spacers, this isn't a huge issue for me, but it's probably something to keep in mind. Somehow I was expecting the three holes to be on the left and right sides of the keyboard not along the top to avoid this problem.
The stabilizer thing is a bug. Nothing you are doing is wrong. I am working in a fix, but it is nontrivial, so this probably won't be fixed for a week or two.

You can slightly modify the padding size OR change the switch cutout specifically for a switch which is having a stabilizer issue and it sometimes fixes the stab draw issue. You can use decimals for padding, like 6.01, for example.

As for the screw hole and the USB cutout. I am spinning that as a feature since it can easily be avoided by changing the hole number. If you want to have a screw holding your USB socket in place, this is a useful little tidbit. :)
« Last Edit: Tue, 27 October 2015, 20:45:47 by swill »

Offline swill

  • * Elevated Elder
  • Thread Starter
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1446 on: Tue, 27 October 2015, 20:47:33 »
Wow, this is crazy.  In the last 3-4 months there have been 5,500 unique layout configurations drawn with this tool.  That kinda blows my mind...

Very nice.

Glad to see this is helping people.

Edit:  Quick question swill.  If I use a standard TKL layout from KLE, will the resulting plate fit a Phantom PCB?  Or does the offset from the alpha block to the navigation/arrows end up off a little bit?  I guess what I am asking is, is the offset a standard fraction of a unit size?
The KLE layout is wrong. I would have to do some math to figure out what fraction of a key it needs to be. If you can measure from a pin on one switch across the gap to the same pin on another switch, I can give you a KLE setup which will work.

Thats fine thanks for the offer though.  I was just trying to avoid pulling out the calipers.  I don't have a Phantom PCB though.  I do have a couple others that are standard full size I could measure off of.  One is a costar built Das, and the other is a Rosewill.  I would assume they would be correct dimensions to match up to a Phantom as far as plate measurements between switches goes.
Ya they should be. Thinking if which, I have a qfr TKL that is in pieces tight now, I can try to find some time to measure it.

Offline derezzed

  • * Destiny Supporter
  • Posts: 298
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1447 on: Wed, 28 October 2015, 00:07:18 »
Ok, here is how you can do it.  You can't use the sandwich case because it won't know what to do with the holes, so you will have to add the holes to the cad after.

Here is the code:
Code: [Select]
[{y:0.5},"~\n`","!\n1\n\n\nF1","@\n2\n\n\nF2","#\n3\n\n\nF3","$\n4\n\n\nF4","%\n5\n\n\nF5","^\n6\n\n\nF6","&\n7\n\n\nF7","*\n8\n\n\nF8","(\n9\n\n\nF9",")\n0\n\n\nF10","_\n-\n\n\nF11","+\n=\n\n\nF12",{c:"#999999"},"Home\n\n\n\nPgUp","End\n\n\n\nPgDn"],
[{w:1.5},"Tab",{c:"#cccccc"},"Q","W\n\n\n\nClick1","E\n\n\n\nMsUp","R\n\n\n\nClick2","T","Y\n\n\n\nIns","U\n\n\n\nHome","I\n\n\n\n↑","O\n\n\n\nEnd","P\n\n\n\nBackSpc","{\n[","}\n]",{c:"#999999",w:1.5},"|\n\\"],
[{w:1.75},"Ctrl",{c:"#cccccc"},"A","S\n\n\n\nMsLt","D\n\n\n\nMsDn","F\n\n\n\nMsRt","G","H\n\n\n\nPgUp","J\n\n\n\n←","K\n\n\n\n↓","L\n\n\n\n→",":\n;","\"\n'",{c:"#999999",w:2.25},"Enter"],
[{w:2.25},"Shift",{c:"#cccccc"},"Z","X","C","V","B","N\n\n\n\nPgDn","M\n\n\n\nDel","<\n,",">\n.","?\n/",{c:"#999999",w:1.75},"RShift",{c:"#6897ca"},"↑"],
["Esc",{c:"#999999",w:1.25},"Win",{w:1.25},"Alt","Del",{w:2},"Backspace",{c:"#6897ca",h:1.5},"Fn",{c:"#999999",w:2},"Space",{w:1.25},"Alt",{w:1.25},"RCtrl",{c:"#6897ca"},"←","→","↓"]

And here are the settings:

(Attachment Link)

And here is the result:

(Attachment Link)

So here is what I did.  In order to cut down the padding on the bottom, I added 1/2 a key of 'y' space at the top and then did negative 1/2 a key of vertical padding.  So if you had zero perceived padding around the keyboard, it would be 19.05/2 = 9.525 (but negative).  Since you want 6mm of padding around the board, we add 6 to that to give you -3.525 as the vertical padding value.

Does this make any sense?

Thanks a lot for taking the time to address this for me.  And thanks for making the plate building tool.  I'm going to have to learn how to use LibreCAD more effectively in order to modify the plates to suit my preferences but your tool removes so many barriers to designing a plate that it makes the task manageable for self-starters.

Offline BigBlueSaw

  • Posts: 44
  • Location: Atlanta, GA
    • Big Blue Saw
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1448 on: Fri, 30 October 2015, 10:17:02 »
I think the barriers to entry are slightly lower if you use DraftSight or possibly Solid Edge 2D.

If you haven't tried using CAD, it's worth a shot if you need a simple modification. MOSTLY the editing controls are simple: drag and drop to move things around, press "Delete" to delete stuff after it's selected, etc.

Offline Melvang

  • Exquisite Lord of Bumfluff
  • * Maker
  • Posts: 4398
  • Location: Waterloo, IA
  • Melvang's Desktop Customs
Re: swill's plate building tool [builder.swillkb.com]
« Reply #1449 on: Fri, 30 October 2015, 12:36:37 »
Bigbluesaw,

Do you guys have the ability to cut these switch holes into 3/4" wide aluminum U shaped channel?

OG Kishsaver, Razer Orbweaver clears and reds with blue LEDs, and Razer Naga Epic.   "Great minds crawl in the same sewer"  Uncle Rich