kennetek / gridfinity-rebuilt-openscad

A ground-up rebuild of the stock gridfinity bins in OpenSCAD
Other
1.15k stars 166 forks source link

screw-together baseplates #39

Closed jazzhands closed 1 year ago

jazzhands commented 1 year ago

This creates a version of the skeletonized baseplate with horizontal holes suitable for attaching baseplates together using screws and nuts. Default values are appropriate for M3 or 4-40 screws. I added a new baseplate type called "screw-together."

I had thought of making this just a checkbox to turn on screw-together functionality, but since it ONLY works with the skeletonized baseplate type, I thought that would be confusing. This code just builds the skeletonized baseplate as usual and then adds the screw together holes at the end.

This creates equivalent functionality to the baseplate Zack highlighted in his most recent video ( https://www.youtube.com/watch?v=7FCwMq-rVsY Store Anything Anywhere with Gridfinity! 20+ Weird Printable Organizers by Makers Like You! ) - Kyle Warren's Screw-Together Baseplate ( https://www.printables.com/model/300603-gridfinity-screw-together-baseplate )

kennetek commented 1 year ago

Thank you for implementing this, its been on my list of things to do for a while (along with all the other issues...). I will try to look over it soon.

jazzhands commented 1 year ago

Thank you for implementing this, its been on my list of things to do for a while (along with all the other issues...). I will try to look over it soon.

what are the other features/issues you're looking to work on? I might be able to take a crack at one or two.

kennetek commented 1 year ago

Off the top of my head, its mostly reviewing the issues and PRs, and the "new" features were the screw-together baseplates and the baseplate spacers. Right now the baseplate generator can add extra material on the outside for filling a drawer, but doesn't split them apart. So adding a toggle to split the extra material so it can be printed separately, and possibly look into locating features between the spacers and the baseplates, so they are not just floating blocks.

kennetek commented 1 year ago

I started with what you had, but it got a bit uhhh... lost I guess. The main other thing I want to mention is the Z location of the holes. Given how the skeletonized baseplate height will adjust with the number of features in the base, it needed to be more precise. h_base is not really the right value, and I could see that there was confusion about that. You translated the screw holes by h_base/2, then lowered them by 1.2*h_base. The value that describes the part of the baseplate below the Z-plane is called off and is a local param to the generating function. By using that, I think the holes are now in the middle. I think.

kennetek commented 1 year ago

Anyways, let me know what you think

jazzhands commented 1 year ago

I really like this style. I didn't check this, but am guessing the holes are sized to be tight thread fits for the screws. This is a lot more practical than the Kyle Warren style, which uses heat set inserts and is quite overkill. The code is a bit bloated for what it does though, and the parameter naming conventions are not really followed.

I meant to reply to the bit about hole sizing - I chose a size that's a clearance fit for M3 and a slightly loose clearance fit for 4-40. It was a good value for both metric and imperial. My thought is to use a screw long enough that you could use a nut on the other end. Heat set threaded inserts are overkill for this application IMHO.

The expected load and number of times you'd be inserting and removing screws don't require a threaded insert, plus most people simply don't have them.