G93 - Inverse Time Feed Move Explained

Topics related to wrapped rotary machining in Aspire or VCarve Pro
Post Reply
User avatar
IslaWW
Vectric Wizard
Posts: 1402
Joined: Wed Nov 21, 2007 11:42 pm
Model of CNC Machine: CNC Controller Upgrades
Location: Bergland, MI, USA

G93 - Inverse Time Feed Move Explained

Post by IslaWW »

Now that rotary is becoming more mainstream and with the G93 function availability in a rotary post processor I thought I would post an explanation.

The technical definition:
Inverse Time Feed Mode (G93) feature specifies that all F (feedrate) values are to be interpreted as "strokes per minute." This is equivalent to saying that the F code value, when DIVIDED INTO 60, is the number of seconds that the motion should take to complete.

Rotary feedrates have never been easy to understand. Inches (or millimeters) per minute (second) converted into degrees per min/sec just adds to the rotary confusion. To make it even worse, various controllers handle the data differently when given the same feedrates.


In the example below, a 2" diameter blank is used and a vector is setup that spirals around the blank twice while traveling 10" in the axial direction.
G93 1.JPG
Gary Campbell
GCnC Control
ATC & Servo Controller Controller Upgrades
GCnC411 (at) gmail.com

User avatar
IslaWW
Vectric Wizard
Posts: 1402
Joined: Wed Nov 21, 2007 11:42 pm
Model of CNC Machine: CNC Controller Upgrades
Location: Bergland, MI, USA

Re: G93 - Inverse Time Feed Move Explained

Post by IslaWW »

This results in 2 motion components that the controller can use to interpolate the feedrate for the 2 axis move:

A linear distance of 10 inches, or 720 degrees of rotation, which at the surface of our 2" blank would be 12.57"

Some controllers don't calculate rotary feeds and simply use the 10" axial length and apply the 120 ipm (2ips) feedrate to the motion. Some controllers will realize that the 720 degrees should take longer and slow the axial move to the radial. In any case, since the controller does not know the diameter of the blank a totally accurate feed interpolation could not be done. Those with experience, have experimented and just find a reduced feedrate that is appropriate and use that.

Using the 2D unwrapped drawing below we can see the relative lengths of the vectors.
G93 2.JPG
Gary Campbell
GCnC Control
ATC & Servo Controller Controller Upgrades
GCnC411 (at) gmail.com

User avatar
IslaWW
Vectric Wizard
Posts: 1402
Joined: Wed Nov 21, 2007 11:42 pm
Model of CNC Machine: CNC Controller Upgrades
Location: Bergland, MI, USA

Re: G93 - Inverse Time Feed Move Explained

Post by IslaWW »

Enter G93 mode.

Since the CAM engine knows the length of the actual vector (hypotenuse) it can calculate a feedrate (inverse time) that is appropriate for the length of the vector. As you can see in the graphic below there can be some major differences between how controllers interpolate these feeds.


The first line shows the actual feedrate when only the axial (10") distance is used. Actual feedrate of 192 ipm

The second shows the actual when the axial is slowed for the radial (154 ipm)

The third shows the resulting actual programmed feedrate of 120ipm or 2ips when using the G93 feature in a post processor.

Of course this feature is not compatible with all controllers, but if you plan on using a rotary axis, you might want to see if it can work with yours and implement the feature into your rotary postP.
G93 3.JPG
Gary Campbell
GCnC Control
ATC & Servo Controller Controller Upgrades
GCnC411 (at) gmail.com

Tailmaker
Vectric Wizard
Posts: 698
Joined: Sun Jun 16, 2013 4:40 am
Model of CNC Machine: Home Built 4-axis Router
Location: Fort Collins, CO

Re: G93 - Inverse Time Feed Move Explained

Post by Tailmaker »

Thanks Gary, good explanation!
I did experiment with the new G93 option and, while it works in priciple on my (older) Planet-CNC controller, it works only well with simple shapes (long vector spans). When the vectors are complex with many nodes (like text), the motions become jerky and the overall time takes longer than without G93. I checked with the developer of the controller and it seems to be related to the continuously changing feedrate (speed and acceleration time has to be recalculated from F-word for each Gcode line) which is too much for the micro of this older controller. Oh well, I wanted the new controller anyway.

Post Reply