Guerrilla guide to CNC machining, mold making, and resin casting
Copyright (C) 2013 by Michal Zalewski (lcamtuf@coredump.cx)
You are viewing chapter 3 of 8. Click this box for table of contents.

3. Mastering CAD and CAM

By now, you should have a good idea of which mill to choose, where to find the cutters, and how it all fits together... or perhaps you own a 3D printer, and didn't read the previous chapter at all. Either way, the next step is getting comfortable with the software needed to bring your ideas to life. In this section, we'll go over some of the basics, and then proceed with a simple starter project of our own.

3.1. Computer-aided design (CAD)

The primary function of CAD software is, quite simply, to let you design 3D parts. Your CAD application may be just about any general-purpose modeling program, such as Blender - but in the long haul, it makes sense to settle for a purpose-built tool. "Real" mechanical design software offers better control over part accuracy, and comes with powerful data input and analysis tools that streamline engineering work. On the flip side, they usually have less impressive rendering capabilities - and may come with no support for animation, physics, and other perks taken for granted in general-purpose 3D apps.

For now, though, the distinction between general-purpose modeling tools and CAD isn't that important. You simply need to get comfortable with any 3D design software of your choice - and that takes a bit of work.

3.1.1. Wait, but which application to choose?

A-ha, that's a good question indeed! In the previous edition of this guide, I tried to give an impartial overview of the market - but in the end, there is plenty of choice, and very few genuinely bad CAD tools. You can just look around, find the one you like and can afford.

If you just want a simple recommendation - and are willing to spend some money on software to begin with - Rhino 3D is probably the best CAD package that you can get on a hobbyist budget. Students can purchase a fully-featured edu license for under $140, so if you are still in the academia, it would be foolish not to go for it. For mere mortals, there is a heftier price tag attached - $750 - so it's a more difficult call. Still, it's a mature and user-friendly tool that runs well even on low-end systems, and it's just done well - so you probably won't regret it.

Now, if Rhino is priced outside your league, many people in the community are also fond of Alibre Design PE, which sells for about $100. Or, if you prefer not to spend any money at all, and can live with a somewhat clunky app, then FreeCAD looks fairly OK for simpler work.

What else? Several accomplished DIYers use general-purpose 3D modeling tools such as Sketchup or Blender. The free-of-charge general-purpose tools are pretty diverse and mature; the only problem is that they may be less suited for complex work later on. If you are willing to cross that bridge when you come to it, they are definitely worth a try as a starter option.

Last but not least, cash-strapped DIYers may also want to check out one of the "demo" editions of commercial CAD tools. For example, Creo Elements has a modest limit of 60 parts per document, but otherwise, should do the trick.

3.1.2. Some existential CAD advice

We should probably start the lesson with a gentle warning: CAD programs tend to have a fairly steep learning curve. This is in part because you are forced to manipulate 3D objects using a 2D input device and a 2D display - and it takes a while to master that skill. The other problem is that these applications tend to use unfamiliar UI paradigms and obscure terminology - and even something as simple as right-clicking an object may have an unexpected result. It takes some effort to start using the software in a competent way - and if you're just banking on your innate abilities, you will probably learn to do things exactly the wrong way.

If you want to make real progress, here are some rules to live by:

Before you start, there's just one more thing to do - you need to customize the program for precision work. Needless to say, the tolerances needed to design a building aren't the same as when designing a gearwheel - and CAD applications are used for both. For now, simply go through the configuration pages, and try to do the following:

Done? Then let's roll...

3.1.3. Drawing and manipulating simple planar shapes

Your first job is to figure out how to draw several simple, two-dimensional shapes on the X-Y construction plane (i.e., using the "top" viewport of your CAD app). Try do to sketch all of the following:

Practice a bit; perhaps sketch a simplified, boxy outline of a car, complete with wheels.

When you are comfortable with these 2D primitives, it's time for your next exercise: try to draw a smiley face without using your mouse at all. Type in the required commands and specify coordinates by hand; the display grid should be of great help. Oh - for some extra credit, add a hat!

With your drawing in place, it's time to get familiar with several important operators. Figure out how to select one or more objects with your mouse, and then find the commands that perform the following tasks:

Play around with these operators until you are comfortable with the way they work; pay special attention to scaling and rotation operators, and the way they are affected by the choice of the origin, reference point, and the viewport.

As soon as you are done moving, flipping, and cloning stuff, locate and play with the analytic tools that let you do the following:

This is a good opportunity to experiment with object snaps, too: enable them temporarily, and check the various options they offer. In particular, be sure to give tangent snaps a try: draw three random circles, and then try to connect them with tangent lines, like this:

Piece of cake? Thought so! You should be now ready to master several more complicated modeling skills.

Note: Somewhat surprisingly, 2D drawing techniques are more important than any 3D sketching tools; in fact, you should resist the temptation to play with 3D primitives at this point. The bulk of mechanical modeling work is almost always done with spline curves, which are later converted into 3D objects with the help of operations such as extrusion, revolution, or lofting. We'll get to these operators soon.

3.1.4. The inner workings of splines

Your CAD application probably stores every curve as a non-uniform rational B-spline. The visual representation of this mathematical model is not very easy to grasp, but getting a hang of it is essential to any sort of serious modeling work.

In essence, every NURBS curve is defined by three parameters:

An example of a degree 2 spline with no kinks is shown below; control points are marked in yellow, and knots are red:

To practice a bit, try to locate the command that lets you draw a curve of a given degree by specifying subsequent control points. Get a hang of its behavior particularly for curve degrees 2 and 3. There should be also a separate command for creating interpolated curves that go through any number of specified "via" points that you click on, which may be useful for tracing around bitmaps and so forth. Oh, one more thing: using both of these tools, try to create a proper kink!

When you are comfortable with drawing, experiment with the following curve-editing tools:

Last but not least, be sure to familiarize yourself with the "explode" operator that splits curves at existing kinks (see what it does to a rectangle, circle, etc); and the "join" tool that merges adjacent curve endpoints to form a curve with kinks.

3.1.5. Curve trimming

As should be apparent by now, NURBS curves can be separated and joined at kinks in a completely lossless manner: the underlying coefficients do not have to change, and there is no gradual reduction of accuracy if you repeat these operations 100 or 1,000 times.

Unfortunately, in many cases, you will need to truncate curves at locations that do not correspond to any existing kink. In these situations, the CAD application will be usually forced to create a new curve with a different set of control points in the vicinity of the cut. This fitting process usually works very well, and the resulting deviation should be much smaller than your configured tolerance, but you should be aware that the operation does not come completely free.

With that warning in mind, find the command that let you split a curve at a point where it intersects with another one, and experiment with it. For degrees higher than 1, you should be able to see the effect it has on the set of control points for the curve - and if you ask the program to calculate the deviation between the input and the output curve, it will probably give you a tiny but non-zero result. Examine the deviations for a couple of input curves to see what to expect in normal work.

In addition to the curve splitting tool, there may be also a second operator that works roughly the same way, but lets you immediately delete (trim) the unwanted parts. It may sometimes save you a click, so if possible, get familiar with it.

In any case, it's time for a brief exercise. Remember the command for drawing radial arrays? Try to combine that with splitting and trimming to arrive at a result such as this:

Nice, eh? It's not quite a proper gearwheel, but we're pretty close.

Note: as mentioned earlier, it is always preferable to use the simplest editing tools that still do the job. In particular, you should always favor the join, explode, refit, split, and trim operators over any features that, for example, automatically compute unions, differences, or intersections of 3D objects.

Why? Well, these advanced tools quickly go bonkers if you have something as simple as two closely touching, parallel walls - not to mention accidental self-intersections, non-watertight curves or solids, etc. It's one thing if they just fail in an obvious way... but if the resulting error is subtle and goes unnoticed, you may end up having to redo a good chunk of your work later on.

3.1.6. Other curve tools

We're almost done with curves - hooray! But before we go, there are three other, immensely useful editing tools that you should probably learn about:

The fillet operator is applied to any angle (kink) on a curve, and replaces it with a specified radius. The trick is often used for engineering purposes: fillets serve as a stress relief in sharp corners and drastically improve their strength. But even more interestingly, filleting lets you capture the real-world result of machining a corner with an end mill of a given size - which is important for certain types of snap fits.

This illustation shows the use of filleting to determine the actual shape of a machined part:

Note: Of course, it's not that you can't make a competent acute angle with a CNC mill. For example, refinishing the one on the left with a 0.4 mm cutter would result in a deviation of barely 0.3 mm. Still, in many cases, it's more convenient to account for such intrinsic fillets in your designs, than it is to refinish the workpiece with a separate tool.

Oh, one more thing: in situations where you don't control the shape of the mating part (lighter blue in the picture below), you can always resort to bone fillets, too:

Chamfering is a similar operation, but it replaces the selected kink with a straight segment that starts at a specified distance from the vertex. Compared to fillets, chamfering may have a more desirable appearance, depending on the effect you are aiming for - and produces a much simpler 3D mesh.

The last operator, offsetting, offers an interesting way to resize any shape: it creates a derived curve that consists of points at a particular, constant distance from the original geometry. It is quite different from traditional scaling, in the same way that gaining weight is different from growing bigger - and it comes quite handy for generating walls, undersizing or oversizing parts, and so forth.

Well, that's really it! You may also want to explore tools that let you extend or close curves, or blend them with more fine-grained controls - but for most intents and purposes, we are ready to talk about something a bit cooler than that.

3.1.7. Creating simple surfaces

Let's start building three-dimensional solids. It's simple: draw a closed curve, and then find the command that creates a planar surface from it. Examine the result, then check out what happens if you select two curves, one within another. What about separate or intersecting input curves? Examine failure modes of this operator, too: what if one of the input curves is at a slightly different Z level? What if the curve is open or self-intersects?

Of course, the planar surface that you have just created is still, well, pretty flat. The next important operator to play with is extrusion: select your curve, and using the side view, select the extrusion height. Disable the creation of top and bottom "caps": we just need the side walls. Try to use the join operator to merge the flat base surface with the extruded wall. If it worked, you have pretty much mastered 3D work. Lets try a slightly more complicated exercise:

That's pretty easy, eh? In fact, it's a lot simpler to construct shapes this way than it is to start with 3D primitives, and clumsily piece them together. But don't let it go to your head. Spend few more minutes playing with extrusion: see what it does to open or self-intersecting curves, to multiple curves that overlap or aren't at the same Z level, and so on.

You should also take this opportunity to experiment with the explode, split, and trim operators that you remember from your curve editing days. Draw two solids and make them overlap, then see if you can use the trim operator to remove all the overlapping internal sections, and join the resulting outer shells into a new, closed shape. Can you do the same to "subtract" one solid from another, or only keep the intersection? Find the analytic tool that lets you calculate the volume of each of the solids, and use it to double-check that your results check out. Oh, one more thing: can you trim surfaces with curves? Why not give it a try!

These tools aside, there are several other advanced surface editing operators that you should be aware of; they are particularly important if you want to create organic shapes without having to think too much:

The list of useful operators goes on - for example, it's sometimes useful to extract edges from surfaces or solids, to place or remove holes, or to orient something on an oddly-shaped surface - but you can discover these on your own. For now, let's just have a quick look at how to manage your work.

3.1.8. Working with multiple objects

It's one thing to sketch a nice 3D box - but any medium-scale project may easily consist of several hundred of such solids, often meshing closely and stacked in creative ways. If you don't manage your virtual workspace well, you will get overwhelmed, make mistakes, or both.

The document management tools at your disposal will vary from one program to another, but you should familiarize yourself with at least the following:

As soon as you are reasonably comfortable with object management, we can actually make a simple mold!

3.1.9. Practice time: let's show some love!

Okay, it's time for some fun. Let's start by trying to draw a heart:

Here's what's going on in that illustration:

Voila! Easy, right? Now, let's join all the curve segments, and turn the whole thing into a mold:

See if you can figure out all the steps on your own. The final result should be a watertight box with dimensions around 33 x 30 x 8 cm. Its bottom left corner should be at coordinates (0, 0), and the top surface should be at 0 mm, likewise. The mold cavity should have a 4 mm clearance around the heart, and should be 7 mm deep. The heart itself should be resting at the bottom of the cavity, and should be 4 mm high (its top surface should be at -3 mm).

If everything checks out - well, the good news is that you have yourself a master mold (aka a pattern). Now, we cut some corners with the moldmaking process, given the simplicity of this project, but this is how the entire thing usually plays out:

Be sure to save that project - we'll need this file soon.

3.2. Computer-aided manufacturing (CAM)

CAM software reads the geometry created with your favorite modeling application, and turns it into toolpaths that can be sent to a milling machine, a 3D printer, or some other automated tool. All the computer-controlled manufacturing technologies use a common set of underlying concepts and have a comparable degree of complexity, but there are many details that remain specific to a particular tool. Since we have to choose one way or the other, the rest of this chapter will focus on the software designed for CNC mills.

3.2.1. Shopping for the right application

When I first published the original version of this guide, the makers of CAM applications catered almost exclusively to commercial users. The software was ridiculously overpriced, shipped with archaic UIs, and always included a collection of mind-boggling bugs. Thankfully, the emergence of low-cost mills and serious hobbyists is slowly changing that. Still, there is no single package that would be a sure bet for all users, and you need to understand what sets them apart. Here's a quick list of the things that matter the most for everyday CNC work.

3.2.1.1. Support for fourth axis

If you own a computer-controlled rotary axis, or plan on getting one, you should figure out which 4-axis machining modes are supported by the program - and decide if they are worth the extra price. The three fundamental choices are:

What to buy: your call. If indexed cutting is all you need, you may be able to live with lower-cost three-axis CAM.

3.2.1.2. 3D milling strategies

Vendors of CAM software tend to be pretty creative about the range of specialized and obscure machining modes that they offer, but there are only three options that really matter; the rest is either redundant, or doesn't work well in complex molds.

Here are the three methods in question; the first two really must be supported by the application you want to go with:

What to buy: the two first strategies must be supported unconditionally, and should come with no strings attached: you should have full control over how they are used and when. The third one s a plus. Advanced features of these modes, and other toolpath generation methods, matter a lot less.

3.2.1.3. Region selection capabilities

Efficient machining of complex models requires the ability to decide which tool and which strategy will be applied to various regions of the model - and in what order. To facilitate this process, your CAM application should let you define a freeform region for every machining operation, either by selecting an existing boundary curve imported alongside with the 3D model - or by drawing something by hand. It should let you exclude regions within an existing selection by picking a second curve inside the first one, too.

These capabilities are pretty much all that matters. You may notice that certain programs have the ability to automatically generate selections based on some property of the model - for example, to only machine flat surfaces, vertical walls, or something in between. These features are sometimes nice, but are usually more limited or less reliable than what you can do in CAD - so don't pay any special attention to this.

What else? Oh - several programs offer "residual machining" of regions left over after the previous operation with a larger tool. This sounds great in theory, but is typically both fairly coarse and extremely slow; I tried two applications that supported this feature, and it misbehaved or ran out of memory more often than it proved to be useful.

What to buy: curve-based selection is a must. Pay little or no attention to the rest.

3.2.1.4. Cut optimization

Some CAM applications do not put any special thought into organizing the toolpath segments that are spewed out by the underlying geometry-analyzing algorithm. Depending on your model, the result of that can be pretty inefficient; for example, a waterline cut that sequentially machines every outline on every layer before moving further down will produce a total of 15 operations when machining these two separate holes (left):

The image on the right shows a more sensible ordering: instead of going back and forth between the machined regions, finish one first, and then move to the other. The result is 9 operations, consisting mostly of short movements. Quite a few programs are capable of such common-sense optimizations - but not all.

What to buy: it is useful to shop for CAM applications that offer cut optimization, especially for waterline machining. It's not an essential feature, but it's a major time saver. If in doubt, consult the manuals or ask the vendor before buying.

3.2.1.5. Arc interpolation

G-code - the language supported by most of the CNC machines on the market - has several commands that can be used to execute circular, spiral, or helical movements of the tool. While support for these opcodes is not required, quite a few embedded controllers recognize them, and translate them to motion optimized for the hardware they are hooked up to.

CAM programs, however, usually convert input files to polygon meshes, and generate toolpaths where arcs are broken into thousands of small, linear movements. This practice is not just a waste of electrons, but may result in lower machining speeds, because it hinders the ability for the controller to plan ahead and pick the best acceleration and braking strategy. Perhaps more annoying is that if the pitch of the generated 3D mesh doesn't overlap with the hardware resolution of the motors in your CNC mill, needless vibration may be introduced, too.

What to buy: If your machine supports arc interpolation, it is good for the CAM program to know how to generate G-code that leverages that. It's not a deal-breaker, but something really nice to have.

3.2.1.5. Cut direction control

There are some brief moments in the cutting process where the tool may be pluging head-on into uncut material. Most of the time, though, the tool simply works to widen existing pockets, and engages the material one side at a time. There are two principal configurations possible during that task:

In the conventional (aka upcut) mode, contact with the workpiece is made on the left side of the tool, in relation to the direction of movement. Toolpaths generated this way allow the material to be engaged very gradually, starting with a near-zero chip load, and ramping it up. This strategy is less dependent on the rigidity of the tool and the workpiece, and results in superior dimensional accuracy and surface finish with rigid plastics and many other types of easily machinable materials.

In the climb (downcut) mode, the orientation of the tool in relation to the workpiece is reversed, and every flute plunges into the material to start at the maximum chip load, and then have it taper off. This approach puts greater strain on the tool - and if the tool or the workpiece deflects, it reduces the dimensional accuracy of the final part. That said, it may offer better cutting speeds or improved surface finish in certain annoying materials - such as metal alloys prone to work hardening, or soft, malleable thermoplastics.

In waterline cutting, maintaining a specific direction of cuts comes naturally, and at no extra cost; in fact, it takes special effort to alternate the type of cut between each layer. Overhead projection strategies are more problematic: if the projected pattern is just a bunch of parallel lines, the only way to achieve consistent direction is to cut the first line, raise the tool, move back to the starting side, lower the tool, and make the next cut - in short, there's a lot of non-cutting movements. And that's the major advantage of "offset", spiral-like projections that we have mentioned earlier on: they permit the direction to be maintained without having to raise the tool.

What to buy: you should make sure that the software gives you full control over the direction of cut for every machining strategy of note. Not having this ability will make your life miserable, especially when working with miniature, long-reach tools that flex easily.

3.2.1.6. Input and output formats

Last but not least, the application you end up choosing needs to support the file formats that can be written by your CAD package. The most common interchange formats include IGES and STEP (both of which are vendor-agnostic); DXF and DWF (originating with AutoCAD); 3DM (Rhino3D); and STL (3D Systems); support for at least one of these is good news - and the more, the better. NURBS surfaces are supported natively in all of these except for STL and DXF, where approximate tessellation may be required.

Input formats aside, you also need to confirm that the application actually supports your CNC mill, and can generate suitable output files. If your machine speaks G-code, and the application offers the ability to create custom G-code postprocessors, you may be able to find a third-party converter or write your own one with relatively little effort; otherwise, you need to make sure that the mill is supported out of the box.

3.2.1.7. ...and all the things you don't have to worry about

Here's a short and incomplete list of things that tend to appear in product specifications and may seem important, but typically don't matter much:

Of course, feel free to ping me if you stumbled upon any other cool-sounding feature, and need help figuring out what it's worth.

3.2.1.8. All right - so which CAM package is good for me?

Well, it's complicated. For starters, your CNC machine may come with a basic CAM application, and that package may turn out to be good enough for starter jobs. For example, Modela Player 4 - the application that comes with Roland mills - is pretty decent. That said, in the long haul, you will probably want to upgrade to something more featured and flexible.

Somewhat lamentably, there aren't that many free-of-charge applications that would be easy to use yet powerful enough; FreeMill is one potential choice, but it only supports a single, rudimentary machining strategy - and really, isn't worth much.

This leaves you with commercial tools. If you are on a tight budget, you may want to check out MeshCAM ($200), which is actually a very competent package with good technical support. Other alternatives within that price range include Cut 3D, or the hobby license for DeskProto. I have tried both DeskProto and MeshCAM, and both of them are pretty good - so these would be my top picks.

Other than that, there are quite a few other reputable choices with prices hovering around $1,000 and more. The pricing in the "pro" segment, especially for more featured packages with 4-axis machining, is still rooted in the era of strictly-industrial CNC - but deep discounts are available to students, and sometimes, to those who buy the software along with the mill itself. Notable applications in this category include VisualMILL / RhinoCAM, Alibre CAM Mayka, madCAM, and quite a few more. If money is no object, or if you can get a good discount, you may want to dig deeper. If you need advice, I've seen VisualMILL in action, and it looked pretty good.

Tip: many of the commercial packages have demo versions. These demos are either limited to a 30-day trial, or lack the ability to write G-code, but are otherwise fully-featured - so be sure to check them out before you buy.

3.2.2. First minutes with CAM

CAM programs can be counterintuitive; you will probably need to read the manual carefully to even understand how to create a toolpath, or write the resulting NC file. These applications are also often finicky, unforgiving, and buggy - so it's important to take it slow, and check everything twice.

Before loading your 3D models, you need to configure the software for your particular machine, either by selecting the appropriate postprocessor, or - in the worst case - by writing your own based on an existing config file for a similar mill (not as scary as it sounds, as long as your machine came with a code reference manual). You should also go through all the configuration options, and make sure that units are set to millimeters, that the tolerance is 1 µm or better, that arc interpolation is enabled if supported by your hardware, and that the G-code coordinate system is set to G54 (the first, default user-configurable coordinate system, and the only one you will be using in hobby work).

With this out of the way, you should load the geometry to be cut. Let's use the heart-shaped mold created earlier on; if you need to export it from your CAD application to a mesh-based format, such as DXF or STL, be sure to configure meshing tolerance to 1 µm or better for that step, too, as this setting is often separate from the global value.

Once the model is loaded, you need to verify its position. For three-axis work, the mold cavity should be facing up, and the top surface should be aligned with the Z=0 plane in the CAM application; when looking from the top, the bottom left corner of the mold needs to be at X=0, Y=0, too. If it wasn't loaded this way, you can move or rotate it as needed, but also try to figure out what went wrong: is your original CAD model oriented correctly? If that's not the reason, is there a CAM-level option you should have toggled at import time?

Well, all right. Once the model is in the right spot, it's time to create some toolpaths next.

3.2.3. Roughing toolpaths

To maintain sanity, it helps to split the cutting process into several phases. Each of these phases accomplishes a different task, and may use a different tool, feed speed, machining strategy, stepover distance, and so forth. The first phase of almost every project is known roughing; its goal is to remove the bulk of the material as efficiently as possible. Of course, astute readers may ask why this isn't also the final step - and the answer is that, quite simply, heavy chip loads and rapid tool speeds offer limited accuracy; it's better to leave a small margin of uncut material, and refinish the surface in a separate process later on.

The usual roughing strategy is a hybrid approach where the model is cut in Z layers, and on every layer, the application first uses a pattern of horizontal movements to clear the pockets, and then performs a waterline-type cleanup pass. Once the first level is done, the toolpath advances to the next one:

In some applications, roughing may not include that cleanup pass, in which case, you should probably configure a separate waterline step right after roughing. This is to ensure that the margin of remaining material is reasonably uniform, so that chip loads don't fluctuate wildly later on.

Tip: good CAM applications let you use pocket-shaped offset cuts, rather than linear movements; this completely eliminates the need for the waterline cleanup pass. If that mode is offered by your software, take advantage of it - it will speed up the process and also let you maintain a consistent direction of cuts.

In any case, for the materials used in this guide, you should configure the roughing process the following way:

Well, that's pretty much it. Once the roughing operation is set up, simply tell the program to calculate the toolpath, and examine the result closely. Make sure that it actually makes sense: is the tool staying within our virtual workpiece? Do the toolpaths look anything like what we discussed before? If the program can give you estimated machining time, is it less than 10 minutes or so?

If everything checks out, congratulations; now, let's finish this thing.

3.2.4. Finishing toolpaths

Finishing toolpaths typically refine the geometry in several consecutive steps:

  1. The vertical (Z axis) margin on flat surfaces is removed using a projection toolpath that has a zero tool height offset, but preserves the original tool diameter offset from the roughing process.

  2. The X-Y plane margin around vertical features is removed using properly spaced waterline cuts, configured with the true diameter of the tool.

  3. If there are any sloped surfaces, they are locally refinished using a tightly spaced projection toolpath or 3D draping, possibly with a ball end tool (this is not applicable to our model).

  4. If there are any holes or tight pockets that couldn't be faithfully reproduced with the current cutter, they are selectively refinished with a smaller one.

To take care of the first item on this list, you'd normally want to configure an offset-type, projection finishing toolpath with the following parameters:

This step cleans up the flats; now, we need to take care of the walls. This is done with a "pure" waterline toolpath that traces around vertical shapes, and does nothing more. The parameters for this step should be:

Everything else should be the same as for the previous step.

Well, that's almost it. After this toolpath, the heart should be looking pretty much the way we designed it - with just one minor blemish: center kink in the middle of the heart will have a slight fillet on the top, due to our relatively large 3 mm tool not being able to fully squeeze into that tight spot. To fix this problem, we can perform a selective waterline cut with a 1 mm end mill. Most of the parameters don't change from step #2, except:

And... well, that's it! Generate the toolpaths and pat yourself on the back.

For future reference: here's the list of maximum recommended cutting parameters for the tools you should have bought. These values are applicable only to several classes easily machinable prototyping materials that we're going to talk about soon - when working in more demanding stock, you will need to slow down:

Speeds reduced by 20-40% are recommended for finishing operations, especially with 3 mm and 6 mm tools.

3.2.5. Final sanity check

Measure twice, cut once. Before sending any data to the machine, it's always good to recheck your work; 5 minutes of that may save you several hours of troubleshooting in the physical realm. Here are some questions to ask yourself:

Try to use that checklist until you are reasonably comfortable with the process; it's not that mistakes are common, but they can strike at inopportune times.

If everything checks out, you need to get the toolpaths ready for cutting. In some programs (e.g., Modela Player), the output is done directly from the application - in which case, just sit tight. In many other apps, the data is written to a text file, and that file is then sent to the machine using a separate CNC utility; if so, export ("post") the toolpaths now. Of course, remember to save the toolpath for the 1 mm tool in a separate file!

3.3. Please, let's cut stuff already!

Okay, okay - but first, you need a suitable workpiece. We will cover more permanent options shortly, but for your initial tests, I strongly recommend getting something called machinable wax. It is a hard, rigid, wax-like substance, technically a blend of low-density polyethylene (LDPE) and paraffin. It is not the cheapest or most durable stock, but has two important properties: it machines quickly to a very good finish with excellent dimensional accuracy; and more importantly, because it's much softer and more fragile than common plastics, even fairly major mistakes won't immediately result in a broken tool.

In the States, the material is available cheaply from the folks at MachinableWax.com. I would suggest ordering their set #17-424215 (featured on this page). It's a box of 12 pieces, 42 x 42 x 15 mm, selling for $21. Don't overdo it - this really isn't the best or or the most cost-efficient material for real work, so get just a single box or two.

The only other thing you need in advance is a way to secure the wax to the milling table. Your mill may have come with some sort of a clamping system, or at least slots or screw holes that let you rig something together after a quick trip to the hardware store. Alternatively, you may want to consider MWHS01 from High Tech Systems ($100), which is a very versatile and lightweight system of clamps that should work for almost any medium or large CNC mill. That said, when working with easily machinable materials and using small tools, you can also get away with strong, thin double-sided tape, such as 3M 444 or Tesa 4965. Simply place four short strips in the corners of the workpiece, and press it down; then lift one of the corners to detach.

3.3.1. Setting up a job

Assuming you have all the necessary supplies, we can mount the workpiece at this point. Wipe clean the table and the stock material, apply the double-sided tape as described earlier, and attach the workpiece to the table, making sure that it's entirely within the working area of the mill. Depending on the design of the machine and the length of the tool, you may need to put something underneath the workpiece to allow the cutter to reach it, too.

Next, confirm that the workpiece is actually attached securely, and install your 3 mm tool in the collet. Tighten the tool holder, quickly confirm the TIR, and make sure that there is some clearance between the tool and the top of the workpiece when the spindle is fully retracted. Assuming everything is fine, you can now turn on the mill and let it initialize.

Caution: I am assuming that, as requested earlier on, you have familiarized yourself with the operating manual of your mill, and with the safety tips information included in section 7 of this guide. As with any power tool, you can get hurt if you are careless.

For G-code mills, the next step is to set the coordinate system to G54, then move the tool to align it with the bottom left corner of the workpiece (looking from the top), plus about 5 mm. With the tool at this X-Y location, tell the machine to set its X and Y origins; this is done in a hardware-specific fashion.

Setting the Z origin is the last hurdle to deal with. Find a convenient location on the workpiece, in a region that won't be removed in the cutting process. If the machine has a tool sensor, simply place it underneath the tool, and follow the manual to perform the measurement. Without a sensor, you can use the trick we talked about earlier on: place a thin strip of paper or foil on top of the workpiece, and wiggle it back and forth while lowering the tool; use increments of 0.05 mm when you are close, and stop the moment the tool pinches the foil. Set the Z origin in that location; oh, and try not to pinch your hand instead!

Done? Well, in that case, it's time to put on safety glasses, then hit "send" and output the 3 mm roughing and finishing toolpaths to the machine. With any luck, several minutes later, the machining process should be wrapped up. Vacuum off a bit and inspect the result; is the shape in line with what we're expecting? If yes, let's fix the kink: install the 1 mm tool, check TIR, redo the tool height measurement (very important), and hit "send" to output the remaining toolpath on your list.

In case you are wondering, there are very few things that can go wrong with the cutting process itself, and all of them should be fairly self-explanatory. For example, if the machine starts cutting at an unexpected location, or too high / too low in relation to the workpiece, you probably messed up setting the origins, selecting the right coordinate system, or had the CAM model positioned incorrectly. Similarly, if the tool breaks while cutting in the expected location, this is probably due to grossly incorrect RPM, feed speed, or cut-in depth; or bad ordering of toolpaths. But chances are, you won't run into any issues just yet, so sit back and relax!

Note: as hinted earlier, for more complex jobs, it's useful to keep the roughing end mill and the finishing cutter separate, even if both processes call for the same diameter of the tool. This way, you don't have to worry about the loss of micron-scale accuracy as the roughing end mill begins to wear - and you will be able to use both tools for a lot longer.

3.3.2. Inspection and troubleshooting

As soon as you're done, detach the mold and vacuum in thoroughly. Machinable wax sometimes requires a gentle but firm cleaning with a brush and a touch of compressed air to get rid of the somewhat sticky chips - so do that, and then have a closer look. Is the surface silk smooth? Do you see any pronounced tool marks or gouges on vertical surfaces? What about horizontal ones? Do the dimensions check out when you use a caliper? (In more complex projects, pin gage sets are useful for measuring the diameter of small holes, too.)

Chances are, you're in good shape - but if anything is even slightly wrong, now would be the right time to track the problem down; don't wait until you're working on more time-consuming projects, or in less forgiving materials. Here are several causes of the problems you are most likely to see:

Still, in all likelihood, the result will be fine. If that's the case, let's wrap up by reviewing some common-sense rules that come handy in mold design, just so that you are well-equipped to work on your next CNC project - and then, let's cast a mold.

3.4. Things to avoid in mold design

There are relatively few real constraints on what you can cut on your milling machine, but there are several simple design strategies you should follow to keep the cutting process simple and quick, and make accurate, durable, and dimensionally accurate molds. Here's the gist of it:

Well, that's it. It may sound overwhelming, but once you catch a whiff of it, even remarkably complex multi-part molds are fairly easy to crank out. We'll cover this and several other advanced design topics later on - but for now, let's have some fun with polymers!

Click to proceed to chapter 4...