March 2017

And then

people realized that if they were just cutting polygons with smaller and smaller “Facets”, they needed a better way to generate the data of that curve. Originally, things started with an algorithm that looked at a circle and said “Ok, got to this point on the curve” and the servos would do it, and while the servos did that the control would calculate another point on the surface and tell the servos “Ok, go to that” and they did, and so on. What was needed was an algorithm that could generate an incredible number of “Steps” in real time and pass that data through to the servomotors, also in real time. So the servos, instead of waiting for the calculation to moved, kept pace with the calculation as it was being done.

This is where we started. Ignore the code for a minute and just look at the etch-a-sketch looking circle segment.

Now look at this

Did your head explode? isn’t it a good thing that you don’t have to write that code every time you want to draw a circle?

While the code required to program a machine tool is realtively simple, the “Hidden” code required to get the machine to follow the instructions you give it, is much more complex. And that’s just in two axis, the more axis you use, the more complex it becomes, and the code for a six axis robot is very, very complex indeed.

Next….

Pretty much everyone in north America has had, or has played with, an Etch A Sketch.

And everyone who has done so knows, you can draw anything with an Etch a Sketch, so long as it’s a straight line. If you try to do a circle, unless you have practically infinite manual dexterity, you will find that it is fairly difficult.

Not so for machine tools. Programming machine tools is fairly simple, from a programming standpoint, because if you want a circle you use a G code (In most cases G2 or G3) combined with, for instance, a startpoint, an endpoint, and a radius (There are other ways but this is probably the simplest).

This tells the machine to cut a circle. But it only tells it WHERE the circle is to be cut. Another, deeper level of code that nobody sees is what actually tells the machine HOW to cut the circle. To understand that, you have to understand that, for the most part, all cnc machines can really only cut straight lines. So we’re back to the etch-a-sketch, only the machine can cut straight lines of practically infinitely small length. So an algorithm is used to plot a number of points that lie on the surface of the circle, and goes from point to point to point.

Think of it this way: A circle with only four points is, well, s square. A circle with five points is a pentagon. A circle with ten points is a decagon, a circle with twenty points is an icosagon. The more sides the polygon has, the more circular it looks. The Canadian dollar is a hendecagon (11 sides) but for all practical purposes, it is round.

When you get into the 200-300 sided regular polygons, it becomes practically impossible to distinguish them from circles, and that’s what you are actually getting from a machine tool, an etch-a sketch circle of such a great number of sides or “Facets” that it appears round.

This becomes an issue when you’re making a great number of curves, because a curve of any kind or size is simply a part of a circle, and when you want it to be a smooth surface, you want the individual “Facets” to be tiny. If a machine tool is cutting a polygon with 30 sides, its done in short order, but if you want one with 30,000 sides so the surface is ultra smooth, the amount of processing required is sheerly immense, and it actually slows the machine down. So High Nurbs machines were developed; these are machines that have LOTS of processing power to keep cutting speeds up and surfaces smooth. NURBS means “Non Uniform Rational B spline” more on that later.

Bottomline: IN CNC there is no such thing as a curve, just polygons with very tiny sides, for all practical purposes.

Watch this space?

I have been thinking about the difficulty involved in robotic movement, and the fact that the complexity involved is beyond the imagination of very nearly everyone.

First of all, though, you have to understand cartesian coordinates, because that’s where it all starts.

The following is a drawing of a machine, showing it’s x, y, and z axis. it can move in a straight line in any of those axes, and by controlling speed, distance, and direction, it can interpolate any shape that can be generated in space, theoretically.

Each axis has an origin point, and movement in one direction from that origin is positive, and the other direction negative. This is the basis of nearly all machining. Once you understand this, everything else just builds on it.

« Prev