Puzzle Boxes: The Software

Introduction

This software is a design tool for making boxes using Computer Numeric Control (CNC) cutting machines.   

As input, it takes industry standard AutoCAD drawings, and as output it produces files that can be used to precision cut wood, plastics, and other materials for the creation of physical boxes.

The first step in this process is to convert 3D models of arbitrary shapes into box designs, which are assemblies of rectangular prisms.  

The sides of the boxes fit together like the pieces of a puzzle using finger joints, an assembly process common to woodworking.  

For standard rectangular boxes with six faces, manually designing these finger joints can be done by hand. 

A small rectangular box that was designed by hand.

For more complex boxes, the task of designing these finger joints is tedious, error-prone, and often practically impossible.  This software automates the design of these finger joints for complex boxes such as my sphere box, which has 108 faces. 

The output of the program are vector PDFs that serve as input files for CNC machines to cut the individual pieces from sheet material.  Because these boxes can be complex, consisting of a hundred or more individual pieces, this software outputs numbers and labels for each piece, including piece numbers for each adjacent side that serve as assembly instructions. 

Workflow

The first step is to create a box design, which is an arrangement of rectangular prisms. These designs are also mathematical solids called orthogonal polyhedrons, with flat faces and corners that all meet at ninety degrees.  An assembly of these rectangular prisms is referred to as the “box design”, while the term “box model” refers to these designs after the software has added finger joints. 

Manual Box Designs

Box designs can be manually created in AutoCAD and saved in either DXF or DWG file formats.  An example of a manually created box design is the Relativity Box.  This is based on the logo for Relativity, an e-Discovery software solution and also a company that I worked for. 

The Relativity Box design which consists of 2 overlapping cubes. These unioned cubes have been divided by a “cut plane,” shown in yellow above.

Automated Box Designs

The program can also automate the creation of box designs with the use of three-dimensional meshes, referred to as “bounding volumes.”

Combination Designs

The box designs created by this automated process can be viewed and manually edited in AutoCAD before this software calculates the finger joints for individual faces.

Left: The original Christmas Tree Box design created by this software.  Right: The Christmas Tree Box design after manual modifications. 

Bounding Volumes to Box Designs

As input for automated box designs, the program takes a “bounding volume” which defines the general shape of the box.  Below are a few examples of bounding volumes viewed in AutoCAD:

The program supports bounding volumes defined in two ways:

  1. From AutoCAD DWG/DXF files of “faceted” 3d shapes.  These can be drawn in AutoCAD or converted from other 3D model formats such as .STL (used for 3D printing) and .OBJ (used for 3D computer animation.)
  2. Using algorithmically defined bounding volumes. 

The example Christmas Tree Box was created using an AutoCAD DWG file as the bounding volume.  The example Sphere Box was created using an algorithmic bounding volume.

Tiling Patterns

Using either type of bounding volume requires a “tiling pattern” as input.  A tiling pattern is an arrangement of 2D rectangles on the XY plane that the program extrudes into rectangular prisms.  The floor and ceiling of these prisms are calculated based on the bounding volume or bounding algorithm.

Bounding Footprint

A bounding footprint is the two-dimensional projection of a bounding volume onto the XY plane.  This footprint is used by the program to automate creation of tiles.  

The bounding footprint can also serve as a reference for the user when manually creating tiling patterns in AutoCAD.

Example of an automatically generated 16×16 square tiling pattern, created below the bounding footprint of a sphere projected onto the XY plane.

Tile Extrusion

There are three supported methods of tile extrusion: 

  1. Extruded prisms that are no taller than the bounding volume.  This results in a box design contained within the bounding volume.
  2. Center point extrusion.  This results in a design that approximates the shape of the bounding volume, but generally will not be contained by the bounding volume, or be able to contain the bounding volume.  Center point extrusion was used for both the Sphere Box and the Christmas Tree Box.
  3. Extruded prisms that are at least as tall as the bounding volume.  This results in a box design that contains the bounding volume. 

Below are examples of the 16×16 grid above extruded using each of the three methods.

A box design contained within a sphere.

A box design that approximates the shape of a sphere (center point extrusion).

A box design containing a sphere.

The software provides tile and extrusion options that control the complexity (e.g., number of sides) of the resulting box design.

After the tiles are extruded, the resulting rectangular prisms are unioned into a single orthogonal polyhedron.  https://en.wikipedia.org/wiki/Polyhedron#Orthogonal_polyhedra

Manual Box Designs & Modifications

After box designs are automatically extruded, they can be manually adjusted in AutoCAD.  During this process, the volume of the box can be added to, subtracted from, and sliced using a cut plane.  The Christmas Tree Box is an example of a design that was automatically extruded, and then manually adjusted with a cut plane, so it could open.  During this step, the user can also assign materials to individual sides of the box. 

Cut Planes

Each “cut plane” splits the box into two parts.  Cut planes are defined in AutoCAD as rectangles in a separate layer.  AutoCAD’s “slice” command is used to cut the box. 

This box design is split into two halves by the magenta rectangle.  The orange half fits over the brown lip, which fits inside the white half. 

The program also has an option to create an inside “lip,” which can be attached to either part of the box, allowing the other part of the box to fit over.  Above is an example of a Relativity Box with a cut plane and a lip.  The Christmas Tree Box is another example of a box with a cut plane and a lip.

Finger Joints

The interface for (among other things) adding finger joints.

Once the user designs a box and saves it as a DWG or DXF file, the next step is to add interlocking finger joints to edges of the faces.  This will allow the sides of the box to securely fit together.  The program requires the user to input one or more material thicknesses before it can create finger joints.

Inside vs. Outside Edges

After one or more material thicknesses are selected, finger joints are created on each edge of each face.   When fingers are created on an outside edge, material is subtracted from each edge, and when fingers are created on an inside edge, material is added to each edge.

To illustrate the need to add or subtract material depending on whether an edge is outside or inside, below are images of a Relativity Box before and after adding fingers:

Without fingers, the pieces of the Relativity Box overlap on outside edges and leave a gap on inside edges (e.g. the blue rectangle).

With fingers drawn, the pieces of the Relativity Box fit together with no overlaps or gaps.

Example of an individual face with and without fingers (the white and purple lines respectively). Fingers remove material from the outside edges (#16-19) and add material for the inside edges (#6 and #8).

Face Dominance

Fingers are drawn simultaneously on pairs of faces guaranteeing that fingers will match correctly.  For this process, one additional specification is needed.  Where three or more faces meet, only one face can supply the material for that corner.  This is specified in the software as the dominant face.  

The program supports face dominance based on side type (front/back, left/right, top/bottom) and/or the size of the face.  The Relativity box above demonstrates top/bottom face dominance, (the orange sides fill the corners), while the box below demonstrates a front/back face dominance (the white sides fill the corners.)

A Relativity box with front/back (white side) dominant faces.

Materials

In addition to single material boxes, the program supports box designs with multiple materials.  This is done by choosing one color for each material used.  These colors are applied during the design of the box in AutoCAD.  For each color, the user can set a material thickness as well as a kerf adjustment (see below).  Material thickness is used to determine the depth of the finger joints and their minimum width.  Below is the Relativity Box with two materials:

The Relativity Box with two materials, the bottom cube’s material (0.196 inches) is almost twice as thick as the top’s (0.109 inches).

Model Creation

After the program creates finger joints on each edge, it has an option to export an AutoCAD script file that will display a “box model” with fingers.

This is useful both as a quality control step, ensuring that the pieces will fit together correctly without having to cut them out, and as a way to test various aesthetic options such as paint color before assembling the box.  

Model of the Christmas Tree box with paint colors.

Kerf Adjustment

Kerf is defined as the width of material that is removed by a cutting process.  

If the program did not adjust for the kerf of the cutting machine, the pieces cut would be smaller than the box model, and their fit would generally be much looser than desired. 

To correct for kerf width, the program extends the edges of each piece based on a user-specified kerf distance.  A higher kerf adjustment results in a tighter fit. 

Although the typical kerf of a laser CNC machine is only 3/1000ths of an inch, there is a noticeable difference in how tightly sets of pieces fit together differing the kerf width by just 1/1000th of an inch. 

To illustrate, below is piece #20 of the Relativity Box with a greatly exaggerated kerf adjustment of 6/100ths of an inch:

The black line shows a kerf adjustment of about 20 times what was used to cut the actual pieces. The green line shows the desired dimension of the piece.

When a CNC machine cuts an inside corner with its circular cutting tool, a portion of the corner is missed by the cutting tool.  To correct for this, short diagonals of about 40% of the radius of the tool are added to inside corners.

When cutting inside corners, a circular cutting tool leaves a small amount of extra material.

There are many factors that can affect the kerf of a cutting machine, dryness of material being cut, and machine vibration.  To compensate for these factors, the program provides an option to create multiple output sets with a range of kerf adjustments.  The program also provides an option to create “kerf test” pieces.  The user has an option to cut these test pieces to verify which setting produces the desired fit before cutting the corresponding set of pieces.  This process can save a great deal of time, as the cutting process for the Sphere Box was about one hour, and the Christmas Tree Box was about an hour and half.  Kerf adjustment can also compensate for the material added to each piece, for example by painting the pieces. 

The kerf adjustment for the Christmas Tree Box was 0.0035 inches for the painted pieces and 0.00425 inches for the unpainted trunk and lip pieces.

PDF Creation

The output from the program is a vector based PDF file which provides instructions for a CNC machine to cut the pieces.

The program assigns labels to each piece with numbers along each shared edge corresponding to adjacent pieces.  Each piece number label also includes a letter indicating the side type, “t” for top, “f” for front, etc.  In addition to aiding box assembly, label letters also aid in separating pieces to paint.  As shown in the Sphere Box and Christmas Tree Box, all top faces were painted one color, and all front faces were painted another color.

Below is a screenshot of a PDF for the Christmas Tree Box (excluding the trunk and lip pieces, which were cut separately).   

Download/view the full-sized pdf here: 121121_Final_XmasTree_Tree_k350.pdf

Making Boxes

Using the PDFs created by the software, a CNC machine is used to cut the pieces.

Freshly cut Christmas Tree Box pieces.

For the example boxes, before assembling the pieces artistic touches were added. 

The Christmas Tree Box was painted 11 colors prior to assembly.

Finally, the pieces are assembled into a physical box. 

The two assembled parts of my Christmas Tree Box.

The Christmas Tree Box viewed from the right/back and front/right sides.

Other Uses

Although the demonstrations for this software are small decorative boxes, there are other more practical uses.  Naturally the software does not limit the size of the boxes designed.

  • This software can also be used to design custom crating needed to contain unusually shaped cargo.  
  • This software can be used to design unusually shaped crates designed to be contained in the cargo holds of aircraft and other limited spaces.
  • The manual box design of this software can be used for designing custom forms for casting concrete.
  • Future revisions of the software are slated to include features for designing furniture, both drawer and door design.