Functionality Update...So this may not seem like a huge update because it is only one feature, but I had to refactor a lot of code to add this functionality, so it feels like a big feature to me.
I have added support for drawing all of the different layers of the sandwich case. The top layer did not change. I have added two middle layers, one is just a spacer and does not have any cutouts and the other has a 1cm cutout in the center for the USB connection. I have also added the bottom layer.
Right now I only support the cutout in the center top of the case. I also am setting it statically to 1cm for now. I will probably make both of those features configurable, but I wanted to just launch the functionality as is first. I am not sure how I am going to allow people to specify where they want the USB opening. I could do it as a percentage across the top, but if you know exactly where you want it (say for a specific PCB), that will be hard to use. If I specify it as an actual distance, than where are we measuring from?
That brings up another point. Right now my middle layers are making the cut 19.05mm from the center of the switch center. Well assuming the switch is at the edge of the plate. Basically, it is cutting out everything but the padding you set, so if you draw something without padding, that is what would be cutout of the middle layer for the sandwich case. Not sure if that is clear. I am going to have to do something to make this more configurable though because it is possible that a PCB may require a bigger opening than that. I am looking at one of my Sprit PCBs right now and I think I would need more space than what I am currently cutting out. The way I am currently doing it is perfect for hand wired keyboards, but I will need to make some adjustments to make it easier to work with PCBs.
I hope this is a useful feature for you all.
Here is a screenshot of what it looks like when you draw a sandwich case now.