View Full Version : 4th axis on the mini

01-20-2005, 09:17 PM
I just got my rotary table from LMS and started making parts to convert it.
what I would really like to do is put the stepper behind the table and enclose almost all of it with sheet metal, but for now Ill just stick the stepper strait off the end of the screw. So far I have made the coupler.... and kinda designed the rest.

I just finally figured out to calculate the degrees per step, and it occured to me. How are the feeds set? if I was to cut with X and A axis would I use a really slow feed on the A axis or does it calculate that? it says that the A axis will turn at 1800 degrees per minute, how would I use inches per minute?

I dont have the camera handy otherwize I would post some pics. I will have to get some up soon.


01-20-2005, 10:15 PM
Basically the control doesn't know what the feedrate is for a rotary since it depends on the diameter or radius of where the cutter is in relationship to the axis of the rotary.
So, how do controls cope with this you ask?
They use inverse time feedrate. Instead of specifying the feedrate you specify the inverse of the time to complete the command block.
Why use inverse time? You ask now....
Well that way, the smaller number is a slower feedrate, and the larger number is a faster feedrate. The post processor, or the programmer has to calculate the appropriate feedrate, knowing how far from the axis cernterline the tool is.

So, the short answer is, the programmer has to do the calculations.
And, all the controls that I have owned, and used rotary tables, will use regular feedrate. I don't know what the relationship was from feedrate in IPM to degrees per minute. But most jobs, I used the TLAR (*) method of setting the feedrate for the motion with the rotary table.

Most operations I have done with the rotary table though, was postioning the work, to machine multiple faces. Only a couple of jobs actually used rotary and linear motion combined.


01-21-2005, 04:23 PM
Thanks 3t3d, that helped some. I supose the next step is to get this thing finished and mount it up and play with it. I am assuming I still zero my tools at the top of the stock right? Do I do something to tell it how far it is from the center line?


01-21-2005, 07:02 PM
I just ran a job on the 4'th axis.
Every machinist will have a different way to touch off a part. Some will go on a holy war to convince you that their way is the best. It really depends on the part, and the starting stock etc. etc...

Some parts start with stock that is already machined on the bottom. In that case, I touch off the bottom of the ( vise, parrallels, fixture etc.) and then add in distance to reach the top of the part.
Some parts start out with oversize stock, and no reference to the bottom.. yet. For those, I touch off the top, and program the top of thepart below zero to account for the top being cut off. Or, I touch off the vise, parrallels, or whatever..

Last week I had a part in a fixture on the rotary axis.
This is setting it from A, Y, X. and Z.
I jogged the axis until a test indicator read zero front to back. Then I set the offset for the rotary to zero.
Next I touched off the front edge of the fixture. And noted the Y axis. I jogged the rotary to 180 degrees. And touched off the same point on the fixture, but now it is on the backside. The difference of thos two readings was the center of the fixture, on axis of the rotary.
Next I touched off an edge on the fixture to set the X axis.
Next I touched off a surface at 0 degreee for the rotary, jogged the rotary to 180 degrees, and the surface I touched off before is now upside down. So I clamped a parrallel to it, and touched off of it again. The difference is the Z height for the center of the rotary axis.
I could then set my Z height above that point to match what I needed.

So, it really depends on what your part looks like, and how you planned the job.
There are as many ways to do it as their are people to do it.

hope this gets some ideas going.


01-21-2005, 10:05 PM
Thanks, that definately got e somewhere.
Lets say I got 1/2" round stock sticking out of the chuck that will be on my rotary table and I want to cut a spiral.(just generic)
I set y zero centered in the stock and z zero on the top right?
for reference, I will say its a 1/8" ball mill 1/16" deep,
So the code would go something like this:

G0 X-.125 Z.1875 A0
G1 X0 F8
G1 X1 A360 F? (lets say I want to cut at 8 ipm, would I put 8 in there?)
then out

to make a full revolution of the table, I simply do A360 right?
lets say I want to do 2 turns, do I have to change the code to this:

G0 X-.125 Z.1875 A0
G1 X0 F8
G1 X.5 A360 F?
G1 X1 A? what do I put in here to tell it to keep spinning? do I have to use incremental coordinates instead of absolute?
then out

Thanks for the help,

01-22-2005, 09:49 AM
Well, it all depends on your controller doesn't it?
I can write:

N300 G01 A720. X1.0

And get two revolutions of the table.
What that does is "wind up" the table (or the control as you see it)
On one of my machines this code:
N310 G12 A0
Will not move the rotary, but it will cancel out the "wind up"
Example 1:

N400 G00 A720.
N410 G00 A-10.

Example 2:

N400 G00 A720.
N406 G12 A0.
N410 G00 A60.

In example 1, the table will spin for two revolutions, then reverse for two revolutions, plus reverse ten more degrees.
IN example 2, the table will spin for two revolutions, then forword 60 more degrees.

Again the control determines what G codes YOU need to use. Probobly not G10, maybe yes. Check your documentation, or better yet, experiment.

Now, what does the feedrate do to your rotary axis speed?
(Shrugs) I don't know. Experiment, or look at your documentation. See of you have inverse time feedrates, or if you just have to make some calculations, and submit a feedrate that does what you want.
You'll figure it out. I can tinker with parameters inside my control, and trick it into all kinds of behaviour. For example telling a different gear ratio from the motor to the table, and again lie to it about the number of encoder pulses.
Basicllay get something that works, and will be intuitive <__LATER ON__>

Hope this gets you going some more.

Pete ..... (which is 3t3d sideways, sort of)

01-22-2005, 05:05 PM
One more thing to talk about with a 4'th axis setup...
I want to shown wrong here.. Someone speak up on this point.

Any CAM software that I looked at that supports 4'th axis work does not support moving 4 axes at once. They only support positioning, and and at most three axis of motion, until you get into some failry high end CAD/CAM packages, maybe over $6,000. In fact when I was trying to solve a problem several vendors told me I had to go to a 5 axis package to get simulatanous motion in 4 axis.

The actual example that I had is the equivalent of rotating a crankshaft, and cutting tapered threads on one of the crankpins while it is spinnning. That does require four axes of motion simulatneously.


01-23-2005, 11:02 AM
Ok to do the C axis rotation with my 4 axis setup
I simply told it to go 1440 dgr and a linear move at the same time; if you specify the feed in that line it will feed the linear at the feedtrate and calculate the feed of the C axis to match the length needed to mill

So my command was simple
G01 C1440 X25(mm) F50
The software calculates the feed for the C to make the cut end at 25mm after 4 rotations
This is for TurboCNC

01-23-2005, 11:50 AM
I just tried a quick one for you bud

This is a G01 C360 F1.5 (IMP selected)
Stop action photo; can't believe my camera caught the cutter at 3000+ rpm and it looks dead still; good job the chips are flying or you'd never believe me


01-23-2005, 02:01 PM
Thanks a ton. New cameras do a great job of catching stuff still. I have seen 8000rpm fans be caught still.

About how fast does that guy turn when you give it that command? close to the equivalent of 1.5ipm linear?


01-23-2005, 02:07 PM
Nope seems slower
But how to measure it I have no clue

01-23-2005, 06:19 PM
Ok to do the C axis rotation with my 4 axis setup
I simply told it to go 1440 dgr and a linear move at the same time; if you specify the feed in that line it will feed the linear at the feedtrate and calculate the feed of the C axis to match the length needed to mill

So my command was simple
G01 C1440 X25(mm) F50
The software calculates the feed for the C to make the cut end at 25mm after 4 rotations
This is for TurboCNC

Thanks, this helps illustrate what I trying to explain. If you are cutting on the rim of a 150mm disk, and the X distance is 3mm, then the feedrate will be a LOT faster than you want. The control will calculate how fast it needs to complete the X move, but cannot possibly know how far from the axis the cut is happeneing. Therefore, the X distance will be at a feedrate of 50, but the rim speed to get in 4 rotations completed will be MUCH faster than the X travel. It may try to travel 3mm in X, but it will have to travel 1885mm on the rim to complete 4 revolutions. So, the cutting speed will be about 628 times faster than you specified with:
G01 C1440 X3 F50

So, for any significant offset from the centerline, or any short move in X or Y, combined with longer moves in A (or C), either the programmer or the POST needs to calculate the correct feedrate. Except for the case where the cutter is very near the centerline, it can be quite different than the feedrate would indicate. In those cases, specifying the time to complete the cut makes more sense.
And using the inverse of the time makes a smaller number feed slower, and a larger number feed faster. If your control supports inverse time.
And the control cannot possibly know what the radius is where the cut is happening. So the programmer or the POST needs to calculate the needed speed.

01-23-2005, 06:29 PM
this is what that cut
I have a horz 4th

01-23-2005, 06:46 PM

To your controller, everything is steps/sec, whether it is on a linear, or a rotary axis.

If you want to work in degrees, what you'll need to figure out, is "how much circumference on the work cylinder is subtended by one step of the indexer motor."

No matter what size cylinder you are working on, the minimum step angle is always the same. Supposing that your indexer ratio is 40:1 and your stepper takes 1000 steps/rev, then your minimum step angle on the indexer is 360/40000 = .009 degrees. This is a fixed constant.

Now, on a linear axis, with a .2" pitch screw, that same motor would have to output 5000 steps to move 1 inch. So 5000 steps/min = F1.0 inch/min on a linear X axis.

On a rotary axis, working on a 1" radius cylinder, at the same desired rate of F1.0 ipm, this would be 360/2Pi = 57.32°/min

57.32°/.009 = 6369 steps. So, to translate that into a feedrate in terms of the equivalent X axis feedrate, that would become 6369/5000 = 1.27 ipm (basis X axis)

That's one way.

Here is another: doubtless, there is a setting in your controller setup for steps/degree for a rotary axis? This is an assumption. And this sounds like a logical parameter to ask for if you are going to use your indexer only for positioning, but it doesn't help you much for feedrate during movements.

So, if you want to make feed movements with your rotary, then I would recommend that you experiment with changing the description of your 4th axis from "rotary" to "linear" in your controller setup. This is not a "one time deal" but rather something that you'll have to adjust for every different diameter of cylinder that you put in the indexer.

For a given job, you will calculate the circumference of the cylinder: lets say the radius is 1inch, so it is 6.28" long in circumference. Now, in your "linear" rotary axis parameter settings, you will enter a value in the steps/inch box of 40000/6.28 = 6369 steps/inch. If its a 2" radius cylinder, then 40000/12.57= 3182 steps/inch. This will allow you to use ordinary feedrates in your program that do not require further adjustment.

However, now you would not use angular commands to drive the indexer, but rather linear commands. I'm not sure how that would work with your cnc controller. If it always thinks A is rotary, regardless of your parameter settings, then it won't work to try this.

You may be interested to know that in so called "4th axis wrap" software, the part is laid out as if it were unrolled off the surface of the cylinder. However, the software only outputs angular values, and does not output the adjusted rotary feedrate. The indexer settings still require that an entry be made for the diameter of the part, before beginning the job. In this way, the Haas controller (for example) is able to interpret the feedrates correctly and apply them to the rotary axis.

Using the above method, you would not need a "4th axis wrap module" cadcam software. Simply use X, Y and Z, and substitute "A" for every instance of Y that is supposed to be done with the rotary axis. In most circumstances, you would not actually have to make any Y table movements except maybe for a single positioning move at the start and end of your programs.

I don't know if that helps or hinders you, but those are a couple of ways to look at the problem. I'm not an expert with this, hell, I haven't even run a rotary 4th axis yet, but I'd have to start from somewhere, and this is where I'd be at :)

01-24-2005, 12:14 AM
Thanks guys, I guess the next step is to finish up the mounting gear and get it running.

I mounted the rotary table to my mill today and its looking good. It has little aligning studs on the bottom, I have still yet to check and see if they at all acurate.

the only thing Im conserned about is coolant, I typically run flood coolant on all my stuff, this thing kinda gets in the way of everything when wanting to run that, I may end up using a pully setup to put the stepper motor behind the rotary table and make an enclosure so that I dont have problems like that, I will also have to set up some sort of home switch on it, Im not too sure how I will go about doing this yet. maybe Ill be able to mount something onto the back part of it.


01-24-2005, 12:29 AM
And in response to the 4'th axis wrap software option...
I had that option on my Bostomatic. I think you used a G25, or G26 to specify the diameter of the part you were going to work on. Then you could specify it to swap the A and Y axis. That all works fine as long as you are making a part such as a rotary die, which is what it was intended to do. If your part did not "wrap" onto a specific radius, but had features that varied on radius, the wrap software would not adjust the feedrate properly. For example a 'sculpture' like a chess piece.
Just trying to point out the pitfalls.
There is nothing like watching it spin and swoop making parts with the part roatitng and cutting though! Well worth the time to make it go.

01-28-2005, 06:38 PM
I just got my chuck adapter, heres a prelim pic, I havent got the stepper mounting situation figured out yet totally, I might just hang a 300ozin stepper strait off for the time being, but I wanna put a nema 23 272oz-in motor behind it with belts and all encased.