When looking for a nice box to store my buckyball magnets I
could not find what I wanted. I even rejected my own parametric jewel
box design (https://www.youmagine.com/designs/parametric-jewelbox)
because even though the magnets can be arranged in a 6x6x6 cube it is
far easier to put them in a hexagon configuration. So I set out to make a
jewelbox with N corners so I could make a 6 sided box to store my
precious magnets.To create your own box include
or open polybox.scad and call
the polyBoxTop and/ polyBoxBottom modules with parameters for your own
measurements and then export to stl, slice with your favorite slicer and
finally print.The file contains 4 modules, 2 support modules and
the 2 above mentioned modules that use the support modules to create
the actual top and bottom parts.module polyBoxBase:Creates a N sided polygon with rounded bottom and side corners and sharp top corners.sides (default 6): Decimal gving the number of sides the polygon box will have.
length (default 1mm): Decimal giving the length of a side (if corners would be sharp, r = 0).
height (default 1mm): height of the rounded polygon. r (default 0.1mm): radius of the rounding of the corners.module polyBoxSides:Creates a N sided polygon with side corners and sharp top and bottom corners.sides (default 6): Decimal gving the number of sides the polygon box will have.
length (default 1mm): Decimal giving the length of a side (if corners would be sharp, r = 0).
height (default 1mm): Decimal giving height of the rounded polygon. rb (default 0.1mm): Decimal giving radius of the rounding of the corners at the bottom.
rt (default -1mm): Decimal giving the radius of the rounding of the corners at the top. When rt < 0 then rb is used instead.module polyBoxBottom:Creates the bottom part of a N sided polygon box.sides (default 6): Decimal gving the number of sides the polygon box will have.
length (default 20mm): Decimal giving the length of a side on the INSIDE of the box (if corners would be sharp, r = 0).
height (default 20mm): Decimal giving the height of the bottom part on the INSIDE.ri (default 2.5mm): Decimal giving the radius of the rounding on the inside of the box.ro (default 2.5mm): Decimal giving the radius of the rounding on the outside of the box. The outside radius
can't be bigger than ri + wall, if ro is bigger ri + wall is used instead. Putting both ri & ro to 0 gives a
box with sharp corners.overlap (default 5mm):
Decimal giving the height over which wall at the top is thinner (on
outside), so top part fits over it. Thickness of the thinner wall is
(wall - margin) / 2.wall (default 2mm): Decimal giving the thickness of the wall of the box, except top part as explained above.
margin (default 0.4mm): wiggle space between top and bottom parts. fill (default 0): Decimal giving the height over which the bottom
part is not cutout. Minimum = 0, bottom completely cut out. Maximum =
height, bottom part completly solid. This featuere can be used when creating
custom boxes where you cut out exact fitting spaces for parts to be
stored, like I did with my gopro box
(https://www.youmagine.com/designs/gopro-hero-3-box).module polyBoxTop:Creates the top part of a N sided polygon box.sides (default 6): Decimal gving the number of sides the polygon box will have.
length (default 20mm): Decimal giving the length of a side on the INSIDE of the box (if corners would be sharp, r = 0).
height (default 16mm): Decimal giving the height of the top part on the INSIDE.ri (default 2.5mm): Decimal giving the radius of the rounding on the inside of the box.ro (default 2.5mm): Decimal giving the radius of the rounding on the outside of the box. The outside radius
can't be bigger than ri + wall, if ro is bigger ri + wall is used instead. Putting both ri & ro to 0 gives a
box with sharp corners.overlap (default 5mm):
Decimal giving the height over which wall at the top is thinner (on
inside), so fits over the bottom part. Thickness of the thinner wall is
(wall - margin) / 2.wall (default 2mm): Decimal giving the thickness of the wall of the box, except top part as explained above.
margin (default 0.4mm): Decimal giving the wiggle space between top and bottom parts.fill
(default 0): Decimal giving the height over which the top part is not
cutout. Minimum = 0, top completely cut out. Maximum = height - overlap,
top part is solid apart from overlap height so it still fits over
bottom part. This featuere can be used when creating custom boxes where
you cut out exact fitting spaces for parts to be stored, like I did with
my gopro box (https://www.youmagine.com/designs/gopro-hero-3-box).