Tuesday, 28 October 2008

Time for a novel approach to CAM?

I'm now pretty familiar with SolidCAM (a SolidWorks CAM plug in), and I've had a look at the screen shots and sales blurb for a bunch of others. I am not impressed.

The state of the art CAM seems to be stuck on an unnecessary plateau: Slick but dumb. The user is presented with a fixed toolbox of slightly adaptive machining strategies and expected to choose an appropriate sequence of them to apply to various parts of the stock in order to produce an acceptable result. The process is both slow and demanding of human skill and attention, and the results are far short of optimal.

The better tools do have some optimisations that help a bit: Adaptive step over when milling with a ball nose, to limit the scallop to some maximum height; Feed rate adaption to varying cutting load; Solid modelling so that later machining steps only cut the material left by previous steps; etc.

However, this falls far short of what is possible: fully automatic generation of a far more optimal set of machining instructions. It seems to me that the local definitions of a good cut are fairly simple. A cut that is within the capabilities of the machine, at optimal feed rate and chip load, leaving only an acceptable scallop, and not gouging the part, is a good start, and would be better than the current approach can uniformly produce.

Ratings for all of these cut properties can be calculated, and a single merit function could be a weighted product of those ratings. This allows us to use any local search strategy to generate a complete tool path, by creating a sequence of locally (near) optimal cuts.

Global merit would include completing the task in minimum time, with minimum machine and cutting tool wear, with maximum quality. A simple hill climb optimisation would produce an improved but still substantially sub-optimal path. Simulated annealing, a genetic algorithm, or similar, would further improve the result.

In future posts I'll propose an algorithm in detail and get in to the implementation details, with the intention of cutting alpha release code in python and starting an open source project to get this in practical use.

In praise of a good workshop

Having a good space to work in makes it massively easier to do good work.

At first my workshop was the spare bedroom: a tiny child's room. Then I got my CNC router, took over the dining room too. This meant that most of my tools and materials were stored in one place, and I was working in another, which resulted in a huge waste of time and a perpetual battle against clutter. It was also impossible to keep the metal swarf out of the rest of the house.

Now I've moved, and I have a single garage as a workshop. It's still a bit cramped, but it's a massive improvement.

Here are some of the highlights of what I've set up.

CNC router enclosure with high static pressure extractor. The fan can easily be fitted with a flexible duct that I can put out of the door when I'm cutting anything noxious of especially dusty. The box keeps the extreme mess that routing makes off the rest of the workshop, and should contain the splashes from the flood coolant (more on that in a later post). The box walls are 4mm double wall polycarbonate intended for low cost greenhouses, on an Al angle frame.

CNC router. K2 KG-2539, which seems to offer pretty good performance for an excellent ~$7500 including the trimmings. I paid $5000 for a machine without a tabletop, cables, cable chains, or servo drive electronics, and built them myself. It wasn't a smart way to earn $2500 less the cost of the parts, since that didn't leave much actual saving and took a great deal of time that would have been better spent on other things.

Kress spindle, which has a surprising amount of torque and an very low run out. It was able to cut a big chunk off the top of a cast iron G cramp when I accidentally crashed the bit into it at 3600mm/min.

Around the spindle you can see the flood coolant delivery to the four orange nozzles, and the compressed air with optional mist to the grey locline with the red tip. I'll post later on building and using the coolant systems.

Between the flood nozzles is a ring brush that surrounds the bit. The open middle of the ring goes to a shop vacuum cleaner via the the big black hose.

Industrial shelves. Practically impossible to overload.

Really Useful Boxes (TM). From Staples, quite cheap yet sturdy, and it's possible to see what's in them through the walls. They're Euro standard sizes and shapes, too.

Home made work bench, from timber from a builders merchant.

Frankenstein's work bench, supporting the CNC router, (re)built from bench and desk parts salvaged from a skip. It's not really stiff enough: it wobbles at least 1cm when the router X axis starts or stops. I may stiffen it with X braces, or replace it, if I can see some evidence that the flex is actually a problem.

CNC controls. Joystick to control jogging. I haven't set up the HAL (hardware abstraction layer) to make it work yet, but that shouldn't be hard. I'll post about it when it's done.

Thursday, 23 October 2008

Is this thing on?


This is a blog about making things.

I find the transformation of idea into object uniquely satisfying, and oven the coming months I'll be sharing my projects with you as they bubble up in my fevered brain as ill-formed ideas, struggle and compete for the sunlight of my attention, and flower or wither by turns as may may be.

I expect to write about CAD (especially SolidWorks), CAM, CNC (especially Linux and EMC2), milling and machining, casting, composites, resins, elastomers, programming and electronics. It's my intention to share useful insights, techniques, and lessons in these areas as I learn them, and my hope to receive similar in return.

Some projects will be entirely for my personal amusement, while others may result in commercially exploitable products. I may be a little cagey about some of the latter.

I'm currently working on, amongst other things, a light weight high performance geodesic dome made from advanced fibre composites and metalised polymer film, a totally silent high performance PC, and a costume for next years Burning Man that includes a 3000 channel 1kHz LED PWM dimmer and 1000 lightguides cast in clear elastomer in the shape of feathers.

I hope that you get some part of the joy from reading about my projects that I get from working on them.