4th axis wrapping in the post

4th axis wrapping in FeatureCAM causes rotary motion of the part, while the tool is cutting. A simple example of this might be engraving letters on the outside of a cylinder. However, FeatureCAM can wrap any feature, including surface milling features around the fourth axis.

To support wrapping, a test for the logical word <WRAP> and the necessary lines should be added to the Program Start, Tool Change, and Segment Start formats as well as the feed formats (Linear and In_Macro Linear). It is not necessary to add the 4th-axis support blocks to the Circular Move formats because all arc moves are broken into linear moves when the wrap feature is enabled.

The following is an example of a Linear format for a Bridgeport Torq-Cut mill that wraps around the Y axis. Note that in the wrapping case, a rotation is used for what would be a Y move in the non-wrapping case.

<IF><COMP-START><THEN>
{N<SEQ>}<COMP-STAT>X<$X-COORD>Y<$Y-COORD><EOB>
<ENDIF>
<IF><WRAP><THEN>
{N<SEQ>}{<MOTION>}{X<X-COORD>}{C<ROT1-MATH>}{Z<Z-COORD>}
{F<ANG-DPM>}<EOB>
<ENDIF>
<IFNOT><WRAP><THEN>
{N<SEQ>}{<MOTION>}{<COMP-STAT>}{X<X-COORD>}{Y<Y-COORD>}
{Z<Z-COORD>}{F<FEED>}<EOB>
<ENDIF>

Wrapping requires special consideration in the Rapid Move format. To prevent a collision between the tool and part during rotation, the tool must be withdrawn from the part before the rotation takes placed. Since the control does not normally test for this case, XBUILD includes two logical reserved words which are used only to test for the wrap setting and the rapid move condition. The Rapid Move format then includes both of these words <WRAP-Z-UP> and <WRAP-Z-DOWN>, and is implemented in the following way:

<IF><WRAP-Z-DOWN><THEN>
{N<SEQ>}{<MOTION>}{C<ROT1-MATH>}<EOB>
{N<SEQ>}{X<X-COORD>}{<COOLANT>}<EOB>
{N<SEQ>}{Z<Z-COORD>}<EOB>
<ENDIF>
<IF><WRAP-Z-UP><THEN>
{N<SEQ>}{<MOTION>}{Z<Z-COORD>}<EOB>
{N<SEQ>}{C<ROT1-MATH>}<EOB>
{N<SEQ>}{X<X-COORD>}{<COOLANT>}<EOB>
<ENDIF>
<IFNOT><WRAP><THEN>
{N<SEQ>}{<MOTION>}{X<X-COORD>}{Y<Y-COORD>}
{Z<Z-COORD>}{<COOLANT>}<EOB>
<ENDIF>