Friday, December 25, 2015

First Projects on New CNC Router

After building my CNC router and getting things tuned up I've had some time to finish a few projects.

Engraved Signs

For holiday gifts I made a few name plates for friends and family. Two of the signs are for some of my fellow sculptors at West Huron SculptorsRobert Ongaro and Yuni Aaron. I put some Golden Oak stain into the carved areas to heighten the contrast.

The latest updated of Autodesk 360 Fusion included an Engrave toolpath. It's quite simple to use - select the text and the tool and Fusion does the rest - moving the tool up and down so the sides of the cutter align with the edges of the text.

In the image below the lower blue line is the path of the tool tip. You can see it moves deeper in the wider areas and retracts at the ends of strokes.

The fonts I choose to test out were these:
I had no trouble cutting any of them.

One side effect of being a woodworker for many years is you have LOTS of wood scraps. Off cuts and small pieces accumulate over time so it's great to have little projects like this to make use of the wood. I used some left over tiger maple, quartersawn white oak, and walnut to make these.

The tool for this work is a 60 degree sign making bit. It uses a single solid carbide inset knife. I got this one from Tools Today. This insert knife actually came loose during my first test cuts. I didn't notice until it was done with one piece. The wild chattering which was taking place chipped the tip and the edge. I'm glad it didn't come fully loose - yikes. Anyway, it still works well enough to produce all the signs above. It does need to be replaced though.

The spindle speed used was 12000 RPM. The feed and plunge rates were 100 IPM.

Acrylic Guitar Templates

In cutting guitars it's important to get the router origin perfectly aligned with the wood blank. In order to help with this I routed some clear templates out of 1/4" acrylic. The origin is at the bottom center of the guitar body. Align the template, mark the bottom with a pencil, zero the tool point in X and Y to that origin and things are ready to cut.

Here's the template for the Jazzmaster:

And the Telecaster template:

These are cut with this tool, one flute, sharp point, scalloped back edge - specially made for acrylic and other hard plastics: Spiral O Flute from Tools Today.

More Guitars

I cut fifteen more guitars for Wallace Detroit Guitars. These were he first ones I did on my machine.
The flats and a few finished guitars:

The flats are screwed to the spoilboard. A few tabs hold them in place. These are easily removed via a bearing guided straight cutter bit at the router table. 

Ready for pickup, further custom routing, and finish. More details on the cutting, with the University of Michigan routers, is available here

Newer Work

Here's a post about some newer work done on a rotary axis I added to the machine.

Here's a project cutting acrylic and assembling into a figure

Tuesday, December 15, 2015

3D Printed Cytoskeleton Figure Sculpt

I've been searching for an interesting geometric variation to the figure forms I've been sculpting. I wanted to do quick sculpts from live models but use computational geometry to convert them into spatially interesting, geometric forms.

The last sculpt I did I kept very simple. I wanted the proportions correct, but only the basic form. For example barely an indication of fingers or toes. Same for the ears and face. My original ZBrush sculpt is shown below:

(The ZBrush sculpting process is described in this post).

Using ZBrush's Decimation Master and Rhino's Grasshopper I was able to get the geometric form variation I was after and 3D print the result. Below are details of the process.

The first step was to use Decimation Master to greatly reduce the face count. The original sculpt had 1.5 million faces.

Here's the sculpt after reducing it down to only 1,100 triangular faces.

The next step was to use a Grasshopper plug-in called Cytoskeleton. This is a wireframe thickening tool written by Daniel Piker. It will take a triangle mesh and turn every edge of the mesh into a solid suitable for 3D printing. If you want to try this all the Gha and Dlls you need are zipped here. Put them in your Grasshopper Components Folder (in Grasshopper do File > Special Folders > Components Folder). Note that you may need to Unblock the files.

The Grasshopper definition is super simple:

You specify a mesh, a radius for the thickening, and a Boolean to indicate if you want to use the original mesh or its dual.

The dual of a triangle is constructed by taking its center point (shown in green) and running a line through the midpoint of each edge (shown in black). Connect the ends of these lines with the corners of the triangle. This results in a hexagon (shown in blue). This hexagon is the dual of the triangle.

This is done for every triangle in the mesh. This technique was used for this form.

Cytoskeleton generates a water-tight 3D mesh, ready to print. Here you can see the dual cytoskeleton compared to a mirrored version of the original, decimated mesh. 

I used the online 3D printing service Shapeways to print this file. To keep the cost down I made it 10" long. I used their "Strong & Flexible" plastic material. It came out really well.

Here's another variation using a different technique: Tesselated Voronoi Figure Sculpt.

Thursday, October 15, 2015

CNC Router Build

I built a 3-Axis CNC router in the Fall of 2015. This post documents the build process.

I got the kit from CNCRouterParts. You can order entire machine kits, or sub-systems separately (machine hardware, electronics, base, etc.). I choose to get their steel base kit, the 4'x4'x8" machine, and the plug-and-play electronics. I also bought a spindle package from them.

The Packages

It took 2 weeks from order to delivery. They shipped across the US from Washington state to Michigan. The kit arrived in 13 packages. The heaviest was the rails (tube shown below) which weighed 72 pounds. The packaging was excellent - very organized and easy to figure out what was what. One part - a rail - was damaged during shipping by UPS Ground. That was fixed quickly by CNCRouterParts by shipping me a new one.

Here's a look inside a typical box:

Part are wrapped, bagged, or protected by cardboard. Parts are group logically into assemblies. For the entire machine I was missing two bolts and two nuts, both easy to pick up at the hardware store. I had one bad T-nut.


I needed to clear space in my shop to accommodate the machine. This took some doing, but I got it done - whew! That saw till is going to have to move out of the way but for now it's okay.

I also needed to construct a temporary work table to let me build the various components. I used two saw horses and some laminate coated tempered hardboard for a work surface.

The instructions are provided online via web pages and PDF files. I used an iPad to view these and it worked great because it is definitely necessary to zoom in to see the details.

There are a few extra tools / materials I found I needed before I began:

  • A magnetizer / demagnetizer. This is handy for making the allen wrenches hang on to the screws. I used the Wiha® Tools Magnetizer/Demagnetizer Tool. This cheap little thing ($8) works really well!
  • Taps and tap wrench. These are used to clean up the screw threads on the gantry risers which have been powder coated. Some of the powder coating gets into the threads and must be cleared out. 
  • Some Locktite Threadlocker. This is used to secure the motor pulley set screws on the motor shafts. I'd recommend the breakable stuff - you may need to move them during the adjustment phase. 

The Base

Time to get building! Hmmm... I think I'll start with the base! This was very easy, with a helper, to put together and get everything squared up.

The leveler feet have a ball and socket joint to flex to accommodate a non-level floor. They extend about 3" max as well on pretty solid 1/2" diameter screws. My floor was significantly sloped so I wound up using some extra wood blocks beneath the front legs so the screws didn't have to extend as far.

The rails are connected using a tapered bracket which triangulates the corner:

The base is pretty solid as is. I'll get a shelf in place and store my displaced machines (spindle sander, table top belt sander, hollow chisel mortiser, etc) to make it even more steady.

The Machine Table

With the base leveled up I started on the machine table. This is made from 80/20 aluminum extrusions, angle brackets, and T nuts.

You can see the T-nuts in the rail to the left of the bracket. These work nicely. Good thing - there are hundreds of them in this entire project! They are usually pre-assembled onto a component and slid in from the end of the extrusion but they can also be slipped into the gap and rotated into place quite easily. 

Some clamps level up the cross members to the side members. These were checked with a machinist square to make sure they were accurately set. Measuring from corner to corner it is dead square - onward...

The Pro kit has steel rails, mounted at 45 degrees to vertical, which carry the gantry. Here's a close-up of the brackets which hold the rails:

The brackets are every 15" or so along the length of the rails. They get aligned flush and seated before being tightened down.

A gear rack is installed along each rail next. The stepper motors turn a gear which engages the rails. This drives the machine along that axis. The gantry has motors on each side, with one slaved to the other so they operate in tandem. The X axis is slaved to the B axis.

The Gantry

Next up is to build the gantry that slides back and forth for the Y axis of the machine. There are two risers on each side and a very heavy duty extrusion between them.

The powder coated steel plates for the risers needed to be tapped in a few spots - the powder coating had made its way into the threaded holes. This was very easy to rectify and only took a few minutes for the few parts where it was required (three total for the whole machine).

The gantry rides on bearings on hardened steel rails. The lower bearings are adjustable in tension. Short, square extrusions get secured to the riser plates. The main gantry extrusion sits on those verticals.

The bearings on the bottom get engaged with the lower rail, then tightened just a bit more. The locking nut is tightened after verify they slide smoothly.

Here are the risers installed, with the horizontal extrusion secured in place:

The Z Axis / Motor Mount

The Z axis is the only part that comes fully assembled out of the box. You simply need to secure it to the gantry.

Here it is bolted on, prior to the spindle being mounted:

The Spindle

There are many, many spindle options. I ordered an air cooled, 2,2kW, 220V, single phase motor. The main advantage is it can be speed controlled via GCode or the pendant.

It has its own variable frequency drive (VFD) and enclosure which I'll mount to the wall.

Rack and Pinion Systems

The Z axis motion is via a ball screw. The X and Y axes are rack and pinion drive. These should have been simple - but were the most problem filled portion of my build. The real issue was the placement of the belt on the pulleys. I had some gears with a bit of wobble but was able to sort that out by taking them apart and rebuilding from scratch. I also had belts which would travel from one side of the gear to the other across the length of the axis. It started with the Y axis. But became a problem in X and slaved X (B). I also had to redo Y again to get things just right. In my opinion, the instructions which state that the pulley should be mounted 1.25" from the face of the motor is incorrect. This should be more like 1.375". This helps to center the belt on the larger gear and better control the creep.

Here are the parts prior to assembly - three identical assemblies:
Here's the Y axis assembly in place. Note the spring/screw which applies tension between the gear and the rack. You can see in this image that the belt is not very well centered on the gear.

Here's one of the X axis drive assemblies:

Cable Management

Cable trays make it easy to manage the cables coming form the spindle, Z axis motor, Y axis motor, X axis motors as well as the proximity sensors used to home the machine. 

Those were pretty easy to install - a bit of testing to get them placed just right.


I purchased the "plug-and-play" electronics package. It is as advertised - very little configuration required. There's one cabinet for all the components. There is a separate cabinet for the spindle electronics. The computer connects to the cabinet with a Ethernet cable.

The four Nema 34 stepper motors. Two for the X axis, one for Y, one for Z.

Here are the motors mounted. The Z axis motor is by far the easiest to set up.

Proximity Sensors

Proximity sensors are used to limit the travel of the machine, and provide a reliable location for "home", . They detect the presence of metal at a distance very repeatably. This allows you to turn off the machine and return to the exact same position after you restart.

To test the setup I set the electronic boxes on some stools/plywood and hooked everything up.

Once I knew things were working I installed the electronics cabinets on the wall and organized the flow of the cables. You control the alignment of the X axis (which is driven by motors on each side) by adjust the relative position of the proximity switches. If the X axis is racked forward a tiny amount move the slaved motor's proximity switch in or out to correct it.

It took a bit of testing to get the tension on the rails right. At times I'd have them a bit too loose and hear some chatter at spots along the racks. I wanted them as loose as possible to minimize wear but tight enough for smooth, vibration free motion. Once set I tightened up the screws against the lock washers.

Dust Collection

With everything running it was time to deal with dust collection. I had a Delta two stage dust collector system already. I just had to reconfigure it for use with the CNC. It draws a lot of air. So much so that the two 55 gallon drums lift off the ground from the suction until they are about 1/8 full! So I'm not anticipating any issue there.

I bought the dust shoe from Kent CNC. This surrounds the bit to ensure all the chips get into the collector. It is removable (held by magnets) to make it easy to change tools.

Here's a close-up of the three magnets which secure it:

The rest of the dust collection hardware was from Lee Valley (blast gates, high quality polyurethane hoses, and nice, properly designed hose clamps).

The hose is attached to the top of the Z Axis with simple plastic cable ties. There is no motion of the hose near the spindle.


I picked up an auxiliary pendant for controlling the machine away from the computer. I went with one from VistaCNC. They have quite a few models and I choose one of the cheaper ones - the P2-S. You can start and stop a running program, as well as control the feed rate and spindle speed. You can also jog the machine smoothly and accurately. Finally you can set the fixture offset position (usually G54) right from the pendant - very handy.


The software which drives the machine is Mach3. There are drivers to allow the Ethernet cable to be used to communicate to the hardware (rather than a parallel port).
There were a few videos which I found particularly useful for getting things going. None more important than this one: Coordinate Systems, Homing and Limits


I'm began using Mastercam to generate the code for the router. I'm using the Generic Router post (MROUTER.PST). There were a few pieces of GCode which I found critical to getting the machine running smoothly. An unintentional toggle between code G61 (Exact Stop) and  G64 (Continuous Velocity) was a problem at first. In Exact Stop mode the machine stops after every move. This results in insanely jerky motion!  A value of G8 was resetting it from the desired G64 back to G61.

I found this post online to help with the problem: Stop/Start, Jerky, Shutter Movement with Mach3.

Once I understood what was happening I had to edit the post file to fix it. With that change the router ran very smooth.

The kit also comes with a one year commercial licence for Autodesk Fusion 360. I've been working with this program for a week now and I'm really impressed. The user interface is fantastic - I found it very easy and intuitive to do the toolpath programming compared to Mastercam (which I've been using for 5 years). I have some previous experience with Autodesk Inventor which made the experience of the modeling in Fusion seem logical and familiar.

When I generated GCode using the CNCRouterParts post for Fusion it ran perfectly without having to do any editing to to the post. The motion was smooth right off the bat.


With the build complete I needed to calibrate it and run some test cuts.

Calibration in Mach3 involves asking the router to move a known distance then measuring the exact amount it moved. After you enter the values it calculates the modified motor stepping value.

I did this using a simple toolpath which used an upshear endmill to bore (4) 0.25" holes into some scrap Baltic birch plywood. The holes were 4" on center.

I then placed 0.25" dowel pins into the holes and used digital calipers to measure the distance. As you can see I did this a few times!

The X axis was good right off the bat.

The Y axis required a few repetitions to get it right. After several tries I got it within a few thousandths.

I'm going to redo this with 12" digital calipers to get some greater spacing to the pins for better accuracy. I'll also drill the holes nearly all the way through the material to eliminate any wobble. Good enough for now...

Surfacing Test

Next up a surfacing test. Using a scrap piece of curly maple I cut in two surfaces - one synclastic and one anticlastic. The modeling was done in Rhino and the toolpath programming was done in Autodesk Fusion 360. I'm really liking Fusion!

Fist a roughing pass. I actually had to do this twice since I was zooming around in Mach3 during the first attempt and that interrupted the cutting. That was surprising! You can see the shift between the two cuts in the roughed areas below.

Then a finish pass with a 1/4" ball end mill stepping over 0.05". This was the "morphed spiral" toolpath which does the entire surface from the inside out without ever lifting the tool. This might have cut better with a simple parallel finish pass.

I used a card scraper to clear off some tool marks where the machine changed direction. I then sanded out the scallops using 180 then 220. I added some Golden Oak stain to make the curl in the maple pop. I haven't applied a finish yet:

It's working well :)


I'm pleased with the machine I built using the CNCRouterParts kit. It was exciting and fun to put together. There were a few challenges but all were overcome without too much stress or frustration. The machine runs pretty smoothly and getting it to work with Mastercam and Fusion wasn't difficult.
I'm excited to have a CNC machine in my shop. I've used the routers at Taubman College for five years and I'm thrilled to be able to experiment much more now that I own the machine.


I updated the rail system of the router. See that post here. I also added a rotary axis to the machine. See that post here.