KevCAM Part 3 – Polysurfaces, Rings, Script Shortcuts
So now it’s time to start extending these basic concepts to more real world situations. Everything we’ve done thus far has dealt with one single surface. What if we have a polysurface instead of one single surface? Let’s say we take our half pipe idea, and make it more like a s-curve:
Now, you might say, and rightly so, that I could have made that as one single surface. I’m trying to illustrate a point here though, so let’s just roll with this. Now I setup my hatch so that I’m milling along the “length” of this surface – this was done without any regard to actual stepover, again just illustrating the concept:
Well now we have one single set of linework that we want to apply to our mold, but our mold is made up of two surface. So, what to do? Well let’s just split our base surface and linework in half!
I think you can tell where this is going, we just FlowAlongSrf twice, once on each section using the respective linework and base surfaces:
Pretty cool, huh? Now, you can simply join the linework into one unified toolpath:
Now, I must say that the quality of the junction between your surfaces matters greatly here. If the seam is not at least tangentially continuous, the lines will not match up exactly, and you may have trouble joining them. The workaround is quite simple – just temporarily increase the tolerance of your file, join the curves and then reset to the original tolerance value. Using this technique, you can split up your base linework however you need to flow it across multiple surfaces, which makes it very powerful.
Now let’s say you want to machine something that resembles a ring loop, not unlike the air intake for an aircraft cowling. From a conceptual standpoint, that would look like this:
If we use our standard toolpath, we would end up with something like this:
It’s a little hard to see in the above screen shot, but the toolpath turnaround is happening on the mold surface, at the surface seam:
This violates my cardinal rule of never having hard toolpath turnarounds on the mold surface. Also, why do we even need the tool to turn around? Couldn’t we just have it travel in a spiral type toolpath? Wouldn’t this make an insanely efficient milling strategy? Why yes, it would! I present to you, the Continuous plugin for making just such a toolpath. Load the plugin, and then type Continuous to start the command. You’ll get a prompt for the tool diameter – for me I’m going to type in 0.5 since I use a 1/2″ ball end mill. Then it will ask you for a stock allowance – this is how much EXTRA you want to leave – maybe for hand sanding or finishing. For me, I just mill to my final surface level, so I always just put 0 for this. For stepover, I would typically use 0.02, but I’m just going to go with 0.o5 for this example. The last prompt can be a little confusing – MaxDistanceToSurfaceMachine. This is asking you “what is the widest part of your mold?” This is the same question you had to answer in the second installment of this series, where I showed you how to control your stepover. Let’s just take the “width” of the part – by measuring the edge at the surface seam, I can see that edge is 5.8 units long.
So let’s call that 6. So for MaxDistanceToSurfaceMachine, enter 6. Then it will ask you for a construction point, which is just a fancy way of saying “where do you want me to put this?” Pick anywhere, it doesn’t matter. What you get is this:
This looks a whole lot like what we’ve been creating manually, but there is one crucial difference. If you look in the top view, you can see the linework is not ortho, but rather slopes up a little. Ready to see something amazing? Take this linework and FlowAlongSrf onto our mold:
That little slope in our line is set exactly so that when used in a situation like this, the end of the first line will match up exactly with the beginning of the second. I’ve added two point objects to the screen shot above to highlight the beginning and end of the toolpath. There are no hard turns in this toolpath, just one continuous motion. Amazing, no? You might also be saying “hey, you just gave us this cool little plugin to automate making the base linework for continuous machining, wouldn’t it be great to have one for the more straight forward situations we’ve been discussing before this?” Yes, it would. Here is a plugin called StepOver which does just that. It has exactly the same prompts as Continuous, but it puts out ortho line segments, and runs Joiner on them automatically. I’ve been holding out on you, yes, but I wanted you to understand the reasoning behind what we’re doing before we go ahead and automate portions of it.
I contacted McNeel about the crashes I’ve been having with FlowAlongSrf and very dense joined base linework. They were not able to replicate my issues, so it may just be me and my poor little Mac mini. However, I did find a nice workaround – just use Group on your base linework instead of join. Group will make it easier to select your lines when you do FlowAlongSrf, and does not seem to have the stability issues that I’ve had with Join-ed base linework.
Next time I’ll show you how to actually get this stuff out of Rhino and into g-code!