close-circle
Close
0%
0%

Boxes.py

Cut out boxes and other stuff with a laser cutter

Similar projects worth following
close
A small python library for generating SVG drawings used for
cutting out boxes or other structures using a laser cutter.

It also comes with a growing set of ready-to-use, fully parametrized generators:

* Various simple boxes
* Flex boxes with rounded corners and living hinges
* Type trays with and without walls and floors
* Book cover with flex spine
* Magazine file

And a few one trick ponies:

* An Arcade Cabinet
* A small Robot
* A drill stand
* A castle tower
* A housing for a special kind of lamp
* A cutlery stand

It also offers an API to easily draw your own parts.

You can get the sources directly from github. You can also find some more examples there.

Usage
There are multiple ways to use the available generators:

  • Use them online
  • Use them as Inkscape plugins
  • Run scripts/boxesserver which provides an web interface on port 8000
  • Execute the scripts/boxes tool and pass the name of the generator together with the measurements on the command line
  • scripts/boxes --list gives you the list of available generators
  • Run scripts/boxesserver as an WSGI script in your web server.

You can also create your own generators using boxes/generators/_template.py or any of the generators in boxes/generators as a starting point.

Features

Of course the library and the generators allow selecting the "thickness"
of the material used and automatically adjusts lengths and width of
joining fingers and other elements.

The "burn" parameter compensates for the material removed by the laser. This
allows fine tuning the gaps between joins up to the point where plywood
can be press fitted even without any glue.


Finger Joints are the work horse of the library. They allow edges
and T connections. Their size is scaled up with the material
"thickness" to maintain the same appearance. The library also allows
putting holes and slots for screws (bed bolts) into finger joints,
although this is currently not supported for the available generators.

Dovetail joints can be used to join pieces in the same plane.

Flex allows bending and stretching the material in one direction. This
is used for rounded edges and living hinges.

  • Honey Comb Wine Rack‚Äč

    Florian Festi09/16/2017 at 10:07 0 comments

    So we had set aside one shelf in our new IKEA Besta storage cabinet for wine bottles. Unfortunately I could  not find a wine rack that fitted in there without wasting too much space. So Boxes.py to the rescue. The new WineRack generator  arranges a honey comb pattern of holes on the front wall and renders finger joints and walls to connect to a back wall enclosing each hole with the the six walls of the honey comb. To strengthen the front wall - which is reduced to little more than holes - and to hide the finger joints poking out a second layer is glued onto the front. This makes the wine rack quite good looking - especially when using a nice wood. Mine is made out of Baltic birch plywood as it is available in really good quality. A quick coat of oil gives the final touch.

    The holes should probably be around 92mm in diameter to fit most regular wine bottles but as space is limited and most of my bottles were of the narrow type I went with only 82mm diameter and just 4mm material strength to fit 38 bottles (5, 4, 5, 4, 5, 4, 5) instead of 27 when loosing both a row and a column (4, 3, 4, 3, 4, 3).

    When building the rack I realized that in the roughly 150 parts are quite a lot. So the generator now supports leaving out the vertical walls or even also all others that do not carry a bottle.

  • Otto Bot LC now has its own home

    Florian Festi08/17/2017 at 19:38 0 comments

    You might have seen Otto LC in a project log a while ago. We now had two workshops for kids. Before and after the workshops I did quite some tweaks and add-ons. Now the PCB is held in place and the head is held shut. While at first the feet were just pressed onto the servos now they are attached using a servo horn - similar to the original model.

    As the Otto Bot is more complicated than most boxes and needs its own instructions and components list it now lives in its own project. There also has been done a lot of work to create a better firmware and also a UI to create moves. I hope we can get that published and documented soon. We'll keep you updated over at the new project.

  • Images for the (Box) Generators

    Florian Festi05/20/2017 at 13:40 0 comments

    Getting some images for the generators has been on my list for quite a while. I got my not so professional prototypes into a very professional photo studio. It took me nearly another to months to get to fix up the web part to actually be able to serve them. Now they are available in both the standalone web server and - with some tweaking of the configuration - my public httpd/wsgi instance. This also meant that the CSS finally is a stand alone file that no longer has to be merged into the web pages.

    The pictures are now visible if you hover the mouse over the entry in the list of all generators. As I am still not a web developer things could probably better and nicer. But that's what I got so far. There is still need for better descriptions and building instructions. There are still pictures missing. Step by step...

  • GearBoxes.py

    Florian Festi04/30/2017 at 22:14 0 comments

    I've been working on the gear box generators recently. I considered submitting them for the Hackaday Contest. But submitting only a part of the project is kinda weird. So I set up a new daughter project: GearBoxes.py which it submitted for the Design your concept round. All the programming will be done in the same Boxes.py repository but the project logs and pictures will be in this new project. I hope I can make enough progress to submit it to either the Wheels, wings, and walkers or the Anything goes competition.

  • Meet Otto LC

    Florian Festi03/12/2017 at 14:03 2 comments

    We have been looking for a project to offer in our city's summer program for kids and came across Otto DIY which looked just right. Although our hacker space has two 3D printers printing like 20 of the chassis was not something we were looking forward to. So the question was if the same can be achieved with our laser cutter. Turns out Otto is basically made out of 3 boxes. So...

    Isn't he cute? How he looks a little bit insecure wondering about his future...

  • Boxes.py goes Inkscape

    Florian Festi02/26/2017 at 16:01 0 comments

    Going to a web page just to download an SVG and opening it in Inkscape gets old quickly. It tuns out that generating a Inkscape extension file is not really more complicated than generating a html form. As Inkscape passes the resulting values as command line parameters there was not much missing to make Boxes.py a (set of) Inkscape extensions.

    A new "install" section in the docs gives hints on how to make things work it you don't just "setup.py install" everything in your (Linux) system. Good instructions for Windows are still wanted.

    The box generators shop up in the Extensions menu under Boxes.py sorted into sub menus similar to the menu page of the web interface.

    As the project gets more and more mature I should probably start doing releases and clean up the packaging, may be push it up to PyPi and the InkSpace gallery. More paper work ahead...

  • Robot Arm made out of Boxes

    Florian Festi02/22/2017 at 22:11 0 comments

    For another - still to be announced - project I created a robot leg housing a small 9g servo. This looked promising and I started wondering if one could build a whole robot arm this way. Basically having little boxes containing servos that are connected to each other. Here is the first prototype:

    For now only 9g servos are supported but all the servo specific code is already factored out into a class of its own and new sizes can be added easily. For now I only have variants that do not require different widths on opposite side of the box. I am still pondering how to do that in a mechanically sound and not too ugly fashion. For this reason there is not yet a part that has a servo on one end and the hinge knuckles (is this the right word?) on the other side with the same orientation.

    For now the servos are just built into the surrounding box without attaching them with screws. You can see the servo mounting flange protruding through the end plate of the second segment. Unfortunately this is not stiff enough. Even with the flimsy 3mm poplar plywood the closed form of the segments give great stiffness and it is a pity wasting it this carelessly. So I will add some furniture on the inside to attach the servos more firmly.

    For now I do not actually plan to build a robot arm myself. But may be some one in my hacker space will pick up the project. I will probably add more parts if need arises. A gripper and a base would be the most obvious next additions - unless someone wants to create a hexapod...

  • Hinges and even more Boxes

    Florian Festi02/15/2017 at 21:07 0 comments

    News keep piling up faster than I can report them here in the log. I added "normal" hinges:

    In opposite to some other implementations I've seen elsewhere I decided to put the Hinge inside of the box instead of the back. This allows putting the hinge center at the surface of the back wall - putting the lid right next to the box when opened. It also uses less space behind the box:

    Only one radius of the hinge eye sticks out of the box.

    There are two more new boxes which I have not yet have time to make pictures of. A box similar to the one above but with a flat lid using a similar hinge but with 270 degrees operating range - from horizontal to back downwards.

    The one is the UBox: A box with two flex corners at the bottom. It re-uses the (refactored) code from Box2 to support all kind of different top edges and lids.

    With the new boxes the front page of the generator finally got too cluttered. I had been thinking about reorganising the box generators for a while but it had to be done NOW. So have a look at the new web interface.

  • Box with "proper" lid

    Florian Festi02/07/2017 at 20:51 0 comments

    This is something I wanted to do for quite a while but there has just not be a pressing enough need:

    A box with a boxy lid with an integrated hinge. The hinge needs to be a bit bigger than aesthetically desirable to allow this:

    It could be smaller if it wouldn't use the back wall of the lid as part of the hinge pin. I might add a variant that uses a round dowel as pin - may be using a more traditional hinge made of separate parts.

  • Rounded Box

    Florian Festi01/22/2017 at 21:26 0 comments

    No idea why this wasn't created earlier. All parts have been programmed for the Silverware generator a long time ago. The recently added AngledBox provided a template for the lid.

    So the first iteration (without the lid) basically consisted of only 3 lines of new code.

View all 26 project logs

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates