# Feed calculations in CAM-POST

Have you ever wondered how CAM-POST calculates feed rate values?

The first step in computing the machine feed is to determine the velocity of the cutter as defined by the CAM system. The distance of the move (from one GOTO to the next) divided by the programmed feed (from the FEDRAT command) gives us the time to make the move. GENER performs this calculation two times – once at the tool tip and again at the tool top (by default 1 CLDATA unit higher along the tool or as defined by the FEDRAT/LENGTH command). GENER chooses the longer time of the two.

Once the time to make the move is known, GENER next computes the delta move requirements for any physical axis of the machine that is moving. GENER adjusts the time if necessary to ensure that all axes can move within their maximum feed rate limits as defined in the QUEST Linear Axes and Rotary Axes sections. GENER also increases the time if necessary to meet the minimum block read time limitations, if any, as defined in the QUEST Output Format section.

At this point we have now determined the time to make the move that respects the physical limitations of the machine. The next step is to output the time using the required machine feed format (e.g., G93, G94, G95).

• Inverse time (G93) feed is the simplest of all. The feed code is computed as 1 (one) divided by the time, adjusted if necessary to fit within the min~max range of allowable values.
• uPM (G94) feed is defined as “machine distance” divided by “time”. The time has already been calculated. The distance is calculated as the square root of the sum of the squares of the axes that are moving.
• On a linear-only move, the distance is the length of the combined motion of the linear axes.
• On a rotary-only move, the distance is the combined degrees of the rotary axes, provided that the rotary axis supports a “dpm controllable” feed a s defined in the QUEST Rotary Axes section.
• On a combined linear-rotary move, the determination if the rotary move is included in the distance calculation is controlled by the “rotary displacement included in feed calculation” QUEST Rotary Axes section question.

Once we have the machine distance, the feed code is computed as this distance divided by the time, adjusted if necessary to fit within the min~max range of allowable values.

• uPR (G95) feed uses the same method as uPM above to first determine the machine distance. The feed code is computed as this distance divided by the time, further divided by the spindle RPM, and adjusted if necessary to fit within the min~max range of allowable values.

If the required feed can not be met because of machine or controller limitations, then the limitation that has the most significant effect on the feed will be diagnosed by GENER. E.g.

Warning: Programmed tool velocity decreased due to … feed rate limitation.

When in RTCP mode, all of the feed rate calculations remain the same, except the “machine distance” calculation, which will only include the linear axes as defined at the tool tip regardless if the rotary axes are moving or not. If you add a “FEDRAT/LENGTH,0” command to the start of the NC program or post-processor startup macro, the machine feed code under RTCP should closely match the programmed FEDRAT value.

Lastly, when “radial distance registers” are defined for rotary axes, the effect of the rotary movement is not included in the “machine distance” calculations. GENER outputs the distance from the rotary pivot to the tool tip in a radial distance register, which the control uses to adjust the feed.

Benefit to User
Understanding CAM-POST feed rate calculations can take some of the mystery out of post-processing.