The SAFETY Command [MLC]
The SAFETY command controls the safe positioning analysis feature. This command is valid for contouring machines, lathes and mills. The following SAFETY command functions are available:
Modal Safety Setting
OFF turns the safe positioning feature off. All axes that are capable of positioning together on a block will do so.
ON re-enables the last specified safety setting.
RECALL restores the default state of the safe positioning feature as it was defined in QUEST by the post-processor developer.
Safe Positioning Motion Squaring
The ON keyword activates the safe positioning feature. The OPTION couplet can be used to define the method of safe positioning. OPTION,1 uses a CL frame based analysis to determine the clearance plane or planes. This is the form of safe analysis used by GENER prior to V16 and is included for compatibility with existing post-processors. OPTION,2 uses a machine frame based motion analysis to determine the clearance plane. This is the default.
NEXT is a non-modal form of safe positioning that will occur on the next motion only.
The XYPLAN, YZPLAN and ZXPLAN keywords override the default logic that attempts to determine the traverse plane and plunge direction. XYPLAN forces the analysis of plunge motion to be along the Z axis, regardless of tool vector or rotary axis alignment. Similarly, YZPLAN and ZXPLAN force the analysis of plunge motion along the X and Y axes respectively. TLVEC (the default) uses the tool axis vector (OPTION,1) or machine head orientation (OPTION,2) to determine the plunge direction for safe motion analysis.
Safe Positioning Motion Splitting
This axis specific form of safe positioning defines a specific order of output of the machine axes over multiple NC code blocks for the next or all subsequent positioning motions.
Specify NEXT as the first parameter on the command to define a non-modal motion split pattern that applies to the next positioning motion only. Omit the leading NEXT keyword to modally apply motion splitting to all subsequent positioning motions.
The safety split motion pattern can contain any combination of axes motions, RTCP settings, tool length compensation settings and local coordinate system settings. The interpolation mode can also be forced to rapid or a specified feed positioning velocity on individual split motion blocks.
Each occurrence of the NEXT keyword (with the exception of an optional leading NEXT) indicates a forced break to a new block of NC code. If there is nothing to be output, then NEXT has no effect.
Specify a list of one or more axis keywords identifying the axes to be moved together on a positioning motion block, followed by the NEXT keyword, to indicate a break to a new positioning motion block. Multiple sets of “*AXIS[,*AXIS…],NEXT” can be specified, to define a safe motion that is split over multiple blocks. Note that any unreferenced axes that are required to move or be output will be output together on the first motion block. See here for a table correlating axes name keywords with machine axes. Specify LINEAR to move all active linear axes; Specify REV to move all active rotary axes.
Note that only those axes that are required to be output will be output. The SAFETY command does not force axes to be output that are not moving or that would not be output on a “normal” positioning motion. Specify ALL to force the listed axes to be output for the current block.
Each axis can be moved at most one time over the entire safe split motion. However, the current position of any axis can be output as many times as required by using the NOW keyword.
This defines a change in RTCP status equivalent to coding a MODE/RTCP command (see “Rotating Tool Center Point”). ON is assumed if RTCP is coded alone.
This defines a change in tool length compensation status equivalent to coding a CUTCOM/ LENGTH command (see “Length Compensation”). ON is assumed if LENGTH is coded alone. The optional SET,type couplet defines the tool length compensation type on machines where there are multiple length compensation types defined. If omitted, the last type will be used.
This defines a change in local coordinate system (LCS) status equivalent to coding an LCS command (see “The LCS Command”). ON is the equivalent of LCS/NOW; OFF the equivalent of LCS/OFF. ON is assumed if LCS is coded alone.
RAPID indicates that the axes on the split motion block are to be output using rapid positioning (e.g. G00). FEED indicates a positioning feed motion at the specified velocity (e.g. G01). These override the CLDATA defined velocity of the positioning move for a single split motion block only. These velocity overrides must be specified with axes definitions to have any effect.
Example:
SAFETY/NEXT, RAPID,XAXIS,YAXIS,ALL,NEXT, LENGTH,ZAXIS,ALL
The above command will apply to the next RAPID or high feed positioning motion in the program, It will force out the X and Y axes on the first block using rapid positioning, and force out the Z axis with tool length compensation on the second block at the CLDATA defined velocity (i.e., either RAPID or high feed positioning).
Safe Positioning Path Selection
The SAFETY/ROTATE command provides a means of overriding the default rotary axes behavior during various types of positioning motions. GENER’s default positioning behavior is to choose a rotary axis solution (also known as a pose, or a path) that results in the least amount of rotary axis motion. GENER may however choose an alternate solution that has a greater (i.e., longer) rotary axis motion so as to avoid an overtravel condition, or due to LIMIT/ORIENT command preferences, or due to path-planning optimizations.
The following SAFETY/ROTATE options can individually force GENER to choose the pose resulting in the least amount of rotary axis motion, regardless of other considerations, on specific types of positioning motions. Each option can individually be turned ON or OFF. All options are OFF by default at the start of post-processing.
TLVEC,ON forces the shortest rotary solution on any positioning motion where there is no change in tool axis vector.
RETRCT,ON forces the shortest rotary solution on any positioning motion where there is no change in tool axis vector and the positioning motion is directly along the tool axis (i.e., a retract or plunge motion).
OPTION,1,ON forces the shortest rotary solution on any positioning motion processed while the $RAPLIN macro variable is in a $TRUE state.
OPTION,2,ON forces the shortest rotary solution to be applied to both RAPID and high feed positioning motions (see FEDRAT/RAPID), for any option that is active.
ALL,ON enables all of the above options; ALL,OFF disables all of the above options.
This command enables (ON) or disables (OFF) the positioning path override functionality, without affecting individual options.