Author Topic: Keyboard CAD Assistant  (Read 4781 times)

0 Members and 1 Guest are viewing this topic.

Offline scott_squires

  • Thread Starter
  • Posts: 11
  • Location: Minnesota
    • Astrospark Technologies
Keyboard CAD Assistant
« on: Thu, 09 July 2015, 09:30:13 »
I originally wrote the guts of this site to help with drawing plate cad files for a board I'm designing. I decided to polish it up and make it public. Feedback welcome!

Keyboard CAD Assistant takes layouts from keyboard-layout-editor.com and produces a CAD drawing that can be used to create a plate for mounting mechanical key switches.

Features
  • Cherry-compatible switches
  • Cherry, Costar, or combined stabilizers
  • Drawing output in DXF, SVG, and STL formats
  • Configurable kerf and border width
  • Support for rotated keys (ErgoDox, for example)
  • 3D preview

Offline scott_squires

  • Thread Starter
  • Posts: 11
  • Location: Minnesota
    • Astrospark Technologies
Re: Keyboard CAD Assistant
« Reply #1 on: Thu, 09 July 2015, 09:47:17 »
Changelog

09 Jul 2015 - Fixed dxf document unit setting (millimeters)
22 Sep 2016 - Added option to choose between 19mm and 19.05mm switch spacing
« Last Edit: Thu, 22 September 2016, 13:04:55 by scott_squires »

Offline CPTBadAss

  • Woke up like this
  • Posts: 14365
    • Tactile Zine
Re: Keyboard CAD Assistant
« Reply #2 on: Thu, 09 July 2015, 10:05:16 »
Cool! Nice to see another tool like swill's to help people make plate drawings.

Offline VinnyCordeiro

  • Posts: 432
Re: Keyboard CAD Assistant
« Reply #3 on: Thu, 09 July 2015, 10:32:53 »
Like swill's builder, it doesn't support 1x6 space bars. :(

Offline swill

  • * Elevated Elder
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: Keyboard CAD Assistant
« Reply #4 on: Thu, 09 July 2015, 11:16:32 »
Nice to see more activity in the space.  It seems I started a trend.  :)

Are you planning to support cases at some point?

Offline scott_squires

  • Thread Starter
  • Posts: 11
  • Location: Minnesota
    • Astrospark Technologies
Re: Keyboard CAD Assistant
« Reply #5 on: Thu, 09 July 2015, 14:16:40 »
Like swill's builder, it doesn't support 1x6 space bars. :(

I started with 6.25 wide space bars because it appears that space bars aren't standardized at all. There are so many different stabilizer configurations that it was unclear to me which ones people actually use. I want to add support for different space bars once I settle on a way to deal with the various stabilizer configurations.

Offline scott_squires

  • Thread Starter
  • Posts: 11
  • Location: Minnesota
    • Astrospark Technologies
Re: Keyboard CAD Assistant
« Reply #6 on: Thu, 09 July 2015, 14:29:34 »
Nice to see more activity in the space.  It seems I started a trend.  :)

Yeah! Now we just need an automatic pcb generator.  :p

I originally wrote an openjscad script back in January. But openjscad's constructive solid geometry engine started getting stuck in infinite loops on boards with more than about 60 keys. So then I started work on the engine of this one. You released your tool but apparently the cad api you were using is really slow and I didn't like waiting.  :D So I kept working on this every once in a while.

Are you planning to support cases at some point?

If I can figure out a good way to implement them. The keyboards I am interested in building are non-rectangular, which makes automated cad for the cases a lot more complex.

Offline swill

  • * Elevated Elder
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: Keyboard CAD Assistant
« Reply #7 on: Thu, 09 July 2015, 16:35:13 »
Nice to see more activity in the space.  It seems I started a trend.  :)

Yeah! Now we just need an automatic pcb generator.  :p

I originally wrote an openjscad script back in January. But openjscad's constructive solid geometry engine started getting stuck in infinite loops on boards with more than about 60 keys. So then I started work on the engine of this one. You released your tool but apparently the cad api you were using is really slow and I didn't like waiting.  :D So I kept working on this every once in a while.

Are you planning to support cases at some point?

If I can figure out a good way to implement them. The keyboards I am interested in building are non-rectangular, which makes automated cad for the cases a lot more complex.

Haha.  Nice.  Ya I was sick of waiting for my tool too, so I completely rebuilt it from scratch.  I actually skipped the CAD engine completely and implemented a generator that generates the output files directly.  It is super fast.  I should be launching it later tonight.

The generation of PCBs is something I am considering for my tool, but I need more time to actually figure out how I am going to do it.  With the new core it should be much easier for me to implement it.  To start with I think I am going to see if I can just do a hand wiring overlay and generate the hex file for the specified matrix.  This is a long way off still though...

Offline BigBlueSaw

  • Posts: 44
  • Location: Atlanta, GA
    • Big Blue Saw
Re: Keyboard CAD Assistant
« Reply #8 on: Thu, 09 July 2015, 19:37:19 »
The DXF files open OK in QCad, but not in LibreCad or on Big Blue Saw. Any idea what might be wrong?

Offline scott_squires

  • Thread Starter
  • Posts: 11
  • Location: Minnesota
    • Astrospark Technologies
Re: Keyboard CAD Assistant
« Reply #9 on: Thu, 09 July 2015, 20:21:11 »
The DXF files open OK in QCad, but not in LibreCad or on Big Blue Saw. Any idea what might be wrong?

I just tried the ANSI 104 and ErgoDox presets from keyboard-layout-editor. Both of them opened in LibreCAD (version 2.0.7 from 27 Jan 2015). When I tried the instant quote on Big Blue Saw, it gave me a timer that counted up for 10 minutes before I closed the page. However, when I changed the file in LibreCAD (I set the units to millimeters) and then tried the Big Blue Saw quote again, it worked.

The DXF file is about the minimum you can get away with and have a valid DXF file. It uses a very old format which doesn't require a ton of undocumented boilerplate that newer versions require. The DXF files don't even include a version number. This had worked for me so far with other software. I tried adding the version number but it still didn't import. Maybe it is expecting to see some part of the boilerplate data? Saving it from LibreCAD makes it write an AC1021 version file that has a lot of that extra stuff in it. It would help to know something about the import software, and any error messages it is producing.

Can you link to the layout that didn't open in LibreCAD?

Offline scott_squires

  • Thread Starter
  • Posts: 11
  • Location: Minnesota
    • Astrospark Technologies
Re: Keyboard CAD Assistant
« Reply #10 on: Thu, 09 July 2015, 20:33:49 »
Aha. Speaking of changing the units to millimeters, I thought I did that automatically! But it wasn't set when I looked at the file in LibreCAD, and so I figured I had taken it out at some point. Turns out that I had used the wrong property id. Now it is fixed. And I also successfully imported an ISO 105 layout into Big Blue Saw. Yay!

Let me know if you have any specific layouts that still aren't working.

Offline scott_squires

  • Thread Starter
  • Posts: 11
  • Location: Minnesota
    • Astrospark Technologies
Re: Keyboard CAD Assistant
« Reply #11 on: Thu, 22 September 2016, 13:09:26 »
I added an option to choose between 19mm and 19.05mm center-to-center spacing between switches.