Using OpenDesk.CC to Create CNC Furniture

CNC & Machining Digital Fabrication Furniture & Lighting Home
Using OpenDesk.CC to Create CNC Furniture

My local makerspace, the Columbus Idea Foundry, has a ShopBot CNC router capable of handling 4×8’ sheets of plywood. When I discovered Opendesk’s web site with its downloadable plans for desks, tables, chairs and other furniture, I began to have ideas. So when my daughter mentioned that she could use a kitchen table, that was all I needed to hear. I decided to create a table using the Opendesk “Meeting Table” design. By skipping the central hole (intended for cables), I’d have a perfectly functional kitchen table.

Start the Project

Opendesk designs have a lot going for them. They are attractive and free. When the parts are cut accurately on a CNC router, they are sturdy too. The preferred material, Baltic birch plywood, is attractive and reasonably priced. However, there are challenges. The designs are in .DXF format with no written documentation. Each design includes the drawing file and a pdf that shows how the products, once cut, should be assembled. There is no document that tells you how thick the plywood should be or what router bits to use. There are no tips to show you how to transfer the file into your CNC router’s control software, define tool paths, or mount the plywood sheet when preparing to cut. I suppose this lack of information helps convince users to purchase the completed item from one of Opendesk’s registered makers. Sadly, it does leave the rest of us guessing.

So the goal of this article is simple: explain how to get from the Opendesk design files to a completed piece of furniture. I chose to buy an extra sheet of plywood and make some chairs as a way to practice before tackling my table. It turned out to be a wise choice. I made my share of mistakes in the chairs’ construction and, even after hours of tweaking the result, I couldn’t rescue them. However, what I learned from the chair project made my table a success. Now I can share what I learned so that you can succeed in your first project.

I used VCarve, Shopbot’s preferred tool for designing CNC projects. Your CNC might use a different application, and so you may need to take the steps I describe and adjust them to your system.

Quick Sidebar

Back in the 1970s the United States seriously considered adopting the metric system. This effort was beaten back by an attitude of American superiority that argued that the rest of the world should do it our way. Today, those of us in the USA, along with Myanmar and Liberia, get to have two sets of wrenches in our toolboxes, and the challenges of finding products in metric dimensions when we need them.

To aid the metrically challenged (like myself), here are some quick approximate conversions:

  • 1/8 inch = 3mm
  • 1 inch = 25mm
  • 1 foot = 305mm

These values have helped me to visualize what’s going on when I look at metric dimensions. I hope they do the same for you.

Accuracy Matters

Opendesk projects are designed with very tight tolerances. This is particularly apparent with joints where tolerances are measured in tenths of a millimeter. That’s 1/250th of an inch! They define four joint types:

Mallet-Tight (-0.60mm pinch) Cut the hole/join smaller than the overall thickness of the material. This makes for a tighter, more secure hold as the wood is slightly crushed/compressed into place.

Press-Fit (0.00mm pinch) A small amount of friction holds the parts together in a flush slot that has zero play. No tools are needed for assembly as this method is normally just pressed in by hand.

Push-Fit (+0.20mm pinch) A push fit is similar to a press-fit. It makes a product easy to assemble as there is a larger amount of space in the join to play with. It is normally associated with locking mechanisms.

Slide-Fit (+0.50mm pinch) These are commonly used for parts that need to go through one another or need to move freely. A cable management tray/lid is a good example.

This matters when selecting the thickness of the plywood. It matters that your router be dimensionally accurate in all axes. This is particularly true for the z-Axis. A pocket cut really does need to be of a precise depth.

Plywood Dimensions

Opendesk projects are defined in metric dimensions and use metric sized stock and hardware. Baltic birch plywood is available in a range of thicknesses from 6mm to 24mm. Since 3mm is about 1/8 inch, this corresponds to thicknesses from ¼ inch to 1 inch. Most Opendesk projects use 18mm sheets that are approximately 1200x2400mm or 1220x2440mm in length and width.

How do you know what thickness of plywood to use? Check the CAD .dxf file. The CAD .dxf file for the legs of the meeting table is named LEN_MTG_PUB_STD_W-1180_L-2080_C-RT_A-SA_M-AP_cad-1_18.000-0.0.dxf. I may not know what all of those letters and number mean. However, I did determine that 1180x2080mm are the dimensions of the table top. But the 18.000 at the end is particularly significant since it specifies the thickness of the plywood for the project. So, this meeting table calls for 18mm Baltic birch plywood.

Tip: The plywood thickness for Opendesk projects really does matter! Opendesk parts fit together tightly with the edge of one piece often needing to fit the pocket in another.

Stock up on Materials

Finding quality Baltic birch plywood turned out to be quite a challenge. Some sources list grades of plywood like B/BB or A/BB. These tell you something about the number of flaws in the outer ply of a sheet. I learned the hard way that there are other differentiating factors. One is the thickness of the outer veneer layer. Quality Baltic Birch plywood has an outer veneer of 1 or 2mm. By contrast, American cabinet-grade plywood has an external layer that is literally paper thin. That makes sanding an exercise in anxiety. I didn’t appreciate the issue of outer veneer thickness until later when I watched that paper thick layer tear at the edges of several pieces. Ultimately, I would have done better going to a local retailer as opposed to one that is a part of chain. I might have had to rent a truck for a few hours to get my plywood, but it would have been easier to find Baltic Birch with the thick outer veneer that I wanted.

I got started thinking about delivery when I learned how hard it was to find 24mm Baltic Birch for the table top. When searching nationally, I found several offering 18mm sheets, but only one supplier supplying 24mm sheets. They quoted $250 in shipping in addition to the cost of the plywood. I checked the plans and decided to make some minor adjustments to the table’s design so I could use 18mm plywood for the top as well as the base.

The very helpful people on the Opendesk Community Forum helped me source the rest of my materials. My table called for 22 x M6x13mm insert nuts, 22 x M6x30mm furniture connector bolts, and 22 x M6 washers.

Measure Twice

There is one more step before sitting down at your computer and working with the drawing files. Accurately measure your plywood’s length and width. Above all, measure the thickness with a digital caliper. Baltic Birch plywood can vary in thickness by half a millimeter or so. That’s a bit more than 1/64 inch. It may not seem a lot, but it can make a difference when fitting components together.

Import the Opendesk Drawing

When you download a drawing from Opendesk, you will be downloading a .zip archive that contains at least two files. One will have a .pdf extension. It illustrates in a series of images how to assemble your furniture after you have cut out the parts. If your project requires hardware, (nuts and bolts, for example) it will specify what you will need to buy. The remaining file(s) will have .dxf extensions. These are the CAD drawings for your project. Typically they have four panels and look like the image below.

The three large panels that make up the majority of the drawing space contain the vectors that your CNC router will follow when cutting. The leftmost panel contains the vectors for cuts in the top face of your plywood. The center panel contains vectors for cuts in the underside or reverse side of your plywood. This is usually blank. If there are underside cuts, then you will have to accurately register the position of your plywood and then flip the board and cut the underside as well. The third panel in the drawing is a merged image of all vectors on both the front and reverse faces of the drawing. I have not discovered the value of this panel.

The text surrounding these panels is useful in an extremely concise way. The three panels on the bottom are labeled “USING THIS DRAWING,” “FABRICATION GUIDELINES,” and “SUMMARY TERMS AND CONDITIONS.” It appears to be boilerplate and largely identical for all Opendesk projects.

VCarve can open a .dxf CAD file directly. Once you have opened the file, you will see the full drawing as depicted below.

Make sure your Job Setup Units section is configured to use millimeters and then enter the length, width, and thickness of your plywood. Set your material thickness precisely as you measured it. Change the X and Y offsets to 0, and position Z at the top of the material. Click OK in the Job Setup window to lock in these parameters. Your VCarve workspace will then look like this:

Understand Opendesk Layers

Opendesk drawings consist of many lines called vectors that define the shape of the component to be created by your CNC router. Some lines represent the outline or perimeter of each component. Others depict features within a component. A table leg, for example, might have dowel holes, grooves, and other indentations within its perimeter. These features do not go all the way through the component, just partially.

In an Opendesk drawing, the vectors are placed on layers. Each layer represents a type of cut your CNC router will need to complete. The outline of the components will appear on a profile layer. For the table in my project, that layer was named TOP-CUT-OUTSIDE_18.000MM. The ending 18.000MM tells us that this cut should go completely through the 18mm plywood.

A third layer is named TOP-POCKET-INSIDE_10.500MM. So the pocket toolpath will be cut 10.5mm deep. Such a pocket can be created with any router bit smaller than 10mm in diameter. Typically, this might be a 6mm or ¼ inch bit.

Yet another layer is named TOP-HOLE-10.000MM-DIAM_15.000MM. This layer defines a series of holes that will be 10mm in diameter and cut 15mm deep. Such a hole can be cut with a 10mm drill bit that uses a drill toolpath or with a router bit (smaller than 10mm in diameter) that uses a pocket toolpath. In total, my project had ten layer defining vectors to be cut by the router.

Opendesk drawings will usually have additional layers that contain text or other elements not to be cut by the router. These are named:

Set Up the Job in VCarve

The Drawing area on the left in VCarve contains the following icons at the top.

If you open the Layer dropdown you will see a list of layers that looks like this:

The first four layers do not contain vectors that your router will need to cut. These should be deleted. Click on the layer name so that it is in bold. Then right click on the layer name and choose the Delete option. For all but the “0” layer (which is entirely empty) you will see the following image popup.

Be sure to choose the “Delete data” option and then click “OK.”

Once you’ve deleted those four layers and their contents, your VCarve work area will look like the image below.

Since you will not need the vectors that were in the “Both Faces” panel in the original drawing, select those vectors and then hit your delete key. What’s left is a depiction of your material (in white) and the vectors you will need to cut. The next task is to position the vectors on the material. Select all the vectors (Ctrl-A or Edit/Select All Vectors). Then click on the rotate button [ICON1] in the Transform Objects section on the left. Set the angle to 90 degrees and click “Apply.” The vectors will have rotated but they still won’t be on the white material area:

Drag the vectors onto your plywood workspace. You will want to zoom-in and center this accurately so that you have adequate margin all around the vectors. Your VCarve workspace should now look something like this:

Scale Your Drawing

If your plywood is more than .3 mm thicker or thinner than the standard 18mm, you may need to scale your drawing. If, for example, your plywood is thicker (say 18.8 mm), then you would divide 18.8 mm by 18. This would give you a value of 1.044. As a percentage, this would be 104%. Select all vectors again and then click on the resize button in VCarve’s “Transform Objects” area. Enter a percentage of 104 in one of the percentage areas and make sure that “Link XY” is checked. If you then click “Apply,” your project will be resized. Note that even a 4% increase in size may force you to rearrange some of the items on your drawing to fit on your plywood.

Join Vectors

Occasionally when you import or open a drawing, it will contain “open vectors.” An open vector is one that should surround a component but does not. For an example, see the following image.

I have highlighted a 3-sided vector that is separate from the fourth wall of the shape. If you were to attempt to create a profile cut around this 4-sided object, VCarve would throw up an error screen because the two vectors that define it (one one-sided and the other three-sided) are not attached to make a unified shape. To solve this problem, you will need to join these two vectors using VCarve’s “Edit/Join Vectors” menu option. Go through your drawing layer by layer. You cannot just select all the vectors in your drawing since VCarve will pull vectors from one vector into another.

Keep in mind that some vectors should be open. In my table, for example, there are four boards that make up the sides of the table’s support box. You can see those boards in the following photo.

The ends of each board are chamfered with a 45-degree bit. The vectors for these chamfers are not closed shapes. They are simply lines. If you try to join them, that VCarve will not allow you to do so (unless your “Tolerance” is set too large).

Create Toolpaths

Each of the remaining layers in your VCarve file represents a set of vectors to be cut by a router bit or drill. The next step is to create a toolpath for each. Almost everything can be cut with a 6mm compression router bit, including any holes larger than your bit.

The process of creating toolpaths is simple. Just work through each of the layers and select the vectors on that layer with VCarve’s “Edit/Select All Vectors on Current Layer” menu option. Use the name of the layer to determine the type of toolpath and bit, and depth of the cut. You may not be immediately able to see all of the characters in each layer’s name in the VCarve dropdown list. However, if you double click the layer’s name, as if you wanted to rename it, you will be able to see the layer’s entire name. You can also use the router bit to drill holes larger than the diameter of the bit itself.

One word of caution here. If you use a router bit to drill small holes the same size as the bit itself, you will need to think about where the chips will go. A down cutting bit will push the chips into the hole with no way for them to exit. An up cutting bit will give the chips a way out. The third possibility, recommended by Opendesk, is a compression bit. It cuts up at the bottom and down from the top.

Then there is the question of feeds and speeds. How fast will your bit travel in the work surface? How deep will it cut in each pass? How fast will it spin as it is cutting? In general, I have found the VCarve defaults to be good conservative values. It is important to be conservative. As you will see in the next section, the parts in the Opendesk designs are set very close to one another. Cutting too aggressively can generate stresses that can cause parts to break free and be damaged or cause a router bit to break (what happened to me).

Tip: Your profile cuts will determine the amount of time you will spend sanding your components prior to assembly. Anything you can do to make them clean will save time in the end. I have two recommendations.

Cut in multiple passes. There is no value in hurrying this step and spending hours sanding. With a 6mm bit, I would suggest a pass depth of 1/8 inch. I know the normal recommendation is for deeper cuts (up to and beyond ½ inch), but we are also trying to reduce vibration and horizontal forces on the wood as the cut is occurring.

Also, use VCarve’s “Last Pass” feature when creating profile toolpaths.Your router’s passes around the perimeter will be offset by .1mm until the last/lowest cut. Then your router will cut to the precise line in reverse direction. The result is a much cleaner cut.

Where Things Get Tricky

So far we have covered a lot of territory, but things have been fairly cut and dry. Now we will need to deal with the two factors that can make this project go very wrong. The first is Opendesk’s very high standards of accuracy. The second is the challenge of mounting your plywood securely to your router’s bed.

Measure for Accuracy

As mentioned above, Opendesk projects specify joints with remarkable precision. A press fit is specified with no gap between the pieces whatsoever (a 10.5 mm tab in a 10.5 mm slot). Mallet fit joints have a gap of – .6mm, so a 10 mm tab is to be pounded into a 9.4 mm slot. If you are off by ½ mm, you may not be able to join two components.

In general, CNC routers can cut to this level of accuracy in the x- and y-Axes. But nailing z-Axis dimensions can be a greater challenge. None of this is a big issue with profile cuts that go through the material. But when you are cutting pockets to be used when joining one component to another, z-Axis accuracy is critical. As an example, each half of the legs of my table included two pocket cuts.

Photo is courtesy of VCarve

Each of those grooves is to be 10.5 mm deep. When the two halves of the legs are glued together, they produce a pocket 21mm deep. The table’s legs are mounted to an undercarriage by tabs that are pounded into these pockets. The tabs are 21 mm wide.
I set the z-Axis on my router. This should have set the axis with great precision. However, I did not double check, and after cutting these pockets, I noticed they were 10 mm deep instead of 10.5 mm. Once my legs were glued up, I was left trying to pound a 21 mm tab into a 20 mm pocket. Carefully sanding with a set of calipers allowed me to adjust, but it would have been far better to get it right in the first place.

I have two recommendations to address this kind of problem.

Ensure that your bed is meticulously clean before you place your plywood. Debris on the bed can shift the z-Axis height from point to point across a large sheet of plywood. Either vacuum or blow the router bed clear. If your bed has scars from prior cuts, take a scraper and knock down the high points along those cuts. Then vacuum your bed again.

Modify the toolpaths for cutting pockets. Generally, an Opendesk project does not have many pockets to begin with. Reduce the cut depth of your pockets by half a millimeter. Cut the pockets and then measure their depth with a good digital caliper. If you need to go deeper, adjust your toolpath and cut it again.

Secure Plywood to the Router Bed

Opendesk indicates that the preferred method for mounting plywood stock to the router bed is with a vacuum table. If you have a router capable of cutting sheets of this size, then you can skip this section. For the rest of us, another mounting solution is needed. Opendesk drawings place components as close as 15mm to each other. If you are cutting with a 6mm bit, it will take 6mm off either side of two closely spaced pieces. That leaves just 3mm of stock! Thankfully, my projects were not quite that bad, but I did have placements as close as 18mm.

My first time cutting an Opendesk project cost me a router bit when a component popped free and trapped the bit. My makerspace uses dry wall screws to mount material to the router bed. I have heard of other options, like two-sided tape, but such a solution seemed unworkable for large sheets of plywood. I had been reading about polymer pin nails that would not damage a router bit. That seemed cool but I doubted they would drive through 18mm plywood.

I was going to have to use the dry wall screws to mount my project. I needed to calculate the clearance I would need on either side of those drywall screws. Based on my calculations, I figured that I could safely place a screw anywhere on the drawing that that had 28.5mm breathing room. The easiest way to plan this was to create a 28.5mm circle in VCarve and then drop circles as close as possible to the components. These would mark where I could place my screws.

From there I mounted the plywood with two screws in opposite corners. In VCarve, I created a new layer called screws.

I created a circle 28.5 mm in diameter. I then created a drilling toolpath that drills each of these circles. I was careful to drill through the material but not into the router bed. The toolpath pre-drilled a hole in the center of each circle. I could then use these holes to place screws in safe locations on my workpiece.

I then mounted the plywood to the router bed using the drilled holes. When defining profile toolpath, I placed tabs manually so that they aligned with one another and reinforced one another. I made my tabs 6mm thick and 18mm long because I also wanted to ensure that my tabs were thick enough to include two plies of the plywood. That way I would get strength in two directions. I cut my profile toolpath last. The other toolpaths would not be able to shift the material since it was one solid piece. I cut the profile toolpath gently so as not to generate a lot of lateral force. That is what causes components to break free. As suggested above, a 3mm pass depth not only minimizes tear out, it also minimizes lateral forces on components.

I mentioned that in my first Opendesk project, a pair of chairs, I had several components break free and others that were not properly sized because the remaining thin perimeter around the components began to shift as it was cut. I recut those components. Here’s my vCarve drawing using the placement of tabs and drilling circles:

I know this looks like a crazy number of screw holes. However, keep in mind that they serve two purposes: to eliminate vibration and hold the plywood as tight as possible to the work surface. That ensures that pocket cuts are accurate.
Also, notice how the tabs are aligned opposite one another so that they support one another. Allowing VCarve to place tabs automatically will create far fewer tabs and randomly place them around the perimeters of the components. If one tab breaks, there will not be enough left to support it.

Cut, Sand, Assemble, and Finish

From here on out your project will be much like anything else you’ve built with your CNC system. Just cut your toolpaths one at a time. Remember to accurately set your z-Axis for each tool. Cut the profile toolpath last.

Assuming your cuts have been accurate, the sanding task should be minimal. Be careful not to over-sand the joint areas of components. Doing so will compromise the precision of the CNC cuts and weaken your final assembly. The non-joint areas of your plywood parts should be sanded smooth prior to finishing but do not make the mistake of sanding through the top ply. As mentioned earlier, in some Baltic birch plywood, this is paper thin. If your components have been cut accurately, you will be amazed at the precision with which the components of your project fit together. My table was rock solid and the legs perfectly aligned.

Have fun with your Opendesk project and enjoy the solid piece of furniture you create!

Discuss this article with the rest of the community on our Discord server!
Art Krumsee

Art Krumsee has 30 years of experience as an IT Director focused on Internet and web development technologies. He continues to work part-time as an Internet communications consultant but increasingly he devotes his energy to interests ranging from teaching meditation to creative Maker projects at the Columbus Idea Foundry.

View more articles by Art Krumsee