Homebrewing an XYZ CNC Router

If making such a device, there is a distinct possibility of the main frame being twisted, misaligned, or bent in any of the three axes,
despite the care that we would obviously take in its manufacture
It seems to me that with the power of computers that we all now have at our disposal, that it should be a relatively straightforward matter to employ some form of correction map, together with the calibration procedures to set up the map, so that whatever we mill will come out the correct shape independently of the geometry of the mill.
The integrated printer/scanners that are now available do this, so it should be feasible for us.
What do the market leaders such as Mach3 do in this respect?
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Wed, 26 Aug 2009 09:28:18 +0100, Phil O. Sopher wrote:

Printers work (!) in a very benign environment, with very predictable and uniform materials. A 3-axis CNC will twist, warp and flex by different amounts, in different directions depending on all manner of environmental changes. Not the least of which are the speed of the cutter, it's particular characteristics (sharpness, shape, varying profile), the speed it's being used, the hardness and elasticity of the material being machined and loads of other factors that you'd only find out about by trial and error.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
pete wrote:

I think "Phil" meant manufacturing (static) errors, not run-time errors.
BugBear
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Indeed I did, in the first instance, but Pete has widened my train of thought; for which see my reply to him.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Pete,
I think Mach3 has a feature to correct for leadscrew errors, not that I have used it. Look on the Mach3 toolbar at the top of the page clickon "Function Cfig's", then "screwmapping" and have a look.
Assuming you are using stepping motors another way to correct for leadscrew errors only if the leadscrews have linear errors, eg say you had a consistant error of say +0.45 mm in 300mm you can reduce the step count per mm to help compensate for it. It can be even more effective if you your motor controller has a lot of micro stepping options, eg if it is 2000 steps per mm, make it 1997 steps per mm and now your error for this example is virtually zero.
Hope this helps.
Mike

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Phil O. Sopher It is inevitable that software will be developed to cater for machine deficiencies. The software available now caters for mechanical backlash in the system etc. I just wonder if the end result will be machines that are so flimsy ( and cheap) will rely on such software to achieve even the minimum of accuracy and performance. Software is already king even though Tony is holding his breath in defiance. Alan
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Isn't that already the principle upon which modern fighter planes stay in the air? They're as aerodynamic as a house brick but made safe by the software in fly-by-wire systems.
My approach to such a form of correction would be first to apply a couple of 3D matrices to the required co-ordinates to counteract errors of displacement and non-orthogonality (axes not at right angles or not vertical despite the care that one might have taken in construction) and then, with the availability of cheap (gigabytes of it!) memory, have a correction for each cubic centimetre of the base plate, and linearly interpolate for motion between each cc.
The software people at my place of work always spun a web of intrigue about themselves, perhaps to justify their higher salaries, but I've been alerted to Excel macros, where we've all got access to a very sophisticated programming language in Visual Basic, and all for nothing (except for purchase price of Microsoft Office).
I'd still opt for a very rigid construction, though.
Tony is known to be a software person and might be trying for a bit of job protection, or trying to stifle discussion on a project that he's hoping to make a bob or two on! :-) . But I don't see why this group could not be used just to have a discussion about possibilities even if nothing were to result in the end, without the need to sneer.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
wrote:

Not an attempt at job protection (my job isn't in software development any more), or sneering for that matter; simply an honest assessment of realities from my own experience of building complex software and hardware control systems. Yes it is all possible. However, turning that possibility into reality would be (a) very expensive (don't even bother thinking in units of less than 6 figures) and (b) very time/resource-consuming. Maybe if you had the resources available to the guys that develop "fly by wire" aircraft, then it would be a breeze...but lets be clear about this, we are not talking DIY here, unless Bill Gates decides he wants a hobby.
And yes, there are lots of wonderful things that you can do with Visual Basic, but frankly, machine control isn't one that readily springs to my mind. But YMMV.
Getting back to reality, I suspect that the OP's implied objectives (of producing acceptable accuracy from his router) would be better (and cheaper, and faster) served by (a) using heavier gauge materials to keep the structure acceptably rigid and (b) building it with sufficient accuracy.
Regards, Tony
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

I'm sorry if I misjudged you
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Tony Jeffree wrote:

I slightly disagree. It seems to me that (over)building a *rigid* machine is quite easy. Just use bigger I beams :-)
Subsequently, if you (even temporarily) have access to accurate measuring equipment you can calibrate the accuracy, in terms of "attempted absolute position" against "actual absolute position".
Applying this, as an interpolated correction lookup to a given cut is not killingly difficult.
I agree whole-heartedly that using software to deal with stuff like lash (hysteresis) would be hard enough considered as a static problem, let alone a dynamic one (e.g. accounting for resonance and spring).
BugBear
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

If we, as an amateur hobby group without the restrictions of time and money alluded to by Tony were to come up with a basic algorithm between ourselves, then it seems to me that once such an algorithm were itself debugged, then it could be advanced to deal with further problems, (such as the resonance and spring that you identify) as such problems became apparent in our work.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
wrote:

This is a statement of the form "If we could design a flying pig, then pigs could fly". I can't fault your logic - however, as I have said, I'm not going to hold my breath.
Regards, Tony
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

The proposal that we should act together to produce something that is possible is not at all of the form that we should strive together to try to produce something that is impossible.
I'll assume from your closing comment that you are unwilling to act in common cause with others on such a project, and that any further posts from you should be ignored as being irrelevant sneers?
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
wrote:

What you assume and what you choose to ignore is entirely your own business, Gary.
I wish you luck with your project.
Regards, Tony
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Lets look at this logically. For anything to work to correct any errors it needs feedback in real time, actually it needs feedback in yestertime because if it detects a wander it'd too late.
Forget the computer operated plane scenario, they couldn't give a rats arse if it wandered off by 2" as long as it is still aimed in the general direction.
We OTOH need that last move , before it registered the error, to be correct., not going to happen.
So even if we can correct this we are looking at a set of glass scales at probably 600. we then need to read this information, digest it, run the algorithm, and send the new code to Mach or whatever other controller software you are running, then via the cheap unipolar driver to an ex printer stepper connected to the end of your hight tensile licorice router.
Please correct me if I have read this incorrectly.
John S.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
wrote:

AIUI, what the OP meant (or what I am reading into his proposal) is that with a record of the known problems on any table, that we should pre-correct for those known errors in our calculation of the tool path. So we'd be talking about open-loop and not closed-loop control
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

OK, now understood but still at a loss to wonder why when it's easier and better to design and build the damn thing right in the first place.
John S.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Thu, 27 Aug 2009 09:24:29 +0100, bugbear

I don't disagree with that - Mach 3's leadscrew calibration is an example of what can be done there - I just don't believe it is remotely necessary (a) for the kinds of uses that a 3-axis router is likely to be put to and (b) given careful construction technique.

Absolutely.
Regards, Tony
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Tony Jeffree wrote:

One interesting possibility opened up by software is to use unusual engineering solutions that involve complex maths.
If you were operating a 3-axis machine by hand, I think your brain would explode if the controls were anything other than X-Y-Z.
But the hexapod platform has some massive merits, since positioning errors (and slop) aren't cumulative, in the way that they are if you place an X platform on a Y platform on a Z platform.
However, I defy any human to successfully operate a hexapod without using fly-by-wire.
At a simpler level, computer software can achieve linear motion from a non-linear hardware.
Consider a simple hinged gizmo (just a V). If one wanted to open it linearly, one would need a "quadrant leadscrew", so that turning the control screw was linear w.r.t. the angle of opening.
But with calibrated software one could have a simpler, and possibly cheaper, and more robust, leadscrew straight across the end of the V.
By removing the requirment for linearity FROM THE ENGINEERING, we open up the scope for different ENGINEERING solutions to a problem.
BugBear
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

I wonder if you might expand on that?
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.