Thursday, May 21, 2009

Traori & Nurbs

Traori and nurbs often get lumped together in discussions of 5-axis aerospace machining as if they are two sides of the same coin. They are not. They are two coins.

Nurbs is a b-spline algorithm.

Traori is a compensation function associated with 5-axis aerospace contouring.

With regards to Traori, as the CNC directs the tool tip to interpolate a curve in XYZ space it simultaneously changes the orientation so that the tool axis interpolates the orientation vector (typically the surface normal). Traori anticipates that the change in orientation will swing the tool tip off the contour. Traori compensates for this by superimposing incremental displacements on the linear axes. This happens in real time, simultaneously, in the interpolation cycle, roughly 500 corrections per second, so the tool tip is driven back to the contour at the same rate it swings off of the contour. Thus, Traori holds the tool tip invariant to changes in orientation.

Traori stands for Transformation [for] Orientation.

Traori can be observed quite readily. MDI Traori with an active tool and jog one of the orientation axes. You will see the linear axes go into motion to hold the tool tip stationary. The rotation pivots around the tool tip (or tool center point whichever you set).

As I have already said, nurbs is a b-spline algorithm that interpolates a curve. The algorithm acts on the geometry of the part program to render piecewise continuous parametric polynomial interpolation functions. The CNC samples these functions on a time grid, typically every 2 milliseconds, to output incremental setpoints to the position control loops (to the servos). This latter is what it means to say that the CNC directs the servos to cause the tool to interpolate a curve in the work envelop of the machine.

Note the double instance of interpolation. The algorithm interpolates the geometry of the program blocks to produce functions that are sampled by the CNC to direct the cutting tool to interpolate a path in the work envelop of the machine.

Nurbs is a member of the same modal G-code group as G01. G01 creates a straight line interpolation function for every block. Nurbs creates an polynomial interpolation function across many blocks.

Now for the zinger . . .

No one I know posts to nurbs block format. Programmers are still converting design’s splines – produced by nurbs algorithms in their CAD workstations – to polylines and posting the vertexes to linear blocks. To the extent that workpiece programmers systematically use a spline algorithm they program CompCurv or CompCad ahead of the linear blocks. Both produce 5 degree polynomials. Siemens recommends using CompCurv unless you need the acceleration smoothings of CompCad.

CompCurv/CompCad are not members of Group 1 since they have to see G1 blocks. Still, CompCurv/CompCad employ a variant of the b-spline algorithm to render piecewise continuous parametric polynomials from the points of the linear blocks. The software of the CNC innards that sample this function cannot tell which b-spline algorithm produced it, the nurbs or the CompCurv/CompCad algorithm

Given that CNC workers tend not to understand interpolation algorithms and parametric polynomials, nurbs has becomes a catchword for polynomial methods generally. I suspect that when most CNC workers talk about nurbs they are not making reference to the nurbs of control points, weights and knots.

So, there you have it, while nurbs and Traori would be discussed in an 840D seminar on 5-axis aerospace contouring, they are two separate coins and not two sides of the same coin.

0 comments:

Post a Comment