When I lent my services to a collegue who was working on a film about 12 years ago, I was introduced to the world of cnc. I remember watching this huge machining centre milling out a slab of mdf and turning it into a fantastic set of gears. I knew that it would have taken me hours to achieve the same thing with traditional power tools. I decided then that I would invest in a cnc router for my own business Oxenham Design. At that time I could turn on a computer, but even to check email seemed like a crazy set of operations. I persevered and learned every piece of relevant software I could get my hands on. I am now fortunate enough to be using Vectric's ASPIRE software, and Techno cnc routers, which has helped us to create some amazing projects, both in part, or in full. I thought that this blog would be a great place to share "behind the scenes" adventures with the software, materials and equipment we use, as well as the projects we build.

Tuesday, 31 July 2012

Fixing the jagged again(or text cleanup)

I was on the 3D SIGN FORUM this morning and was following a thread regarding cleaning up the jagged edges that can occur on vertical walls of a 3d relief. This process will work for all pixel based cad/cam software. This is something that comes up in numerous forum posts, etc. I did a tutorial a while ago, but it might not have been as in-depth as it needed to be!

First thing to be aware of is the difference between vectors and pixels. Pixels are the little cubes that are assigned various colours, or shades of grey that when combined side by side, make up any digital image. Pixels are easy to see if you zoom way-way in on a picture on the computer. Resolution defines how many pixels occupy a given space, usually Pixels Per Inch or PPI.

Vectors are precise mathematical lines and curves, that have no loss of quality when an image is scaled up or down.

So let's get down to business!!!!
This whole process only works if you keep your Aspire components separate. There's really no need for us to bake the text into the model. In fact I live by the the motto "I only bake when I have to" This motto applies at home as well ;)

I started my model at 24"X24" in Aspire, with the resolution set to standard (the lowest available option) It's always advisable to have the job size set to the smallest size that will fit the project. A 2" X 2" model will be very, very rough if the job dimension is 4' X8' with a standard resolution setting. This is because the pixels will be very large, compared to a job size of 2" X 2", where the pixels will be a whole lot smaller.

In the above photo, you can see the damage of a large workspace and low resolution with small text.
Here's a tighter shot of the resolution issue. Pretty apparent I'd say. This will definitely look poopy when it's machined!

 Heres the result of machining the whole 24" X 24" model. This was done with a 1/4" cutter with a 9% stepover. Looks perfectly acceptable on the log model....................

But not on the text close-up. You couldn't pay me to sand and file that clean, no way sister!
I'm gonna let Aspire, clean this up for me, and on our Techno cnc, it will be 100 times faster than by hand, and WAY more accurate! Re-toolpathing this whole model with an 1/8" cutter is unreasonable as well, as most of the model is perfectly fine
In the above image, the circle represents our .250" cutter. I've placed it right up against the original text vectors that were used to create the 3D text portion of our model.

An important point to remember is that in Aspire, a 3D toolpath is calculated to the CENTRE of the cutter. If I had used the original text vectors as a machining border, the cutter would have stopped at the point it is in the above image, the centre of the cutter right on the vector.
So knowing that the calculations are done to the centre of the cutter, we can plan accordingly!
So in the image above, the dashed line represents the centre of the cutter. This is kind of important to illustrate, because as the cutter will climb up and over the vertical wall to machine the text portion, it's going to leave a radius due to the ballnose cutter having a rounded tip.
We are going to machine of the radius around the text that was left by the .250" ballnose cutter. This will leave us a clean transitition between the woodgrain and the text. I'm going to some extremes in this tutorial, and going to jump right to a .0625" ballnose cutter for the cleanup. That is represented by the smaller circle.
I have dragged my .0625" circle inside the original vector. This looks like a good location to clean off those giant jagged edges as the cutter makes it's way around the text. We now just need to define that location in Aspire. As I said before, 3D toolpaths are calculated to the CENTRE of the cutter.
In this particular case it was around .008". So I simply selected my original vectors used to create the text, and offset them outwards by .008". This will allow the cutter to clean off the jagged edges without making the text to skinny.
I usually group both the vectors that I just offset. This keeps them all easily selectable.

With those vectors selected, I can now set up for machining.
This is where keeping the text component separate is important. We are going to hide the text component in the component tree. With this component hidden, Aspire doesn't "see" it, and therefore ignores it. If we don't hide it, Aspire will machine all those jagged edges again, making the text still look bad, and that's what were fixing. But as the woodgrain is still visible, it will protect that portion of our model. And as we have already run the .250" cutter, the text now exists physically on our model.

I chose the .0625" ballnose and assigned an OFFSET toolpath strategy. I am using an offset strategy as it will drive the cutter around the vectors smoothly, following each shape precicely, as opposed to rastering back and forth.

 TAA DAA! This is text I can live with. It will require NO additional cleanup by hand, and looks fabulous!

This seems like a long process, but it isn't in reality. You just basically offset your original vectors approx half of each cutter your using, hide the component your cleaning up, and assign an offset strategy. DONE!

This process lets you model at lower resolutions (which can speed up operations on slower pc's) And gives you great results.


  1. Love it,,,very smart. I have been using this and passing along the link to your blog about this since last we met.
    This time it's much easier to understand for us old guys.

  2. I always try to make the elderly feel smart!!!

  3. Thanks for taking the time to go into further detail, I didn't quite get it the other day when it came up on sign forum but now "I got it!"

  4. No problem Gary, I'm glad it was clear for you!!!

  5. This was great, Thanks ....No more Angry Beaver carves for me ,,, I hope "lol" Thanks again

  6. The angry beaver carves text no more!