kad icon indicating copy to clipboard operation
kad copied to clipboard

Feature requests for builder

Open iandoug opened this issue 6 years ago • 5 comments

Hi Will

Can't find easier way to contact you... so using this.

Feature requests for your builder tool:

  1. kerf per layer
  2. a "test" panel with standard switch hole cut out, in a range of different kerfs.

Reasons:

I used your tool to generate layers for standard sandwich keyboard. However I had the the aluminium plates cut at one factory using big industrial machines, and the perspex cut at another place using smaller desktop-size machines.

End result is that the overall dimensions were slightly different, and the switches did not fit in the holes in the plate. So I had to file the holes to make them bigger.

I did try to find out the kerfs from the different factories but to my surprise they did not know what I meant. (still trying to come to grips with that...)

Anyway I think the bottom line is that they have different kerfs on their machines, and now I need to find the correct setting for each factory. Hence the desire for a plate with standard switch hole, but with different kerf settings, so I can see which works best. I did try to create one in a CAD program but my CAD skills are limited (and/or those programs don't work like I expect them to)... but anyway possibly there are other people around the world with the same problems so the requested additions may be useful to them too ...

Thanks, Ian

iandoug avatar Aug 08 '18 18:08 iandoug

Hey Ian, Sorry to hear that the case didn't work out as expected. One thing to note which also complicates this a bit is the fact that different materials will actually have different kerfs on the same machine. That combined with the fact that the thickness of the material can also change the kerf settings required makes for a relatively complicated scenario. My understanding is that the kerf for perspex is larger than for metal. I think it is due to the fact that it melts back a bit more than the metal, but don't quote me on that.

For my own personal keyboard which I built using this tool, I actually created two different orders for the same case, with the metal plates being one order and the wood being a different order with different dimensions/kerf settings. I intentionally did this because I wanted to be able to put the case together and then sand off the burnt part of the wood to show the actual grain of the wood. So in my case I added about 1/2mm of extra material for my middle layers so I was able to work it down to be flush with the metal by hand.

Regarding the 'plate with multiple kerf values for different switches', this is possible. Basically, you can specify the kerf ({_k:##}) of individual keys. More details can be found in the documentation.

For example:

[{_k:0.05},"",{_k:0.1},"",{_k:0.15},"",{_k:0.2},"",{_k:0.25},"",{_k:0.3},""]

Let me know if this helps or if you have additional questions. Cheers...

swill avatar Aug 14 '18 14:08 swill

My understanding is that the kerf for perspex is larger than for metal. I think it is due to the fact that it melts back a bit more than the metal, but don't quote me on that.

Mmm... I thought it was the other way around, depending on machine used (factory I used uses lasers not water jets). The aluminium plates ended up with switch holes that were too tight, I had to buy a square file and manually enlarge them, which I sometimes overdid a bit. And then the drill holes between perspex and aluminium did not line up exactly... hence my desire to find a way of getting the correct kerfs for each factory.

I will try your suggestion for making a Kerf-Compare plate and then get each factory to make one, then see which hole works best for each material.

Thanks :-)

iandoug avatar Aug 16 '18 08:08 iandoug

I can create a separate issue for my requests, but I figured I'd start the conversation here. Here is what I'm thinking and I'd like your feedback:

builder

  1. Add a "Raw data" (like KLE) section that is specific to builder
    • Basically allow import/export of the settings specified in the HTML form
  2. Gist import via URL anchor
    • Pretty much exactly like http://www.keyboard-layout-editor.com/#/gists/73025574ae5ec6906e149baff658fa53
    • It should recognize separate files: layout.kbd.json for KLE raw data (because that is what they look for in the gist) and builder.json for builder data (I've confirmed that KLE ignores this additional file)
    • Allow "layout" to be ommitted and if it is, read it from layout.kbd.json
  3. Warn when USB cutout intersects with a mount hole
    • Sounds a bit silly, but this happens often.
  4. Offer "USB Cutout after hole number" as an alternative to "USB Cutout location"
    • Default would be 1, which would be top left corner perfectly between holes 1 & 2
    • Maybe include a checkbox for "Place cutout on hole rather than in between" just in case what I find to be a bug is a "feature" to someone else out there.

kad

  1. There really ought to be a binary that accepts a single json string as input so you don't have to recompile every time you chane a value.
    • Please make it flexible in format so that you could cat the json from http://www.keyboard-layout-editor.com and the JSON described in the export request from builder and it still work. (Surely you've noticed that the "Raw data" from KLE is not valid JSON.)
    • Alternatively (or additionally) allow it to accept 2 separate files for KLE data and builder data

If you are open to my request to kad I can probably modify your sample in the README to fill this request. But the builder features are not something we can help with as it seems you haven't shared that repo.

What do you think?

RichardBronosky avatar Aug 28 '18 15:08 RichardBronosky

(Surely you've noticed that the "Raw data" from KLE is not valid JSON.)

KLE uses JSON-lite (which I think Ian Prest invented for the project) internally, and is what you see it the "raw view". However it can export full, proper JSON ... either via the Download button top right, or on the button bottom right on the Raw Data tab.

JSON-lite was probably a good idea at the time, but I don't think IJP was expecting his tool to become the starting point of other things (like this), and that decision is now coming back to bite.

iandoug avatar Aug 28 '18 16:08 iandoug

@RichardBronosky these are basically the next set of features I want to work on, but I have not had time recently. The day job has kept me very busy. The ability to save/load configurations is a feature that a LOT of people want at this point, and rightly so.

The challenge is primarily due to the way the UI handles the data and translates it to the object model. I need to make the UI more data driven and less event driven to make the save and load functionality easier to implement and manage going forward. I have a substantial rewrite on my hands for this, which is why it has been delayed. Yes, it is on my short list of todos...

swill avatar Aug 28 '18 18:08 swill