- Boxes․py is an online box generator
- Boxes․py is an Inkscape plug-in
- Boxes․py is library to write your own
- Boxes․py is free software licensed under GPL v3+
- Boxes․py is written in Python 3
Boxes․py comes with a growing set of ready-to-use, fully parametrized generators. See https://florianfesti.github.io/boxes/html/generators.html for the full list.
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.
Documentation
Hi Florian,
the Boxes.py is awesome! I have found - maybe only on my machine - a bug which I thought is easy solvable (but I was not able) - so I tell you about:
When selecting as Top Edge L Edge for slide on lid - both on the universal box and the Type-Tray there is an error on the server:
Traceback (most recent call last):
File "/usr/lib/python3.6/wsgiref/handlers.py", line 137, in run
self.result = application(self.environ, self.start_response)
File "./boxesserver", line 399, in serve
box.render()
File "./../boxes/generators/universalbox.py", line 60, in render
t1, t2, t3, t4 = self.topEdges(self.top_edge)
File "./../boxes/lids.py", line 118, in topEdges
if t1.char == "t":
AttributeError: 'str' object has no attribute 'char'
All other Top Edges work perfectly. I just did not find the mistake (even if it was mine...) - I think I did not search enough...
And again: GREAT WORK!!!
Thanks
Michi