What’s this web-page for?

Mainly to host the experimental web-interface to demonstrate our Adaptive Clearing 3-axis machining algorithm without the need to download a whole CAM system.

The technology uses a combination of C++, Python, Javascript, Mesa3D, and WalterZorn’s vector graphics library. We later learnt that what we had created a type of Ajax framework.

If you have any interesting questions about it, send them in and we may answer them in our blog.

Why doesn’t it work for Internet Explorer?

The Adaptive Clearing web-interface is at the edge of what we can do on an internet browser using its natural capabilities, without a plug-in.

Unfortunately, internet browsers are not very compatible with one another, and web-programmers, having no influence on Microsoft, have had to knuckle down and waste a lots of energy putting in work-arounds that you don’t notice. This work is costly on the development of advanced web-pages such as this, so if you take about ten minutes of your time to install the popular Firefox browser for free, you’ll save us a lot of worktime that can then be spent in more interesting things.

What is an STL file?

It stands for Stereo-Lithography File, and is the most basic format for recording a trianglar mesh model. Almost all CAD-CAM systems support it, so it serves well as a data exchange.

I can’t handle this interface, do you have a better demo?

We have one which installs from an exe file and has a very minimal user interface with instructions here. You have to contact us for a copy and persuade us that you are genuinely interested in looking at it, which usually isn’t very hard.

How do I get this algorithm in my CAM system?

If you use Mastercam you can buy the Mastercam Performance Pack.

Some CAM companies are in the process of integrating it. They’ll say who they are if you ask them nicely. Contemporary corporate culture prevents us from saying anything on their behalf without express written permission, unfortunately in order that they can pretend that they invented it

If you buy software from a company that is not integrating the Adaptive Clearing algorithm, and would like to have access to it without the hassle of changing your supplier, you have to ask them for it. Companies are ultimately driven by customer demand; we can send out our details as many times as we like, but they only respond if they believe their users are concerned.

I am a programmer who has been given the job of replicating your algorithm, and I’m stuck, can you give me some hints?

Sure. Please get in touch. I am actually interested in this subject, and rarely get the opportunity to engage with people on a technical level about how to write CAM algorithms. There’s way too little sharing of ideas in this field, and I would really like to find someone to improve the Wikipedia:CAM pages with.

Some CAM companies have a policy of never buying software from outside sources, so there’s no way we could sell it to them. It’s better for everyone that they make their own version of Adaptive Clearing (at unnecessary expense), than for their salesforce to go round the world explaining to people that it’s a worthless feature which nobody needs, on account of the fact that they haven’t got it.

What’s so special about this machining algorithm?

Most machining algorithms work geometrically, based on the part model. I know because I have written half a dozen of them (offset area clearing, waterline finishing, parallel passes, constant stepover, pencil milling, …).

There are variations of these algorithms made using combinations of the two of strategies (eg Parallel pencil milling). Also, there are ways to adapt a toolpath after it is calculated (eg Rest Roughing).

What’s special about this algorithm is it’s controlled by a stock model at all times of the calculation.
This technique can be applied to most machining strategies, but it makes the biggest difference (and is easiest to program) for the roughing cycle, because that is when the shape of the stock
changes the most.

The result is that you can safely cut along the full length of the tool, always keeping its helical blades in contact with the metal (which reduces vibration), while never colliding into too much uncut material and causing the tool to break.

It is impossible to generate a general purpose Z-clearing toolpath that cuts this deeply without an adaptive model of the stock. Without this technique the only strategies are to clear the metal in a series of shallow steps, or apply plunge roughing.

What other software is similar to this?

There are many CAM packages that purport to implement google:trochoidal machining. In most cases these are geometrically defined, usually by attaching tangent circles to a conventional offset toolpath and sending the tool on a journey around about, hoping it doesn’t collide with too much material along the way.

Our Adaptive Clearing does not contain an explicit implementation of trochoidal or spiral machining; these motions are merely emergent properties of the algorithm. As yet, we haven’t seen any evidence of a feature that uses the same underlying idea as ours, though many companies assure us that they are undergoing their own development. Whether this is true or not is something their users are going to have to ask them about.

There are, however, two notable systems on the market that target the same problem, but use a different solution. The first is Surfware’s patent-pending TrueMill feature, which came out in 2005 as part of their “Velocity” CAM product. More recently we have heard that it has been offered to some CAM vendors as an OEM. The software patent issue relating to it caught our attention vividly when it came out, because there happened to be a patent debate in the European Union at the time.

The second is VoluMill, which appears to have been started off in 2007 by some folks who left Surfware to form their own business around another implementation of a similar algorithm — or possibly compiled from the same source code as they appeared to get the work done suspiciously fast. Their toolpath generating product is available to users over the internet where you upload a contour to their servers and then download a finished toolpath for a monthly fee. Anyone who’s looking for a comparison should check out our free web demo.

These two versions, which seem to be based on the geometric properties of the contours, rather than on an analytical model of the remaining metal, are real feats. Unfortunately, they might represent an inflexible approach which doesn’t extended to rest roughing very effectively. However, you can never really be sure what will be the strengths and weaknesses of an approach when it is on the drawing board, or how far it can be improved with persistent development. The market is best served by a variety of distinct methods, not just one which is thought to be “right”, and then honestly comparing them when they are performing at their best.

For latest opinions, try search blog for “Truemill”, or search blog for “patent”.

How does it work?

A full description of the algorithm would take too much time to write out, and we don’t know anyone who is that interested. Here is an intuitive explanation:

Suppose you have a complicated lawn to mow, and your mower isn’t powerful enough to plough head-on straight into the uncut grass. What you can do is cut just on the edge of the mower, so it is half-on and half-off the un-cut grass and doesn’t get overloaded. If you have a square piece of lawn with a concrete driveway on all four sides, you can start at one corner and follow the edge, turn the corner, and so on. In this way you will cut the grass in a spiral.

If the grass is in a channel between two raised flower beds you might find yourself having to scoop out little crescents of grass over and over again to get through. If the grass is completely contained without any side patios to allow an approach, you will have to carry the mower to the middle, use shears to clear a little circular patch to start off, before spiraling your way outwards.

Ultimately, the algorithm relies on having a very precise model of the un-cut grass (metal) remaining, and there is a lot of trickery in working this out fast enough without consuming too much computer memory.

Who are you?

Martin Dunschen and Julian Todd are self-employed programmers who formerly worked on Machining Strategist at NC Graphics
between 1993 and 2002 when the product name, the development team, and one copy of the source code was sold to Vero Software. NC Graphics continue to develop the same code under the name Depocam, and the two systems have been diverging ever since. I don’t know of any other case where this has happened in the software industry.

We don’t do corporations, accountants, intellectual property rights, lawyers, or glass office blocks. “Freesteel” only exists as a domain name. What we can do is write software without getting distracted by any of that tedious nonsense, none of which is necessary, given the availability of computers these days.

Julian’s personal web-page is www.goatchurch.org.uk. He also co-created www.publicwhip.org.uk, and develops a cave drawing program. Martin has interests outside of programming, and does a blog for his street, which is also the house where we have our office. He should put up more pictures.
There’s a thousand times more life here than you can ever get in a hygenic glass office block with cubicals and car-park out back… That’s enough about our cheap down-sized lifestyles.

We are based in Liverpool, England on the edge of Toxteth.

How are you paid?

Our original plan was to let our friends at Cimco Integration sell the software for us and deal with all the accounts, but no one seems to want to do that. So we’ve had to do deals directly and negotiate contracts in our own names, which has been kind of interesting so far. It was never our intention to have to go about sending invoices to people every three months for payment, but it seems to be what we’re stuck with.

Beyond that, we muddle along with various work for the university that looks interesting, and Julian has all his non-paying programming projects, like www.publicwhip.org.uk, that he believes is a more worthy contribution to the body politic than donating money to a corrupt political party, which is supposedly a legitimate outlet for concerned citizens to do. Our income is easy to work out if you know we are not VAT registered.

Why is your blog so unprofessional and full of ranting?

Short answer: So it has stuff that’s worth reading!

I’ve had enough of tight-lipped professional corporate blogs with their on-message, equivocating, dull, predictable, content-free drivel that you can read in any of the glossy CADCAM magazines that litter the foyer of any professional company and are not fit for a dentist’s waiting room. You know what I’m talking about. If you want the high-life, see upFront ezine.

I promise if I say anything very embarrassing to someone else, I’ll probably take it out if there’s a good reason. If I say something embarrassing to myself, I probably won’t. If I hit a problem with the algorithm, I expect I’ll mention it. If I see a rival version of this algorithm, I’ll talk about it from a standpoint of curiosity, knowledge and its relationship to what I’m doing.

This means, for all its flaws, it stands a chance of containing information. It’s not fun always having to twist everything to a commercial advantage. Whatever.

I thought you were going to release all your software Free Open Source?

It is our conscious intention that we would — eventually, in the long term — like to see a Free Open Source CAM system out there in the world into which we can contribute a version of our work. However, you don’t make algorithms Open Source merely by publishing the code on the internet; they have to be part of a working system with a User Interface that people are willing
to use and contribute to.

We don’t have time to write a whole User Interface with the necessary controls ourselves. We’re very good at writing machining algorithms, which few people can do, so we’re really waiting for volunteers to join us (or for us to join another team of volunteers) with knowledge of a platform in which our algorithms could be hosted.

There are interesting Open Source developments in opencascade-CAD and linuxcnc-CAM which we don’t know much about. But really, we’re waiting for people with ideas and are willing to do serious work to contact us and discuss how such a project could be put together to make it succeed. Open Source is a process that requires teamwork. It is not about waiting for us to run over and give things away that you would otherwise have to pay for; people have to be willing to contribute back into it. In the meantime, the online interface is free, and we hope you can make use of it.