In the world of machining two things are key; Accuracy and Efficiency. Although fantastic parts can be produced by manual machining tools it is simple fact computer controlled systems will always be preferable for rapid high tolerance work. Even the cheapest CNC mill can run circles around manual systems in the home machine shop. However, when you mill complex parts CNC systems often require the machinist to manually rotate the part. This often requires the machine to be re-homed and will always introduce a certain amount of error into your finished part. Skilled CNC operators can often minimize this error down to a few thousandths of an inch. However, Automatic Rotation CNC milling removes the need to manually rotate the part at all! Having the machine take care of everything means you maintain absolute machine accuracy with zero human error and no time wasted resetting your part and machine.
Automatic Rotation CNC Milling With DeskProto
Of course to perform Automatic Rotation milling (also called Indexed machining) projects you need a few extra parts on top of your regular 3 axis set up:
- A 4th axis either integral or as a detachable unit
- A Indexed machining compatible CAM software package. DeskProto: Multi Axis Edition is the near undisputed king of low cost multi axis machining
Keep in mind that depending on your machine the 4th axis may limit the size and shape of your raw material. It is especially important to check your clearances on each side of the machines rotation.
Step 1: Prepare Your CAD Model
For this tutorial I decided to create a small wing shaped blade. This part could be used to create a little fan or perhaps even a scale jet engine. There are a few things to keep in mind for automatic rotation milling. It's a good idea to start with a simple shape and as you get better and better at creating the CAM and setting up your machine advance to more and more complex geometries.
Step 2: Prepare Your Stock
I will be using a 1.5 inch diameter piece of wood doweling to create this part. Because the 1.5 inch stock is too wide for my 3 jaw chuck I’ve had to cut my stock quite a bit longer than my finished part and then carve one end down so it will fit nicely into the chuck. Additionally the extra material will let me use a tailstock to hold the part as it's being cut.
Step 3: Create Your CAM With DeskProto Part 1
This process is very much like regular 3D milling with DeskProto, If you’ve read my previous tutorial on getting started with DeskProto there is not much new here. However there are some tricks to getting the part to machine properly with automatic rotation milling. To get started launch the wizard from the DeskProto intro screen.
In this part we will cover the first 3 Sections:
1.Choose your machine and type of milling: First you want to choose your machine from the list. If you don't see your machine, you can add it to the list via the Options menu. We will be using Two or more sides, Automatic rotation as our wizard setting.
2. Open your geometry file and set the scale: Your geometry file needs to be in .STL format. Once you’ve selected the file, it will show up on in the main window. Use the settings on this page to adjust your model until it is the correct size. Additionally, you can use the orientation options to adjust the angle of your piece. Adjusting the angle can be helpful to align your model along a specific axis of your machine.On this page you can specify how many sides you wish to use. For a wing shape 2 sides is ideal.
3. Set your machining area: This step is extremely useful to limit the area the machine will work in. I ended up leaving the milling depth automatic. For this project, we do not need support bridges and the origin is correct. Keep in mind where the origin is (the origin is the blue box displayed in the geometry window) because it will be used when touching off our part. Additionally with Automatic Rotation enabled you will be creating a operation chain that will break down into two or more sides.
Step 4: Create Your CAM With DeskProto Part 2
Now we’ll get into creating the actual tool paths for our mill. With the DeskProto wizard we only have to run through one set of steps to produce both sides of our object. You can however go back after finishing the wizard and adjust the tool paths to be better suited to the geometry on the different sides of your project.
4. Make the roughing pass: To create our roughing pass, we will first select our tool. In this case is a 1/8th inch roughing end mill. Then we will walk through the options one by one. I used a D/5 precision. When choosing your roughing precision it's important to take several aspects into consideration. Because I was using a very soft material and a small end mill I used a coarse precision. This means the tool takes off more material each pass. For harder materials or larger end mills it is a good idea to use a finer precision. I decided to use a feed rate of 20 inches per minute. Use a 0.1 inch pass depth (layer height).
5. Make the Finishing pass: To create our finishing pass we will select our tool, I used the same 1/8th inch roughing end mill. Then we will set our precision to D/5 and feed rate to 20 inches per minute. Again, you will have to set your feed rate depending on your confidence with your own machine and the material you are using. Normally you set your finishing precision finer than your roughing pass precision. As a general rule of thumb finer precision on a finishing pass gives a better finish. However, because I know my machine quite well I was confident a D/5 precision would work quite nicely for this project on my machine.
6. Adjust The Finishing Pass (optional): Because I have decided to use the same flat tip end mill for finishing this project I have to adjust my finishing operations to ensure a good surface. Flat tip end mills will leave a stepped finish on curves if they do not run parallel to the surface's curvature. To avoid this i’ve manually adjusted the finishing tool path to run across the wing rather than down its length. this will produce the best possible surface finish with as little post milling work as possible.
7. Adjust The Free Movement Height: To prevent the stock from hitting the cutter during the rotation moves it's important we specify a safe position that allows the cutter to avoid the rotating stock. After finishing the wizard you can specify this safe position for the cutter during rotations. To do this right click on each operation and navigate through the context menu to Operation Parameters>Advanced>Start/End Settings. Here you can specify additional movements to move the cutter out of the way of your stock material. Be careful not to crash the mill into the part or the fourth axis with these commands. It's always a good idea to check the limits of your G-code inside your machine software prior to running the project.
8. Calculate the toolpaths and Export the NC file: The hard part is over! We’ve created the tool path and all that's left to do is to export everything. Click “calculate” and then “Write NC-program file” Once you’ve done that, you’ll have to transport the file from your CAM computer to your machine controller. If you finished the wizard to adjust you tool paths manually you will have to use the Create menu to generate your files. In the Create menu you can also simulate what your part will look like after it has been machined!
Step 5: Adjusting 4th Axis Feed Rates for Your Mill
This step is not always needed, However if you use mach3 or LinuxCNC you will need to do this step. Because mach3 and LinuxCNC are based on NIST standards and DeskProto is not, this means there is a miss match between the A axis feed rate units. LinuxCNC and Mach3 expect a degree per minute feed rate on rotational axes, however DeskProto produces a Gcode file that uses a linear inch per minute feed rate on rotational axes. To make the Gcode file DeskProto produces compatible with mach3 and LinuxCNC we will have to manually replace the A axis feed rates. Because we are using an automatic rotation milling strategy this manual replacement works just fine. Simply change the F value after the A axis command to something that makes sense for a degree per minute feed rate.
G01 A180.000 F7.5 G00 X0.000 Y-11.430
G01 A180.000 F2000 G00 X0.000 Y-11.430 F7.5
Notice that we’ve had to add a second feed rate (F7.5) to the edited G-code after the A axis command. This is key or we could damage the machine by throwing one of the linear axes at some crazy feed rate. This is where a G Code validator tool would come in handy. Additionally in some machine software solutions you can set the maximum linear feed rate which is a good safeguard against any accidents.
Step 6: Set Up Your Mill
Setting up your mill for Automatic Rotation Milling is not hard, however because the part will rotate during the milling process it must run true otherwise there will be a noticeable error in the finished model. Running true implies that, relative to the X (or Y) axis of your machine, the part does not wobble. This can be caused by two things. First you must make sure your 4th axis is mounted exactly parallel to the axis it runs along. Even a degree out along a long workpiece can result in a full millimeter or more of wobble at the end of the workpiece. Secondly if the part is not aligned in the chuck properly the part will wobble as well. This second scenario is less likely to cause errors in the part, however the stock must have enough space to accommodate the part once wobble is factored in.
To minimise the wobble of a round part use a dial test indicator mounted to the spindle of your machine. Zero the dial test indicator on the part and slowly rotate the part to find the side that has the greatest offset from zero. Then gently tap the part to remove as close to half the offset as possible. continue this until your part runs with a wobble inside your acceptable tolerances.
To minimise the wobble of a square part is a little more complicated. The best way i've found is to ensure all four sides are equidistant from a fixed point relative to the center of your 4th axis
Additionally, For machines like mine where the 4th axis runs along the Y axis of the machine rather than the X axis you will have to modify the post processor inside DeskProto to accommodate this. You can find instructions to do that here: http://www.deskproto.com/forum/forum.php?forumsubject=1&topic=176
Step 7: Touch Off and Mill
Touching off: This step is often one of the most confusing aspects of CNC machines for newcomers. CNC machines have two sets of internal coordinate systems: the machine coordinates and the workpiece coordinates. This is important because before we start our mill we will have to aline the workpiece coordinates with our real world workpiece. To do this we use a process called Touching off. To touch off in linuxCNC simply position the tip of the tool at the XYZ coordinates we want to align the workpiece origin with and touch off each axis with the onscreen button. This will align the tool paths we created in DeskProto with our work piece. Use the origin created in DeskProto as your touch off reference.
Indexed milling is especially sensitive to errors during the touching off process. If the touch off point is not EXACTLY at the (0,0,0) point of your 4th axis the part will have a noticeable error. This does tend to happen a few times when first getting started with 4th axis indexed milling. To touch off at (0,0,0) point of your 4th axis it is easiest to remove the stock and touch off all 3 axises at once, However if you're comfortable with your machine and your control software allows you can touch off each axis separately around the stock. Both strategies work.
Additionally it is a good idea to set your feed rate limits in your machine control software. This is useful to prevent any accidents from damaging your mill
Step 8: The Finished Part!
The wing turned out great!