Recently in CNC Machine Category

Vacuum table
(I love how smooth this table ended up - that shows me that my bit is square to the machine. Had the bit not been square, it would have created "steps" or grooves from the lower part of the scribed circle.)

Over this past weekend I set out to learn how mill out pockets. Up to now I have only cut out pieces - essentially 2D milling. Conceptually shapes are not hard to produce as the mill just needs to trace the edge over and over again at increasing depths until the shape is cut out. If you want to get fancy you can incorporate tabs into the cut to keep the pieces from jumping out while the mill is running. (Tabs are just places where you intentionally not cut the last few layers leaving the piece still attached to the original material).

I have also generated code to manually mill square surfaces - mainly to level the table. The g-code is a loop that, using relative not absolute x/y values, cuts concentric squares until the surface is fully covered.

The next step in the challenge is to mill a pocket. A pocket is like milling out a flat surface and tracing a shape all in one operation. And in theory, if I wanted to just mill out a square pocket, I could probably hand code the operation. But what about more complex pockets, with curves or other complex features? That's where software becomes necessary (unless you are a sucker for punishment - cause doin' it manually is not going to be trivial).

There are 2 major classes of software in the process from conception to construction. CAD & CAM. CAD stands for Computer-aided Design and CAM stands for Computer-aided Manufacturing. To get good results both are required.

A CAD program is used to draw the shape in a human appreciable way (a wire frame / 3D picture). For this I have been using Google's Tremble's Sketchup.

A CAM program is used to convert the picture into g-code that the milling software runs. To cut 2D shapes designed in Sketchup there are direct plugins that will produce the g-code - I have used Phlatscript with a lot of success. For pocket milling, the options get harder to determine. This is not an easy problem to solve, and there are a lot of (possibly very good) solutions that will cost a lot of money. I am looking for something to fit my budget (ie: free).

Two major options kept coming up in my searches - Freemill and PyCAM. Freemill is a crippleware version of a professional CAM package. If you are milling soft material, this package may work well for you. However, what it does not do is roughing passes or multiple passes in general (hence my assessment that it's crippleware).

PyCAM is an opensource tool that is not perfect. I am struggling to make it work properly. It is possible my 'test' project was a bit too complex for a first try.

My test project is a vacuum hold down table for milling PCB boards. The plan was to take a 3/4" board, mill a square pocket on the bottom with support structures and a circle on one end to insert the vacuum hose. I also put the air holes from the pocket through to the working surface in my drawing - and I think this confused PyCAM.

What I learned was that I need to make the pocket in 2 steps. The first a roughing pass and then the final pass.

PyCAM's roughing pass algorithm is a raster scan of the area to be hollowed out. Choose X/Y carefully - the first time I picked wrong, and the mill was going to be going up and down a lot! (Which would waste a ton of time.) The second mistake I made was have the roughing pass get to close to the finished edge - the result was that the finishing pass was too far from the edge and did not really clean anything up.

The finishing pass does not hollow out the pocket! All it does is trace the edge to clean up from the roughing pass. I was not understanding this. In part this was due to it taking hours to render - I found out that my 1/8" air holes were to complex to finish with a 1/8" bit. Once I gave up finishing that deep, the finishing step finished in a much shorter time frame.

In the end, I managed to generate some g-code files that I thought would work. I only had a 5/8" board, so the mill spent a bunch of time milling out the air! I also found out that I had set the feed rate way to fast, and had to slow down the maximum speed of the mill - this meant that the rapids between cut were not so rapid.

I also continued to struggle with the cheap rotary tool letting the bit slip. Turns out the collet / chuck design is garbage. The collet could pivot in the chuck with enough force (which when a 1.5" bit is ripping along there is enough force). Once it pivots, the 1/8" bit is now carving out a 1/4" circle - DOUBLE the planned amount. The additional load bogs the machine down and drags the bit out of the spindle and into the material. (At great risk of damage to bit, machine, operator and final product). I changed back to the older, better quality, but sadly wearing out, rotary tool and finished the job without any further issues

Roughing pass took 2-3 hours to mill, the finishing pass took 1/2 hour. Then I milled off the top in a few minutes, and manually drilled the holes in about 10-15 minutes.

Vacuum table

In the picture you can see the edges from the rastor scanned roughing pass. Unfortunately the finishing pass cannot be appreciated from this job. The nasty crack across the bottom right corner was from undoing my first attempt at gluing a hose attachment - had nothing to do with the milling process.

For completeness, this is what the table looks like when in place. The top square was milled using my table leveling program. The air holes were manually drilled (using the CNC machine, but driving the bit manually using the keyboard).

Vacuum table


Moving faster!

| | Comments (0)
Alright - now we're cooking! This video is my little machine leveling the table at 75IPM. It is a bit bouncy when starting/stopping along the X axis, but otherwise, doing very well!
This weekend I cleaned up a bunch of the wiring. I started by putting the driver circuits into a box. Namely, a pencil case box from Staples.
CNC wiring upgrade & table leveling
There is a small fan on top to keep the drivers cool. Connectors for power, signals, and lines for the steppers. The lines to the steppers were also cleaned up with connectors (labeled) and nice cable looms from old printers.
CNC wiring upgrade & table leveling
Once complete, I leveled the table (had some issues with the bit slipping in the collet, I hope to post a write-up on how I solved that soon). Looks good, eh?
CNC wiring upgrade & table leveling
The table is not perfectly square. It is out 1/16" on 10", and there is some bounce in the X-Axis when travelling too fast.
CNC wiring upgrade & table leveling
But all in all, I'm happy with the progress so far!
The new axis is complete, installed and tested - yeah!

Where did I leave off, oh yeah, the spindle mount and linear bearings where built. Next step was to add the actuator to the assembly.

CNC z-axis installation
Using some lighter weight angle aluminum (3/4"x3/4"x1/16"), I constructed risers. A plate across the top holds the bearing through which a threaded rod with a locking nut rests. The stepper is reused from the big CNC in the man-cave (currently awaiting a much needed upgrade). It is a 5V 1A 35oz stepper - adequate, but barely. A spider coupler joins the threaded rod to the stepper, which is held above the bearing plate by 4 threaded rods and a collection of nuts (one more if you include me).

Barely visible near the middle of the bottom cross brace is a screw that extends into the assembly. One of (many) holes nearby complements that screw - together they will push and pull the bottom of the assembly out to provide an adjustment to help square the bit to the table.

CNC z-axis installation

Attaching the threaded rod to the spindle holder was a matter of crimping some of the light gauge aluminum around a 1/4" union and fastening the aluminum to the top of the holder. The better aligned this is with the stepper the faster things can move without binding. I left a fair bit of play in the spider coupler / weight bearing at the top that I am getting a respectable travel rate.

CNC z-axis installation

The whole thing weighs more than the previous design. 2.3 kgs is without the spindle. With the spindle it weighs 2.8kgs, which is about a full kg more than the current assembly.

CNC z-axis installation

And here it is installed! Some tweaking and adjusting, but so far it is very square to the table. Total travel is almost 4". Feedrate is 9-10ipm (which is slow, but compared to the 3-4.5 that I was getting on the previous model, much better!). I have gained a couple inches on the X axis due to the back of the assembly NOT interfering with the gantry, so that's good. However, I have lost a couple inches on the Y axis because the Z-axis assembly sticks out further - that is not so good.

Whipping around at 100ipm there is a lot of bouncing / shaking. The whole machine needs a lot of stiffening - so for now, I'll run a lot slower.

I did run into an interesting problem - I put a brand new, long cutting tool and did a small test run. The collet slipped and let go of the tool, causing some deep gauging in the table. I have since read up on why it is important to clean the oil off the cutters before using them....