Trying to create a closed box with tabs and slots for the tabs

Hi, I am new to this and I need to design a box with particular dimensions inside, but it needs to have tabs and slots. Such as a tab that fits into a slot, as used in boxes that have separators. It should be easy enough, but I cannot figure out how to make it. I have tried online box generators, but they all use finger joints. I am running out of time and patience. Does anyone understand what I need to make and could help me make it. It is a rectangular box with bottom, top, sides and end panels. I need to make it out of 3mm acrylic. Any help would be wonderful.

Can you articulate what specific aspect of the design that you’re struggling with?

What type of joint would you prefer?

Similar to this:

The generator has a bewildering number of options, so you can probably have it lay out whatever you want.

It’s not clear what type of joinery you seek, because finger joints are pretty much the canonical laser-cut joint.

Pictures or sketches of your desired outcome will help us see what you’re thinking …

Is it something like this you are looking for ?

2 Likes

If you can sketch out what you’re trying to end up with (digitally or just a photo of chicken scratch on the back of a CVS receipt), it might be something that is fairly simple. If it’s something that can be done with parameters in an existing Boxes.py generator, I can give you pointers. If it’s something that can’t be done with an existing generator, it might be an easy mod that I could throw together (with instructions on how to quickly and easily run your own Boxes.py locally with the custom generator).

I’m pretty sure that whatever you’re trying to do, it should be pretty straightforward. I mean, if my Battery Box generator was easy enough, your box should be a cakewalk.

Thank you, I have done a very basic sketch to try and show what I mean. Not sure if it makes sense or not, to you and apologies for the drawing looking skewed, I took the photo at a funny angle.

Okay, I whipped up and annotated a quick open-topped box just so I can make sure we’re on the same page and using compatible terms. Each side of each rectangle is labeled with its respective edge type.

As I believe I understand it, in your sketch, the left rectangle is basically four edges of type ‘h’ (edge, parallel finger joint holes), and the top edge of the right sketch would be ‘f’ (finger joint) that slots into one of the slot lines on the left sketch, yes?

Are you wanting a closed box with the top and bottom the same, like your left sketch, with four sides with finger joint (type ‘f’) “tabs” the slot into the top and bottom? What about the side-to-adjacent-side connections? Plain straight edges (type ‘e’) that don’t connect? Slots (type ‘h’) on two opposing side panels and finger joint (type ‘f’) tabs on the other two side panes (making a shape kind of like a “double-crossbar H”)? One slot line (type ‘h’) and one finger joint line (type ‘f’) on each side panel so they slot together in a “pinwheel” arrangement?

I don’t believe there’s an existing Boxes.py generator for what you’re looking for, but I’m fairly confident that it shouldn’t be too difficult to throw one together.

I’d probably use a drafting technique where you translate (or transfer) the features to another projection (view-point) in the Drawing layout.

I’m using lines in the Red layer for ‘construction’ and I’ll turn the layer off when I’m done.

Two larger rectangles for the cut-out of the box. Four small rectangles for slots. Those four are identical because I used copy and paste.

If I group the four small rectangles, I can use the ‘Boolean Assistant’ to Union the group of closed shapes with (or to) the rectangle (also a closed shape). This combines their outlines.

Copy the whole box side and paste it over the target. Copy and paste allows you to leave the original, line up the features you intend to include, and discard whatever features aren’t needed.

Note that the group of four rectangles has a different dashed line indicating that they belong to a group.

Once the edges of the box are aligned, delete the features you’re not going to need.

Select the two things to ‘Boolean’, the Group and the single rectangle.

Apply Boolean Union to combine their outlines. The automatic preview is very helpful.

This should get you moving. :slight_smile:

This seems pretty close:

That’s with a 2×2 partition in the middle and a drop-in lid.

The jawbreaker URL so you can twiddle the settings: click.

OK, yes it needs to be a closed box with top and bottom the same. Top and bottom have h only. The two end panels with f only on all sides. The two side panels with f’s on long sides and h’s on the ends, to correspond with the end panels. The material is 3mm thick, that I am using. The internal measurements I have to work with are as follows:- Sides Height 171mm, Length 257mm. Ends Height 171mm, Width 128mm. The Top and Bottom panels need to be slightly larger, just enough to secure the side panels.

Okay, here’s an SVG of a “Closed Edge Box” (from my modified generator) with x=257mm, y=128mm, and h=171mm, with “outside” unchecked (so those are interior measurements). This is using the default finger joint settings and a 0.1mm burn correction (in 5mm plywood, I usually use 0.14mm burn correction to account for the kerf, so this is tighter). Obviously, it’s trivial to change the settings once you have the generator.

ClosedEdgeBox

Of course, give a man a fish and you feed him for a day. Feed a man to the fish, and… um… scratch that. You get the point. The point being that if you’ve gone through the “it’s not that hard” trouble of getting a copy of Boxes.py running locally, you can play around with generators (yours or your fellows) all you want. So…

How to run a local copy of Boxes.py in Windows (so you can run your own modified generators that aren’t in the standard set), in something like nine-ish steps, more or less:

  1. Download the Boxes.py project as a zip file, or grab it via any other method from its page on GitHub.
  2. Unzip the file somewhere nice. It’ll all be in a “boxes-master” folder.
  3. Download this Boxes.zip file from me at WardFontaine.art which has my “Closed Edge Box” generator, plus a convenience shortcut to start the server and one to the browser page.
  4. Unzip that Boxes.zip file, and drop the contents into the folder containing your “boxes-master” folder from the first zip.
  5. If you don’t have Python installed, install it from the Microsoft Store (currently, the latest version there is Python 3.12).
  6. Run the “Install Dependencies.bat” file – it runs python’s pip module to install affine, markdown, setuptools, sphinx, shapely, and qrcode, which are the packages Boxes.py uses, as you can see if you open it in Notepad.
  7. Now run “Start Boxes.py Server.bat” – it is just a shortcut that calls python with the boxesserver path. A “command prompt” style window will open and after a few moments show “BoxesServer serving on :8000…”
  8. If Windows pops up a firewall prompt asking you whether you want Python to be able to communicate on the network, the answer is yes (since you’re running a local Boxes.py server).
  9. In a browser, go to http://127.0.0.1:8000/ (or click the “Gallery - Boxes.py” shortcut) to access your personal Boxes.py server while it’s open.

(You really only need python, the Boxes.py project download, and one pip invocation for the dependencies, but this is the special “But I really just want to use it, not learn programming” version.)

Anyway, I’m off to be the wizard, but I’ll check back later.

2 Likes

I prefer Maker Case…www.makercase.com

Thank you so much for that, I believe I have everything going OK until I try to get the Gallery - Boxes.py open, it says it cannot be reached. Grrr.

Ah, the ol’ cannot be reached, a modern descendant of ye olde “an error has occurred”. The three most logical hypotheses for that are:

  1. The server is not running.
  2. The server is running, but it’s not listening where it “should” be.
  3. The server is listening, but something (e.g. a firewall) is blocking things.

I suppose I should reach into my decades-past helpdesk trunk and don my vintage tech support hat… :sweat_smile:

Check Step Zero:
Open an Incognito tab in Chrome and type precisely “http://127.0.0.1:8000/” in the address bar and hit enter, just to verify that it’s not just the shortcut (or Windows’ handling of it) that’s the problem. You can also do the same with your computer’s IP address instead of “127.0.0.1”, i.e. localhost, but it shouldn’t make a difference.

If it’s still unreachable, continue to step one.

Check Step One:
When you run the batch file to start the server, you should get a nice command-prompt style window with the text “BoxesServer serving on :8000…” in it. Having that window shows python is running and the server is successfully starting up.

If it’s starting up successfully, continue to step two.

Check Step Two:
With the “BoxesServer serving on :8000…” window still there, open a new command prompt window (Start, Run, cmd… or whatever other method you want). At the prompt, type “netstat -an | findstr :8000” to list all active ports and filter the output to just port 8000 (the port the server should be listening on). You should see a line that looks like:

TCP 0.0.0.0:8000 0.0.0.0:0 LISTENING

Having that line shows the BoxesServer has successfully started accepting connections on TCP port 8000 for and from any address. (If there is something other than “0.0.0.0” before the port 8000, the server may be listening differently than assumed.)

If it’s listening as we expect it to be, continue to step three.

Check Step Three:
Assuming Windows 10 or higher, click the Windows Start button and type “firewall”, then click to open “Firewall & network protection” from system settings. In the window that comes up, there are three entries “Domain network”, “Private network”, and “Public network”. One will be marked with “(active)” after the name.

If the active one is “Private network” or “Public network” and either of those says “Firewall is on” below it, click the “Allow an app through firewall” link just a bit down the page. That will open the “Control Panel / System and Security / Windows Defender Firewall / Allowed apps” dialog. Scroll down to find “Python” and verify that “Private” and “Public” are checked so the firewall won’t block traffic to the server.

(NOTE: If you have some other firewall software, it could be hampering things, but that’s a bit further afield. The security software at work kept disabling our broadcast control room hardware because it classified it all as “keyloggers”… which makes no sense even for something with a Raspberry Pi Pico operating via USB HID.)

So… if you’ve now run out of steps and you’re still not up and running, I suppose I may need to upgrade my hat… Have you tried turning it off and on again? :innocent:

For a simple box design checkout MakerCase.com

Here you can design boxes.
https://boxes.hackerspace-bamberg.de/SlatwallDrillBox

1 Like

Hi, try this online-tool

good luck

Apparently nobody will be satisfied until you try MakerCase, even though MakerCase doesn’t accommodate your tab-in-slot joint requirements. You should definitely try MakerCase yourself to see that MakerCase doesn’t have the type of joints you want. MakerCase is really slick and hides all the config options that Boxes.py (especially with custom generators) gives you, so if you don’t actually need what you asked for, you should really check out MakerCase.

:partying_face: MakerCase! :partying_face: MakerCase! :partying_face: MakerCase!!! :partying_face: :partying_face: :partying_face:

Seriously, MakerCase is indeed a nice super-simplified and slick box generator, and it’s an understandable favorite of many people who just want a box. On the other hand, it doesn’t have nearly the configurability of something like Boxes.py, and you can’t just grab your own copy and run it yourself to make/use custom generators that it doesn’t have.

In short, MakerCase is a fun basic site for those for whom it is sufficient, but for the love of the thread, people, read the thread, understand that MakerCase can’t help here, and please stop suggesting it as a solution to something it can’t solve. (I was starting to wonder if MakerCase had an affiliate program, hehe.)

1 Like

If you want to use LB to resize tabs and slots (instead of selecting the “burn correction” in Boxes.py, you have to remove 1 node from the middle of each slot (rectangle), and set inner_corners to square.

That’s amazing!
I didn’t get it running at first. “Start Boxes.py Server.bat” only opened a command window for a short moment and closes again.
I managed to get it working on WSL (Linux subshell)