Saturday, May 4, 2019

Book review -- Design for CNC

Design for CNC was written by the AtFAB group who have put together a wonderful collection of open-source [CC BY-NC-SA 3.0] furniture designs.

The book's website will give you some idea of the content.

This book provides a gentle introduction to Design with a capital D. They go through the problem domain, the design constraints and they develop a design framework for furniture made with CNC router techniques and plywood. They then demonstrate how they have applied the design framework in the design of a progression of eight furniture models.

So far so good, but the approach falls apart in that they have based their design tutorials on the integral use of SketchUp for 3D CAD and VCarve for 2D CAM. Unfortunately, in the year-and-a-half since the book's publication SketchUp has changed their business model (yet again!). The free SketchUp Make has been discontinued. It's been replaced with the cloud-based SketchUp Free. But SketchUp Free doesn't export vector files needed for cutting with CNC or laser. The 2017 version of Make is still available, but it doesn't export vector files either. An upgrade to a version of SketchUp that exports vector files starts at $119 per year (the cloud-based SketchUp Shop subscription). And the version of VCarve that will import SketchUp files directly costs $700. (Each offers a 30-day trial.)

The essential chapter "3D Model to 2D Parts" ends with "Export Options - Save as SketchUp 2014" and "Optional: Export a DXF File" -- two dead ends unless you have VCarve Pro and/or SketchUp Shop or Pro.

You can try importing the book projects' SketchUp files into another CAD system. I tried to import the SketchUp model files into Autodesk Fusion 360, but they import as meshes, and due to the AtFAB group's signature "sniglet" joints each part ends up with hundreds of faces. The resulting imported files are very difficult to simplify or modify.

Since one of my curiosities is the application of the book's designs to laser cutting, I was willing to forgo the "sniglet" corners. ("Sniglets" are a technique like dogbones to address the corner cutting constraint inherent to CNC routing.) So I went into SketchUp Make 2017, and I edited the chair model to remove all the "sniglets" on the joints. Then I tried to import the resulting SketchUp file into Fusion 360. But I ended up with meshes of just the edges. Working with meshes in Fusion 360 is no fun. Ugh!

There is hope. The major project files available from the book's website include DXF layout files. An experienced CAD user can start with a DXF layout file, regenerate the project's parts and rebuild a model as needed. A reader without CAD skills or without hundreds of dollars of SketchUp and VCarve software will be stuck. But even with the DXF layout file I ran into significant problems creating easily editable models in Fusion 360.

This sort of mess is not unusual when trying to create a digital fabrication workflow. But it really should have been worked out by the authors of a book with a target audience of inexperienced digital designers. And even for experienced designers the lack of options in the workflow detracts from the otherwise excellent design discussion in "Design for CNC".

Another example of the limitations of the book's scope is the authors' recommended solution to the vexing problem of how to handle variations in thickness that are inherent with sheet materials.

Their solution is quite disappointing: model using an assumed "nominal thickness" (T-nom); measure the actual maximum thickness (T-max) of your material; then scale your model by T-max/T-nom.

They argue that if the scale is less than +/- 5% different no one will even notice for a freestanding model! Ahh! What? That's not going to work with top-down dimensions (i.e. dimension that are driven by external sources).

To be fair, the book's final section introduces parametric design to address design issues like variations in material thickness and top-down dimensions. They provide apps written in Processing to adjust the parameters for two designs and they work through their use. Thus the book gives the reader exposure to parametric design and its complexity, but the topic exceeds the scope of the book. And the reader is left without the skills necessary to tackle parametric design in their own projects. 

In summary, Design for CNC attempts to present some complicated topics, and it succeeds only about half the time. I feel it could have succeeded to a greater degree if they had chosen a more tool-agnostic way of approaching CAD.

Additional notes:
  • SketchUp is quite limited compared to Fusion 360. (I know them's fightin' words.)
  • I used a desktop CNC for 15 years. But I've been working primarily with laser for the last few years. This book serves to remind me just how complicated CNC is compared to laser.