Tuesday, July 1, 2014

Pixelated Vessel

When working with CNC cut Baltic birch plywood it is a very common method of construction to use a stack lamination technique. Normally the edges of the layers are cut smooth by the router, and the discontinuities between the stacked layers are sanded smooth. Thus the resulting piece matches the designed smooth form.

I wanted to try something different:

I wanted to accentuate the fact the form was made from stacking. And to visually demonstrate that the vertical edged stacking is an approximation of the curved form. To make this more apparent I chose to stair-step or "pixelate" the forms horizontal curves as well. Below is an example:

The original form - a simple twisting pedestal:

The typical method of fabricating this form. Section it into layers, cut them, assemble (left image), and sand the edges from one piece to the next smooth (right image):

The stack lamination, "pixelated" version of it. Here the layers are 3/4" thick (corresponding to the plywood thickness) and the horizontal stepping happens in 3/4" increments as well.

For the vessel I wanted to create here's the source geometry I started with. It's a hollow closed polysurface in Rhino:

I wrote a Rhino Python script to section the form horizontally in layers which correspond to the thickness of the plywood. These intersection curves are then "pixelated" on each edge. That is, instead of using smooth curves like the original form, I have it step across in a user specified amount. This makes it look as if it was constructed out of curved edge Legos. 

The filleting of the curves is done so the CNC can cut into the corners. I actually find this less compelling than the more pure, true to concept, square edge pixels. So that's a compromise. However it is easier to sand, and a lot nice to touch once finished!

It would be possible on a 5-axis router to use an endmill parallel to the face of the plywood to clean out the corners. That's an entirely doable but bigger task for another day... This vessel is made by a 3-axis router.

In plan the curves look like this. You can see the implied grid and how they all align, layer to layer:

Here's a single curve shown in blue. You can see how it twists through the grid but will always align with its adjacent layer above and below:

In terms of the form approximation, here are the two forms overlay-ed on one another:

A property of the script controls how the volume of the original form relates to the pixels. You specify the number of corner points of each pixel (a number from 1 to 4) that are required to be within the form for inclusion in the result. In the example above 4 points were required. In the example below only 1 point was required. Thus, in the example below the pixels sit mostly outside the form rather than within it:

In order to align the parts during assembly some points are generated. These become holes which are drilled in each piece to allow dowels to precisely align them up. The points are generated by intersecting curves with each horizontal section. You can see the curves in the 3D form (in red) and the points on the laid out curves (in white) below:

And of course the layers are numbered in the 3D model to indicate which piece goes where.

Fabrication / Assembly

The parts were cut at Taubman College on one of the Onsrud 3-axis routers.

Shown below is the drilling of the piece to piece alignment holes. In each location there's a hole to align with the piece below and a hole to align with the piece above:

A 3/8" compression bit was used to cut the contours. This bit cuts all the way through the material in one pass. Tabs hold the piece in place so they don't move when fully cut. These were removed with a chisel and mallet. Here you can see two of the tabs at the bottom of the cut (circled):

I'm always trying to find out the smallest size I can get away with and still hold adequately. I'm currently at only 0.5" wide and 0.05" thick, two per piece. So it takes a single chop to get a perfectly clean edge. Much quieter, cleaner, and quicker than a trim router.

Back at my shop the parts were sorted during a dry fit. Then edge sanded to smooth them. If you look carefully you can see a few of the tabs still need to be chiseled off.

Assembly was simple. Quarter inch dowels were sliced up and used to align the forms. An easy glue up which could be done in sections.

Finished Vessel

Here's the fully assembled form prior to applying a finish. 

Here's the finished vessel:

Tuesday, April 8, 2014

Sectioning and Nesting in Grasshopper

I did some experimentation with the sectioning and nesting Grasshopper components available from RhinoNest. The idea was to see if I could interactively modify a 3D form, and have it quickly broken up into layered parts, then have these laid out on sheet stock.

Here's the test form I used - it's about 22" across and 2" thick.

Here's the Grasshopper definition.Inputs are the object(s), sheet thickness and size, and distance between parts. (The link to download is at the bottom of this post).  

The definition takes the 3D form, breaks it up into layers of the specified thickness, and then nests them on the sheet(s). In the image below a 48" x 48" sheet at 0.7" thick was specified.

This example was sectioned and nested in only 3 seconds. I consider that fast enough to be interactive!

You can download the RhinoNest demo and use it for 30 days. The download includes the Grasshopper components.

This link is to the zip file with the Grasshopper definition and a Rhino sample file: Download Here

Friday, March 21, 2014

Rotating Model Stand / Sculpture Pedestals

I just finished a couple of quick CNC projects. One was a rotating stand for a figure model to stand, sit, or lie on. The other was a few sculpture pedestals to donate to my son's school.

Rotating Model Stand

This stand was built for use in our sculpture studio (West Huron Sculptors) to let us rotate the model rather than have the sculptors move around the model. Here's the design which is meant to break down for easy storage when not in use:

The rectangular top is removable and is used for more stretched out poses. 

An exploded view: Eight milk crates, a single 17" lazy susan bearing, six 1" ball bearing rollers, two 4' diameter baltic birch plywood circles, three Poplar 2x4s, and a plywood top. 

This was very simple 3-axis CNC routing.

Installing the Lazy-Susan bearing and the six 1" ball bearing rollers. That'll support about 500 pounds - and so far all our models have weighed less than that...

These were purchased at Lee Valley and Woodcraft: Lazy-Susan Bearing, Ball-Bearing Rollers

Routing the notches for the rails to overlap the rotating base plate. The router was balanced between the rail and two pieces of MDF along side it.

The corners were sawn out and cleaned up with a chisel and chisel plane.

Here's the stand in our studio with a double stack of crates. The bottom circle has guides to prevent the crates from slipping. First without the top (good for a standing pose):

With the top on: 

Sculpture Pedestals

This project was a few simple 10" x 10" x 5" and 10" x 10" x 45" sculpture display pedestals. These were made to be donated to my son's school for use in the art department. These were CNC cut with a 3/8" down-shear and a 3/8" compression bit.

The taller stands had a few small joints at the top and bottom then a long one in between:

The interesting thing about them is the joint design and the resulting corner condition which gives them a bit of detail rather than being completely straight-forward boxes. You can see how the joints go together here and the corner detail at the top left:

These were painted satin black by my son and his friends and donated to Washtenaw International High School.

Monday, February 24, 2014

Surface Rough and Surface Finish Toolpath Setup

This post documents the process of setting up a 3-axis surface roughing and surface finishing of sheet material using Mastercam.

Setting up the machine and stock, as well as backplotting and simulation, is exactly the same as is shown in the Mastercam Toolpath Setup post. This post will cover adding a surface roughing and surface finish toolpoaths.

Surface Roughing Toolpath

Surface roughing toolpaths typically use larger tools, multiple stepovers, and multiple step downs to quickly remove larger volumes of stock and leave an even amount of stock for finishing. The roughing toolpaths you choose for your part depend on the shape of the part, shape of the stock, and machining situation.
Check out the Mastercam help file for details on the various roughing strategies shown below. This post will use the Parallel toolpath.

You'll be asked to select the surfaces to cut to via the selection dialog:

  • Drive: The surfaces, solid faces, solid bodies, or CAD files that will be cut.
  • Check: The surfaces, solid faces, or solid bodies that you want the tool to avoid. 
  • Containment: A closed chain of curves that limit tool motion. 

 Click the arrow under Drive and choose the surfaces to cut. Once selected exit the dialog.

As with other toolpaths you need to choose a tool. For small MDF panel surfacing projects a good choice is a 1/2" downshear rougher.

Once selected change the tab over to the Surface parameters options.

Here you set the Retract and Feed Plane settings. Retract sets the height that the tool moves up to before the next tool pass. Select the check box to activate the retract plane, then click the button and select a point on the geometry or enter a value. This option is off by default. The retract height should be set above the feed plane. If you do not enter a Clearance height (clearance sets the height at which the tool moves to and from the part), the tool will move to the retract height between operations.

Next set the Stock to leave on drive surfaces. This will leave the extra amount that the finishing pass removes. Leaving 1/8" or 1/4" is fine for MDF. This lets the smoother finishing pass clean down to the actual drive surface height.

Next change the tab to set the Rough parallel parameters.

The Maximum stepover controls how far the tool moves over for each cut in XY, and the Maximum stepdown controls how much material is removed in Z for each cut. You can safely use 80% of your too width for the step over provided you are not stepping down to much in each pass. When surfacing MDF I like to step down no more than twice the tool width, and step over about 50% of the tool width on each pass.

Use the Plunge control parameters to control where the tool is allowed to make plunges. Use the buttons to set cut depths, control motion between adjacent surfaces, and motion on surface edges.

Change the Cutting method to Zigzag. Under Plunge control select the Allow multiple plunges along cut. This makes multiple entry moves along the part. This will significantly speed up the cutting time.

Check both the Allow negative Z motion along the surface and Allow positive Z motion along the surface. This will maximize the speed of the roughing as the tools we are using can cut while plunging and while retracting.

Surface Finishing Toolpath

Surface finishing toolpaths typically finish a part down to the drive geometry (or to the stock to leave amount if one is specified). These are usually using a small stepover and don't cut very deep. To surface a 3D form a typical stepover is 0.05". The typical amount of material being removed might be 0.25" or 0.125".

To add this toolpath right-click in the Toolpath group and choose a Surface Finish toolpath. In this example I'm using Parallel.

You'll be asked to select the Drive surfaces as in roughing.

Next you'll be asked to select a tool. For surfacing choose a ball end mill. Choose the largest tool that can still get everywhere into your parts form. Using a larger tool gives a shallower scallop making for a cleaner surface. In this example I'm using a 1/2" ball end mill.

Next move to the Surface parameters tab.

Here you set the Retract and Feed plane values as above. Make sure the Stock to leave on drive is set to 0.0 so it mills all the way to your surface.

Next move to the Finish parameters tab.

Finish parallel toolpaths cut the drive geometry using linear zigzag or one-way motion. In this example we'll set the Cutting method to Zigzag. 

The Maximum stepover controls how far the tool moves over for each cut in XY. Using a smaller value will result in a smoother surface but take more time. For a 1/2" ball bit I like a value of around 0.05" as the stepover. 


Make sure to carefully simulate your roughing and finishing cuts. 
Control of Simulation is the same as was shown in the Mastercam Toolpath Setup post. 

3D Contour Toolpath (Waste Trim)

If you want the router to trim the waste from your panels you can use a 3D Contour toolpath to do so.
Note: Since the toolpath will need to cut entirely through the material, doing this will compromise your form for future vacuum forming of panels. Therefore, make sure you have an extra form for trimming, or have enough panels already cut!

Right-click in the toolpath list and choose Router toolpath > Contour from the menu.

The Chaining dialog will appear and you select the chain to cut. Careful setup in Rhino to create a single closed curve will make this setup process easier in Mastercam.

After you select the Chain the Contour toolpath dialog will appear. First select the tool. I'm using a 1/4" straight downshear.

Next go to the Linking Parameters branch. Set your Retract, Feed plane, and Top of stock values.

Next go to the Cut Parameters branch. Make sure the Contour type is set to 3D. You'll also need to set the Compensation direction to right or left. After you simulate you can easily tell if you need to switch the setting if it is cutting on the wrong side of the line.

You may also want to set a small Break Through amount using that branch. Here you can set a low value to cut through the material to make sure it is fully free from the waste.

You can then backplot or simulate to make sure the Contour is cutting as expected.