Quantcast
Channel: MTB Tech Blog
Viewing all articles
Browse latest Browse all 27

5-Axis Machining Demystified - Part One

$
0
0
As a general rule, 3-Axis CNC Programming and Machining is understood fairly well conceptually. All tool motion is defined by positions in 3D space represented by the Cartesian Coordinate System. The cutting tool axis is generally always parallel to the Z-Axis or perpendicular to (normal to) the XY Plane.

Continuous 5-Axis Programming & Machining increases the level of complexity as the cutting tool is no longer always perpendicular to (normal to) the XY Plane. 5-Axis has compound angular components that are represented by the angles of rotation about linear axes.

Continuous 5-Axis Machining has become more prolific with the advent of powerful PC based CAM Systems. While CAM has made it much easier to create 5-Axis tool paths, it has also created a problem in that it has disconnected many from the underlying mathematics that are the basis for all 5-Axis CNC Programming. We're about to change that. This article will be the first in a series dedicated to 5-Axis Machining.

In order to better understand 5-Axis we need to expand our technical vocabulary a bit. The first term we need to understand is the word Vector. Simply put, a vector is an abstract entity that indicates a direction. In 3-Axis Machining we already know that the cutting tool axis is always parallel to the Z-Axis or perpendicular to (normal to) the XY Plane. This direction is referred to as the Tool Vector. A Tool Vector is always referenced with its start point at the tip of the tool along its centerline. It is generally terminated with its end point at the tool gauge line - the intersection of the tool holder taper and the spindle taper.

Our Tool Vector has as start point and an end point. These points have X,Y,Z coordinates and are, by definition, located in 3D space. These locations are critical to the mathematics for 5-Axis. The distance between these two point is referred to as the Vector Length. The Vector Length is calculated by a formula that is represented below. 

Calculate 3D Vector Length from Coordinates

  • Point #1 = X0.0, Y0.0, Z0.0
  • Point #2 = X3.0, Y4.0, Z5.0
 
3D Length = 
SQRT ((X_P2 - X_P1) ² + (Y_P2 - Y_P1) ² + (Z_P2 - Z_P1) ²)
3D Length =  SQRT ((3) ² + (4) ² + (5) ²)
3D Length =  SQRT (9 + 16 + 25)
3D Length =  SQRT (50)
 
3D Length =  7.07106781 (Rounded to 8 places)

We now have a Tool Vector where we know the start point and end point as well as its length. Our next issue is how do we represent this information in a useful manner?
Since we are working in 3D space represented by the Cartesian Coordinate System, our start and end points are represented by the addresses X,Y and Z. Likewise, our Tool Vector can also be represented by its component values that are relative to the linear X, Y and Z axes. These component values typically use the addresses I, J and K. The relationship of the vector component is defined as the directional cosine. The directional cosines of a vector are the cosines of the angles between the vector and the three coordinate axes.

Calculate Vector Components ( I, J, K )
 
  • Point #1 = X0.0, Y0.0, Z0.0
  • Point #2 = X3.0, Y4.0, Z5.0
 
X Component Distance = 3
Y Component Distance = 4
Z Component Distance = 5
 
3D Length =  7.07106781
 
Vector I = (X Component Distance)/( Vector Length)
Vector I = 3 / 7.07106781
Vector I = 0.42426406 (Rounded to 8 places)
 
Vector J = (Y Component Distance)/( Vector Length)
Vector J = 4 / 7.07106781
Vector J = 0.56568542 (Rounded to 8 places)
 
Vector K = (Z Component Distance)/( Vector Length)
Vector K = 5 / 7.07106781
Vector K = 0.70710678(Rounded to 8 places)


For our next step, we'll want to double check our math as there is a very important rule governing our Tool Vector components. That rule is expressed by the equation below.


Verify Vector Components (I, J, K)
 
SQRT (I ² + J ² + K ²) = 1
SQRT ((0.42426406) ² + (0.56568542) ² + (0.70710678) ²) = 1
SQRT (0.17999999 + 0.31999999 + 0.49999999) = 1
SQRT (0.99999998) = 1 (Rounded to 7 places)

At this point you may be asking yourself why we're so concerned with the Tool Vector components? The reason is actually very simple. These Tool Vector components are used to calculate the Rotary Axis angles used in a 5-Axis CNC Program.
Our X,Y and Z axes are linear axes. Rotary Axis angles use the addresses A, B and C.
The A-Axis rotates about (parallel to) the X-axis.
The B-Axis rotates about (parallel to) the Y-axis.
The C-Axis rotates about (parallel to) the Z-axis.

We are now at the point where we must consider the type of 5-Axis CNC Machine that we will be programming.  Generally speaking, there are three types of 5-Axis CNC machines.

The first type is one where all rotary motion is within the spindle head. The rotary axes move to position the cutting tool at a defined vector about the workpiece. This type of machine is often referred to as a Head/Head or Profiling Head machine.

The second type is a machine where the workpiece is mounted to a rotary table which is, in turn, mounted to another rotary table. This type of machine generally has a fixed spindle that is always parallel to the Z-Axis or perpendicular to (normal to) the XY Plane. The rotary axes move to position the workpiece so as to align a defined tool vector to the spindle. This type of machine is often referred to as a Table/Table Machine or Dual-Rotary Table machine.

The third type is a machine which possesses elements of both previous types. This type of machine is often referred to as a Head/Table Machine . This type of configuration is typical found in Multi-Tasking Mill/Turn CNC Machines. To keep things simple, we are going to limit ourselves to the first two types.

Let's first deal with a Profiling Head machine and calculate the Rotary Axis angles for a typical Aerospace Profiling CNC. For this example we'll assume we are calculating the rotary angles for an SNK PC60-V 5-Axis CNC.


The SNK PC60-V 5-Axis CNC has a head configuration where the A-Axis is Primary and the B-Axis is Secondary. The SNK PC60-V has Rotary Axis Limits of +/- 25.0° .  For the purposes of our example, we will not concern ourselves with the physical limits of the machine. We will deal strictly with the mathematical requirements.

The Primary Mechanical Axis of Rotation for the Profiling Head is also Primary Mathematically. This means that the Primary Angle is calculated first.

The Secondary Mechanical Axis of Rotation for the Profiling Head is also Secondary Mathematically. This means that the Secondary Angle is calculated AFTER the Primary Angle as the Secondary axis of rotation is dependant upon where the PRIMARY axis of rotation is positioned.

Calculate Rotary Angles (A-Primary/B-Secondary) from Vector Components

Angle A = (ATN(Vector J/Vector K)*(-1))
Angle A = (ATN(0.56568542/0.70710678)*(-1))
Angle A = (ATN(0.79999999)*(-1))
Angle A = 38.660*(-1) (Rounded to 3 places)
Angle A = -38.660

Angle B = (ATN((Vector I/Vector K)*COS(Angle A)))
Angle B = (ATN((0.42426406/0.70710678)*COS(-38.660)))
Angle B = (ATN((0.59999999)*COS(-38.660)))
Angle B = (ATN((0.59999999)*0.78086672))
Angle B = 25.104 (Rounded to 3 places)

In our next segment, we will deal with the Dual-Rotary Table configuration.


Viewing all articles
Browse latest Browse all 27

Trending Articles