You are on page 1of 246

VERICUT Macros

Go to CGTech Help Library


VERICUT Macros
Macros - listed alphabetically
The macros which can be referenced via groups in the Word/Address window, and the
"Events" advanced control options are listed below in alphabetical order.

NOTES:
1. Use of the Probe macro requires a CNC Machine Probing license.
2. For information on special keywords CGTECH_MACRO and CGTECH_VAR
REAL, see About Simulating Subroutines in the Using VERICUT section.
Using VERICUT can be found in the CGTech Help Library.

Tip: Use the Debug Macro Arguments feature to see the macro name, the word, the
text string value, and the numeric value for the macro being called.

Shortcut: Click on a letter below to go directly to the macros that start with that letter.
Numbers A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

3dToolOffset
Renamed to: Tool3dOffset
3dToolXOffset, 3dToolYOffset, 3dToolZOffset
Renamed to: Tool3dXOffset, Tool3dYOffset, Tool3dZOffset

Numbers A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

A2AxisIncreMotion
Similar to AAxisMotion except it ignores the Absolute/Incremental mode setting, and
increments by the value specified.
A2AxisMachineMotion
Similar to AAxisMotion, except it ignores all transformations and is used to move a
component to an absolute position within the machine coordinate system. A macro exists
for each motion axis: A, B, C, A2, B2, C2, X, Y, Z, U, V, W.

VERICUT Macros

A2AxisMachineRefMotion
Same as its A2AxisMachineMotion counterpart, except it also adds in the offset from
the Machine Reference Location (ref. Machine Reference Location table in the Tables
for Processing G-Codes section, in the CGTech Help Library). Thus, motion is relative to
the machine's reference location.
A2AxisMotion
Sets the A2 value used to command the machine's A2 rotary component. A macro exists
for each motion axis: A, B, C, A2, B2, C2, X, Y, Z, U, V, W.
AAxisIncreMotion
Similar to AAxisMotion except it ignores the Absolute / Incremental mode setting, and
increments by the value specified.
AAxisMachineMotion
Similar to AAxisMotion, except it ignores all transformations and is used to move a
component to an absolute position within the machine coordinate system. A macro exists
for each motion axis: A, B, C, A2, B2, C2, X, Y, Z, U, V, W.
AAxisMachineRefMotion
Same as its AAxisMachineMotion counterpart, except it also adds the offset from the
Machine Reference Location (ref. Machine Reference Location table in the Tables for
Processing G-Codes section, in the CGTech Help Library). Thus, motion is relative to the
machine's reference location.
AAxisMotion
Sets the A value used to command the machine's A rotary component. A macro exists for
each motion axis: A, B, C, A2, B2, C2, X, Y, Z, U, V, W.
AbBlockInit
Initializes Allen-Bradley specific variables. This macro should be called along with the
standard BlockInit macro at the "Start" or "Block Processing" event.
AbsoluteShift
Shifts the work coordinate system by the specified axis values. The values will be
interpreted as absolute. Any axis value which is not specified is assumed to be zero.
(Shift Offset 0, ABSOLUTE/NON-MODAL).

VERICUT Macros
See "Notes about shift macros" in the Notes about Special Topics section, in the
CGTech Help Library, for additional information.
AbsoluteShiftModal
Shifts the work coordinate system by the specified axis values. The values will be
interpreted as absolute. Only values specified on the block will be adjusted. (Shift Offset
0, ABSOLUTE/MODAL)
See "Notes about shift macros" in the Notes about Special Topics section, in the
CGTech Help Library, for additional information.
AbsoluteShiftNum
Shifts the work coordinate system by the specified axis values. The values will be
interpreted as incremental or absolute depending on the current state, incremental
(ModeIncremental) or absolute (ModeAbsolute), of the control. Only values specified
on the block will be adjusted. (Shift Offset 1, ABSOLUTE/MODAL or
INCREMENTAL)
See "Notes about shift macros" in the Notes about Special Topics section, in the
CGTech Help Library, for additional information.
ABType2CLS
An Allen Bradley, Type II, subroutine call with no arguments. Same as Type2CLS,
except it strips all characters starting with the "/" character. For example:
(CLS,027sta/hd) would call subroutine file "027sta".
AccelTakeoffFactor
Controls the length of the accel block output during optimization for motions in a corner.
When called with an Override Value greater than "0", OptiPath outputs an accel block
when suitable. A value of "0" (default) causes the accel block to not be output. The value
passed represents a % override to apply to the calculated length for normal accel block
output. For example, a value of "1.0" specifies that 100% of the calculated accel block
length should be used, while "0.5" uses 50% of the calculated length.
ActivateAxis
Marks this axis as active for this subsystem. Used with InActivateAxis on synchronized
turning tool paths to avoid conflict with Stock/SubStock rotaries. Is passed the numeric
value of the axis (1-12) or a text value of "All" to activate. Each axis is associated with a
numeric value as follows:
1 = X axis
2 = Y axis
3 = Z axis

VERICUT Macros
4 = A axis
5 = B axis
6 = C axis
7 = U axis
8 = V axis
9 = W axis
10 = A2 axis
11 = B2 axis
12 = C2 axis
All = All axes will be activated.

NOTE: When an axis is activated, it will pick up the current location of the axis and
offset from the machine. This logic does not take into account rotation matrices that
might be applied.
ActivatePreToolSubsystem
Calls ActivateToolSubsystem with the component number that was pre-selected with
PreToolCompSelect.
ActivateToolSubsystem
Activates the tool component based on the specified numeric value (Override Value =
tool index) and the current subsystem.
ActivateSpindle
Activates the Tool component with "Tool Index Number" equal to the value specified by
the SpindleValue macro. Intended to replace the ActiveTool1-5 macros.
ActiveSpindleActiveTool
This macro sets the active spindle component name based on the active tool. The "active
tool" is either the tool component that has been marked as active, or the first tool
component in the machine list. If this active tool has a corresponding spindle component,
this component will be marked as the active spindle component. If the active tool does
not have a corresponding spindle component, then the active tool component will be
marked as the active spindle component. This component will then be used to store the
spindle attributes (speed, minimum speed, maximum speed, on/off, and direction). The
active spindle must be set prior to setting any spindle attributes.
See "Notes about Spindle Configuration in V6" in the Notes about Special Topics
section, in the CGTech Help Library, for additional information.

VERICUT Macros

ActiveSpindleCompName
Sets the active spindle component name based on the incoming Override Text value. This
component will be used to store the spindle attributes (direction, speed, minimum speed,
maximum speed, on/off, and direction). The named component can be either a spindle
component or a tool component. The active spindle must be set prior to setting any
spindle attributes.
See "Notes about Spindle Configuration in V6" in the Notes about Special Topics
section, in the CGTech Help Library, for additional information.
ActiveSpindleDir
This macro sets the spindle direction to either clockwise or counterclockwise for the
active spindle component. If the text value is set to CW, the direction will be set to
clockwise. If the text value is set to CCW, the direction will be set to counterclockwise.
This macro does not turn the spindle on. It only sets the direction attribute.
The ActiveSpindleDir macro takes into consideration part side/tool side, the settings of
Disable Auto Direction and Reverse Direction, in the Modeling window, Component
Attributes tab, when determining which direction is CW. Under certain conditions the
spindle direction may be reversed.
Internally, VERICUT always uses the right hand rule to determine clockwise (clock
direction is defined by looking in the negative Z axis direction). The above macro will be
used to convert from NC world to VERICUT world.
The following matrices show under what conditions the direction will be reversed.
Part Side Spindle

Reverse Direction "On"


Reverse Direction "Off"

Disable Auto Direction "On"


direction reversed

Disable Auto Direction "Off"


---------------

---------------

direction reversed

Disable Auto Direction "On"


direction reversed

Disable Auto Direction "Off"


direction reversed

---------------

---------------

Tool Side Spindle

Reverse Direction "On"


Reverse Direction "Off"

VERICUT Macros
The active spindle must be set prior to calling this macro. See ActiveSpindleCompName
and ActiveSpindleActiveTool.
See "Notes about Spindle Configuration in V6" in the Notes about Special Topics
section, in the CGTech Help Library, for additional information.
ActiveSpindleMaxSpeed
This macro sets the maximum speed for the active spindle component to the input value.
The active spindle must be set prior to calling this macro.
See ActiveSpindleCompName and ActiveSpindleActiveTool.
See "Notes about Spindle Configuration in V6" in the Notes about Special Topics
section, in the CGTech Help Library, for additional information.
ActiveSpindleMinSpeed
This macro sets the minimum speed for the active spindle component to the input value.
The active spindle must be set prior to calling this macro. See ActiveSpindleCompName
and ActiveSpindleActiveTool.
See "Notes about Spindle Configuration in V6" in the Notes about Special Topics
section, in the CGTech Help Library, for additional information.
ActiveSpindleOnOff
This macro turns the active spindle component On or Off. A value of zero turns it Off,
and a value of one turns it On. This can correspond to either the stock spindle or tool
spindle. The active spindle and its corresponding children will be spun. It will also cause
an APT "SPINDL" statement to be generated, and the status to be updated.
See "Notes about Spindle Configuration in V6" in the Notes about Special Topics
section, in the CGTech Help Library, for additional information.

NOTE: The spinning status of a stock component determines whether this stock is in
"Turning" or "Milling" mode. The active spindle must be set prior to calling this macro.
See ActiveSpindleCompName and ActiveSpindleActiveTool.
ActiveSpindleSpeed
This macro sets the spindle speed for the active spindle component. This macro does not
turn the spindle on. It only sets the speed attribute. If the spindle is already turned on,
then it will cause an APT "SPINDL" statement to be generated, and the status to be
updated. The active spindle must be set prior to calling this macro.
See ActiveSpindleCompName and ActiveSpindleActiveTool.

VERICUT Macros
See "Notes about Spindle Configuration in V6" in the Notes about Special Topics
section, in the CGTech Help Library, for additional information.
ActiveTool
Activates the Tool component with "Tool Index Number" equal to the value specified by
this macro. Intended to replace the ActiveTool1-5 macros, and support using more than
five tool positions on a machine.

NOTES:
1. If the machine contains multiple subsystems, it is recommended that you use the
ActivateToolSubsystem macro rather than this macro.
2. If you are running in SYNC mode, it is required that you use the
ActivateToolSubsystem macro rather than this macro.
ActiveTool1, ActiveTool2, ActiveTool3, ActiveTool4, ActiveTool5
Activates the Tool component with "Tool Index Number" of 1-5, respectively.

NOTES:
1. If the machine contains multiple subsystems, it is recommended that you use the
ActivateToolSubsystem macro rather than this macro.
2. If you are running in SYNC mode, it is required that you use the
ActivateToolSubsystem macro rather than this macro.
AdditionalWorkCoord
Updates the work coordinate system based on values retrieved from the Work Offsets
table (see the Tables for Processing G-Codes section, in the CGTech Help Library). The
work coordinate index is used as an index into this table.
AlarmSignal
Similar to ErrorMacro, except it concatenates the Override Text string and Override
Value. It also looks to see if the "if condition" (if present) was true. This produces a
simple generic alarm message with an error code:
Error: <Override Text>: <Override Value>
ApplyGageOffset
This macro provides an approach to using Tool Length Compensation mode. The concept
is the gage offset is not applied until G43 is entered, and is canceled when G49 is entered.
When called with an Override Value of "1", the gage offset will be applied regardless of
what programming mode you are in. The default Override Value is "0". Prior to the

VERICUT Macros
calling of this macro, the gage offset would not be applied if you are in Gage Length or
Tool Length Compensation programming mode (ref. Project menu > Processing Options
> G-Code > Settings: Settings tab).
The approach would look like the following:
1. G43 calls ApplyGageOffset with Override Value = "1" (to apply the gage
offset)
2. G49 calls ApplyGageOffset with Override Value = "0" (to cancel the
application of the gage offset)
3. H calls ToolOffsetUpdate
ApplyGagePivotOffset
This macro is passed a value of 0 or 1. The default value is 0. When set to 1, it will cause
the tool offset to include the distance from the active tool to the rotary pivot. The rotary
pivot is being defined as the origin of the first parent rotary (if there is only one), or the
intersection of the axes of the first 2 rotary components up from the tool (if there are
more than one tool side rotary component). If there are two or more parent rotary
components, and if the axes do not intersect, the rotary pivot point is defined as the
second parent rotary. Compensation for the tool offset typically occurs with a call to
ToolOffsetUpdate. This feature can now be used with RTCP. When used with RTCP,
this Gage Pivot Offset will be used rather than the RTCP Pivot Offset. Being in RTCP
mode is not a requirement to activate this offset.
The ApplyGagePivotOffset approach is the preferred method for handling the tool to
pivot offset. It has many advantages over the traditional approach. The advantages are all
associated with the new approach establishing a "relational" offset (pivot point to current
active tool). As described above, this approach assumes a specific pivot point based on
the machine configuration. In some cases, this pivot point might not be the pivot point
that you want to define. In these instances use PivotOffsetCompName to define the
component containing the desired pivot point.
Using ApplyGagePivotOffset sets the Gage Pivot Offset flag for all subsystems.
ApplyGagePivotOffsetCurrent
This macro is identical to the ApplyGagePivotOffset macro except that it sets the Gage
Pivot Offset flag only for the current subsystem.
ApplyPivotOffset
Specifies whether the RTCP Pivot Offset should be applied. A value of 1=YES, 0=NO.
When YES, the controller will compensate for the pivot distance when running in RTCP
mode. The pivot distance can be specified with the RTCP Pivot Offset table (see the
Tables for Processing G-Codes section, in the CGTech Help Library). If the table is not
specified, it will be calculated based on the location of the Tool and its corresponding
Rotary components.

VERICUT Macros

NOTE: Even with this flag being set to YES, the RTCP Pivot Offset will only be
applied if in RTCP mode, or in a special FanucToolLengthCompAxisOn mode.
ApplyRotationPlaneWithIjk2Abc
Sets a flag specifying whether the current rotation plane should be applied to the IJK
vector associated with the IJK to ABC conversion.1 = Yes, 0 = No. The default is No.
ApplyTurretOffset
Automatically applies a turret offset to the gage offset a tool in use. The turret offset is
the distance from the active tool component to the turret component. This allows tool
components to be connected at their actual location on the Turret component without
having to include this distance in each tool's gage offset values. This macro should be
called during the "Start of Processing" event with an Override Value of "1" (on) or "2"
(on except for when the gage offset is set to "0 0 0"). "0" is the default, and does not
apply the turret offset.
Also see: ToolOffsetUpdate
ArcAccelFeedrateFactor
Sets a factor that will be used when calculating the maximum feedrate when processing
an arc. This is used with the ACCEL/DECEL logic within OptiPath. The default for this
factor is one. The formula to be used is: Feedrate = sqrt(acceleration * radius * factor).
AutoScanOff
Turns off the "automatic" setting of the Scan Toolpath Files flag when a subroutine file is
specified. This macro needs to be called during the "Reset" event.

NOTE: Subroutine files will always be scanned.


AutosetCutterCompVars
Reads the Cutter Compensation table (see the Tables for Processing G-Codes section,
in the CGTech Help Library) and sets system variable values based on table values. This
macro is passed the starting variable number as an Override Value. For example: if the
starting variable number is set to "2000", and index 5 in the table is set to ".2", variable
#2005 will be set to .2.
Also see: "Notes about system variables" in the Notes about Special Topics section, in
the CGTech Help Library.

VERICUT Macros
AutosetTableAxisVars
Updates system variables based on current table values (re-reads table values). This
macro is passed a series of arguments in the Override Text field. Arguments are as
follows (separated by spaces):
table name
starting index value
ending index value
starting variable value
variable offset per index
variable offsets for axes: x y z a b c u v w

NOTE: Unused axes to the right do not need to be specified. Unused axis in the middle
should be specified with a "-1".
Examples:
The following defines the work offsets for a Fanuc 15MB with a 4-axis NC machine
where the B-axis is defined as the 4th axis (x,y,z are 1,2,3):
Override Text = Base Work Offset 1 1 5200 20 1 2 3 -1 4 (Note that "-1" represents
the unused A-axis in this machine.)
Override Text = Work Offsets 54 59 5220 20 1 2 3 -1 4
Override Text = Work Offsets 1 48 7000 20 1 2 3 -1 4
The following loads registers 1-300 from the Cutter Compensation table (see the
Tables for Processing G-Codes section, in the CGTech Help Library) into variables
starting at #2000

NOTE: This is only an example, typically you would call AutosetCutterCompVars).


Override Text = Cutter Compensation 1 300 2000 1 1
Also see: "Notes about system variables" in the Notes about Special Topics section, in
the CGTech Help Library.
AutosetToolLengthCompVars
Reads the Tool Length Compensation table (see the Tables for Processing G-Codes
section, in the CGTech Help Library) and sets system variable values based on table
values. This macro is passed the starting variable number as an Override Value. For
example: if the starting variable number is set to "4000", and index 5 in the table is set to
"10", variable #4005 will be set to 10. The setting of the variables is based strictly off the
table and is NOT dependent on programming method or Input Program Zero table (see
the Tables for Processing G-Codes section, in the CGTech Help Library).
Also see: "Notes about system variables" in the Notes about Special Topics section, in
the CGTech Help Library.

VERICUT Macros

AutoUpdateIPZ
This macro is passed the text of the parent component name of the assembly that is being
attached to or removed from the main machine assembly. Use the Override Text field to
specify the component name. The offset will be calculated based on the difference
between the origins of the parent component (top of the component list) and the lowest
level child component of the associated assembly.
The Override Text field is also used to pass a value of 1 or -1 to add or subtract the autocalculated values from the internal Input Program Zero (Special Z) table (see the
Tables for Processing G-Codes section, in the CGTech Help Library) offset.

NOTES:
1. This DOES NOT change any of the table values. The new value for IPZ (Special
Z) can be seen using Modals/Debug/Debug Offsets.
2. This macro should probably be executed after motion or on a block by itself.
Also, since the internal value for Input Program Zero (Special Z) is being
modified, this method will probably not work when running in Tool Length Comp
mode.
AutoUpdatePZ
This macro is passed the text of the parent component name of the assembly that is being
attached to or removed from the main machine assembly. Use the Override Text field to
specify the component name. The offset will be calculated based on the difference
between the origins of the parent component (top of the component list) and the lowest
level child component of the associated assembly.
The Override Text field is also used to pass a value of 1 or -1 to add or subtract the autocalculated values from the internal Program Zero table (see the Tables for Processing
G-Codes section, in the CGTech Help Library) offset.
AxisMappingXtoU
This macro maps the programmed X-axis to the machines U-axis. It is designed for use
when a U-axis facing head is programmed with X-axis commands. An Override Value
of "1" turns the mapping "On" and an Override Value of "0" turns the mapping "Off".
AxisPriorityOnOff
Turns On and Off the settings in the Axis Priority table. If passed a value of 0, the Axis
Priority setting will be turned off, and all axes will be interpolated, and have the same
priority. If passed a value of 1, the Axis Priority settings will be used.

VERICUT Macros
Numbers A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

B2AxisIncreMotion
Similar to BAxisMotion except it ignores the Absolute/Incremental mode setting, and
increments by the value specified.
B2AxisMachineMotion
Similar to BAxisMotion, except it ignores all transformations and is used to move a
component to an absolute position within the machine coordinate system. A macro exists
for each motion axis: A, B, C, A2, B2, C2, X, Y, Z, U, V, W.
B2AxisMachineRefMotion
Same as its B2AxisMachineMotion counterpart, except it also adds the offset from the
Machine Reference Location (ref. Machine Reference Location table in the Tables for
Processing G-Codes section, in the CGTech Help Library). Thus, motion is relative to the
machine's reference location.
B2AxisMotion
Sets the B2 value used to command the machine's B2 rotary component. A macro exists
for each motion axis: A, B, C, A2, B2, C2, X, Y, Z, U, V, W.
BaseWorkOffsetValues
Sets the base work offset-an offset that is added to any current work offset. The XYZ
offset is specified with the WorkCoord[axis]Value macros.
BAxisIncreMotion
Similar to BAxisMotion except it ignores the Absolute/Incremental mode setting, and
increments by the value specified.
BAxisMachineMotion
Similar to BAxisMotion, except it ignores all transformations and is used to move a
component to an absolute position within the machine coordinate system. A macro exists
for each motion axis: A, B, C, A2, B2, C2, X, Y, Z, U, V, W.
BAxisMachineRefMotion
Same as its BAxisMachineMotion counterpart, except it also adds in the offset from the
Machine Reference Location (ref. Machine Reference Location table in the Tables for
Processing G-Codes section, in the CGTech Help Library). Thus, motion is relative to the
machine's reference location.

VERICUT Macros

BAxisMotion
Sets the B value used to command the machine's B rotary component. A macro exists for
each motion axis: A, B, C, A2, B2, C2, X, Y, Z, U, V, W.
BiDirVarsAbsIncr
Sets the coordinate mode of bi-directional variables to absolute, incremental, or G-Code
(1,2, or 3). This controls how the bi-directional variable's value is applied to update the
table positions. G-code uses the current NC program mode for absolute or incremental.
Default is Absolute.
If a Text Override value of "Work Offsets" or "Base Work Offset" is used, the setting
applies only to this specific table. Otherwise, this setting applies to all tables.
BiDirVarsApplyOnOff
Controls "when" the tables updated by bi-directional variables are applied. A value of "0"
means the table is updated, but the offset is not applied until the NC program specifically
activates it. Any other value turns processing "ON", meaning the updated offset table is
applied (if the offset is active) whenever the bi-directional variable changes. Default is
OFF. This feature is currently only supported with the Work Offset and Base Work
Offset tables.
BiDirVarsModeOnOff
Sets processing of bi-directional variables ON/OFF. A value of "0" turns processing
"OFF" , a value of 1 turns processing "ON", and a value of 2 turns processing "ON" but
only for the fully supported tables (currently Work Offset and Base Work Offset). Bidirectional variables are defined by the AutosetTableAxisVars macro during initial
events. During NC program execution, the tables associated with bi-directional variables
are updated whenever the NC program changes the variable's value. Default is OFF.
BlockFinish
Default event macro for the "End of Block Processing" event.
BlockInit
Default event macro for the "Start of Block Processing" event.
BlockSkipAnywhere
Allows the block skip character to be anywhere in the block. This macro should be called
during the "Reset" event with an Override Value of "1". When active, the block will be
processed up until the block skip token is read. The remainder of the block will then be
skipped.

VERICUT Macros

NOTE: This macro should only be used when the block skip character can not be
interpreted as anything except a block skip character. It should not be used when this
token could also mean divide.
BlockSkipSwitch1
Controls when block skip Switch 1 is on or off (ref. Project menu > Processing Options
> G-Code > Settings: Block Skip tab). An Override Value of "1"=On, "0"=Off.
BlockSkipSwitchOff
Turns off the specified Block Skip switch. Valid values are 0-9. (ref. Project menu >
Processing Options > G-Code > Settings: Block Skip tab).

NOTE: In the GUI, switch 1 actually sets switch 0 and switch 1. With these macros,
you must explicitly set the switches that you want on or off. The defaults are the GUI
settings.
BlockSkipSwitchOn
Turns on the specified Block Skip switch. Valid values are 0-9. (ref. Project menu >
Processing Options > G-Code > Settings: Block Skip tab).

NOTE: In the GUI, switch 1 actually sets switch 0 and switch 1. With these macros,
you must explicitly set the switches that you want on or off. The defaults are the GUI
settings.
BoschType2CYCLE
Sets the ZAxisMotion, the CycleRapidLevelValue, and the CycleStepValue based on the
format of a Bosch Type II Cycle command.

Numbers A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

C2AxisIncreMotion
Similar to CAxisMotion except it ignores the Absolute/Incremental mode setting, and
increments by the value specified.
C2AxisMachineMotion
Similar to CAxisMotion, except it ignores all transformations and is used to move a
component to an absolute position within the machine coordinate system. A macro exists
for each motion axis: A, B, C, A2, B2, C2, X, Y, Z, U, V, W.

VERICUT Macros

C2AxisMachineRefMotion
Same as its C2AxisMachineMotion counterpart, except it also adds in the offset from
the Machine Reference Location (ref. Machine Reference Location table in the Tables
for Processing G-Codes section, in the CGTech Help Library). Thus, motion is relative to
the machine's reference location.
C2AxisMotion
Sets the C2 value used to command the machine's B2 rotary component. A macro exists
for each motion axis: A, B, C, A2, B2, C2, X, Y, Z, U, V, W.
CallNCMacro
Sets up the variables for calling a Fanuc style NC macro in the machine code input file.
The machine code macro which is called is specified with the SubroutineName macro.
This macro is also dependent on the calling of the MacroVar macro for setting the
parameters which are to be passed to the subroutine. Up to 150 variable values can be
passed by a call to an NC macro.
CallNCMacroBlock
Sets the mode to call an NC Macro on every block.
CallNCMacroCancel
Cancels the mode set with CallNCMacroBlock and CallNCMacroMotion.
CallNCMacroMotion
Sets the mode to call an NC Macro on every block with motion.
CallSub
Calls the machine code subroutine specified via the SubroutineName macro.
CallSubCurrent
Calls the subroutine or program that is currently being processed. Typically this is
combined in the control configuration with some type of GOTO sequence number of
label.
CallSubName
Calls the machine code subroutine specified with the input value.

VERICUT Macros
CallTextSubName
Similar to CallSubName, except the subroutine name is interpreted as text, regardless of
the Type of Subroutine Names control setting. Use the Configuration menu > Word
Format function, to define a "SubroutineName" word that takes an alpha-numeric
argument.

NOTE: It is critical that the value type be set to Alpha-Numeric. Then use
Configuration menu > Word/Address to configure the SubroutineName macro to call
this macro.
For additional information on the Word Format window and the Word Address
window, see the VERICUT Help section in the CGTECH Help Library.
Cancel3dToolOffset
Cancels the 3D Tool Correction offset.
Also see: Tool3dOffset.
CancelAllWorkOffsets
Cancels the shift offset (Fanuc G92), the work coordinate offset (G54-59), and the Base
offset (MAHO).
CancelShiftOffsets
Cancels the shift offset (Fanuc G92).
CancelWorkOffsets
Cancels the work coordinate system offset (G54-59)
CAxisIncreMotion
Similar to CAxisMotion except it ignores the Absolute/Incremental mode setting, and
increments by the value specified.
CAxisMachineMotion
Similar to CAxisMotion, except it ignores all transformations and is used to move a
component to an absolute position within the machine coordinate system. A macro exists
for each motion axis: A, B, C, A2, B2, C2, X, Y, Z, U, V, W.
CAxisMachineRefMotion
Same as its CAxisMachineMotion counterpart, except it also adds in the offset from the
Machine Reference Location (ref. Machine Reference Location table in the Tables for

VERICUT Macros
Processing G-Codes section, in the CGTech Help Library)). Thus, motion is relative to
the machine's reference location.
CAxisMotion
Sets the C value used to command the machine's C rotary component. A macro exists for
each motion axis: A, B, C, A2, B2, C2, X, Y, Z, U, V, W.
CGTechVarDefMacro
This macro provides the ability to define variables. The corresponding "word" will be
added to the Word list. This word will be removed at reset, and will not be written to the
control file. A value of 0 will define the variable(s) as local. Any other value will define
the variable(s) as global. The syntax of the text value is identical to the Sinumeric 840D
DEF format.
For example:
OV= 1 OT=REAL PPP[15]
In the above example, PPP would be defined as a variable name, and it would be defined
as a single dimension array variable with an array size of 15.
The primary purpose of this macro is to define global system array variable in the start of
processing event, and thereby define the variable in the control. It is common to set
variables during the start of processing event. If the variable is not defined, it will be
created. An array variable can not be created when set in this manner because of the
dimension of the array is not given. This macro allows array variable to be defined in the
start of processing event. Since all macros called in the start of processing event are
stored in the control file, this macro allows array variables to be defined in the control
file.
ChangeSubsystemID
Changes the subsystem that the current controller is driving based on the input text value,
and updates all of its local axis locations. The difference between ChangeSubsystemID
and SetSubsystemID is that ChangeSubsystemID keeps the current "control" active and
just changes which subsystem is being driven. SetSubsystemID changes the active
"control" to be the one which drives the specified subsystem.
ChangeWorkCoord
Defines the current position as the specified XYZ value. This is an incremental shift from
the current working coordinate system. Any XYZ value not specified is assumed to be
zero.
See "Notes about shift macros" in the Notes about Special Topics section in the CGTech
Help Library, for additional information.

VERICUT Macros
ChangeWorkCoordZWTracking
When in absolute mode, it defines the current position to be the specified position. Only
those values specified will be adjusted. Z or W values honors ZW tracking. When in
incremental mode, the offset will be adjusted by the amount specified.

NOTE: The specified positions are entered using the


WorkCoord[x,y,z,a,b,c,u,v,w,a2,b2,c2]Value macros.
CheckForLooseMaterial
Causes VERICUT to check for loose material that should be removed. This macro
triggers VERICUT to perform a check where the detached stock pieces should be
transferred, in the same manner as it is done in turning. If no stock component supporting
a loose piece is found, it is deleted and put into the "Unclamped Stock" component. A
value of 0 = Off, 1 = turns on the check on for every block after the macro is called, 2 =
performs a one-time check as described above. This macro only applies to milling mode.
It has no effect in turning mode.

NOTE: To enable the loose material check, Update While Simulating, in the Delete
Material window, must be toggled "On". If it is not, this macro will have no effect.
For information on the Delete Material window, see the VERICUT Help section, in the
CGTech Help Library.
CinciBlockInit
Cincinnati specific macro that sets internal values used by CinciCondLeftParen,
CinciCondRightParen, CinciCondLeftBracket, and CinciCondRightBracket
conditional functions. This macro should be called along with the standard BlockInit
macro at the "Start or Block Processing" event.
CinciGotoLabelName
Branches to the label specified via Override Text value. If the specified label is preceded
by a "-", then this macro will search backwards from the current position for the specified
label (not including the "-"). Otherwise, it will search forward from the current position
for the specified label.
Also see: LabelMacro and GotoLabel
CinciRotateCenterCalc
Calculate the center of rotation based off of the specified center and the mode set by
CinciRotateXYZMode.

VERICUT Macros
CinciRotateXYZMode
A, Cincinnati (Acramatic 950) specific, macro that sets a parameter which indicates how
rotation center positions should be interpreted.
Cinci_5axisToolLengthComp
Turns On/Off a special Cincinnati form of 5-axis tool length compensation. A value of
1=On, 0=Off.
CircleCenterReset
Resets the XYZ coordinates of the center of a circle.

NOTE: The CircleCenter[XYZ] values are assumed to be modal. This macro resets
these values.
CircleCenterX, CircleCenterY, CircleCenterZ
Sets the XYZ coordinates of the center of a circle, respectively. The Circles control
settings determine how these values are interpreted.
CircleCenterZWTracking
Identical to CircleCenterZ except provides additional calculations required by ZW
tracking machines.
CircleCurveFitQuadrants
Specifies that circular records produced during curve fitting be broken at quadrant
boundaries.

NOTE: This macro should be used during the "Start of Processing" event. Default when
not used is OFF.
CircleDirectDrive
Turns On and Off (default) the capability to drive the cutting motion of a circle by the
actual tessellated motions of the machine. A value of 1 turns on this feature, and a value
of 0 turns off this feature. If the circle motion for the machine does not match the circle
motion for the stock, this macro can be called with on OV=1 to directly pass the
tessellated motions to the cutting logic. If the tessellated motions equate to a circle, the
cutter logic will process the tessellated motions as 1 circular move. Otherwise, it will be
processed as a series of tessellated linear moves.

VERICUT Macros
In the following instances, the circle motion for the machine may differ from the circle
motion for the stock:

When distinguishing 0 degree vs 360 degree circles.


When interpreting the direction of the circle in part coordinates.
Using the LinkAxis macros where X drives Y and Y drives X, which then causes
the reversal of circle direction.
Using the LinkFormula macro with circles.

Also see: "Notes about link macros" in the Notes about Special Topics section, in the
CGTech Help Library.
CircleIntermediatePoint
This macro defines an intermediate point for a circle. The text value should be either X,
Y, or Z. This specifies which axis point is being specified. The numeric value should be
the corresponding axis value. The axis values are modal, and are initialized to zero at
reset and when Motion3DCircle is called.

NOTE: A new "3D_CIRCLES" value for the MOTION_TYPE state has now been
created. This can now be seen in the status window (motion type), and in the
Word/Address table (State/MOTION_TYPE menu).
CirclePresentAxis
When called with Override Value of "1", supports processing circles using the linear
axes present in the circle motion block. This macro should be called during the "Start of
Processing" event, and is intended for use by controls on NC machines that have colinear
axes and perform circular motions.
Examples follow:
G2Y1.1242X-25.7855I.1171J.7743 (circle motion performed by Y & X linear
axes)
G2Y1.1242U-25.7855I.1171J.7743 (circle motion performed by Y & U linear
axes)
CircleRadius
Sets the radius of a circle. A negative value specifies that an arc of at least 180 degrees
should be generated.
CircleRadiusLarge
Sets the radius of a circle such that an arc of at least 180 degrees will be generated. The
input value is sign independent.

VERICUT Macros
ClampCompName
Specifies the name of a clamp component (text value). This macro is typically used to
clamp parts during pick-off spindle operations.
Also see: ClampOnOff.
ClampOnOff
Specifies the state of the clamp specified with ClampCompName. A value of 0 is Off, a
value of 1 is On. This macro is typically used to clamp parts during pick-off spindle
operations.
In general, at the end of ProcessMotion, VERICUT checks to see if there was a change
in clamp state (On/Off). If there was, all stock components are examined. If the stock's
parent fixture is still "clamp on", VERICUT does nothing. If the stock's parent fixture is
"clamp off", VERICUT checks to see if there is any other fixture component whose
boundaries overlap the cut stock and whose state is "clamp on". If so, and the new fixture
component contains a stock component, then the cut stock will be transferred to the new
stock component. If there is nothing holding the stock anymore, it is dropped into the
chip pan ("Unclamped Stock" component).
If ClampOnOff changes from 0 to 1 for the Fixture specified by ClampCompName,
VERICUT checks the bounds of all "cut stock" models on the active subsystem. If any
are inside the bounds of the models in the Fixture Component, the Fixture "clamps" the
"cut stock". However, the "cut stock" does not transfer to the new Stock Component, yet.
If ClampOnOff state changes from 1 to 0 for the Fixture Component specified in
ClampCompName, the "cut stock" model is released from that Fixture. If the "cut stock"
is also clamped by another Fixture (see ClampOnOff above) then the cut stock is
transferred to the Stock Component attached to the clamped Fixture Component. If it is
not clamped by any other Fixture, it disappears, falls in the chip pan, flies through the
window, etc. Actually it is dropped into the "Unclamped Stock" component. This
component is automatically created.
If in turning mode and the "cut stock" is separated into two pieces, each piece is checked
for a clamped condition. If each piece is clamped by a different Fixture, then the stock is
separated into 2 "cut stock" models, one in the Stock component attached to each
clamping Fixture. Thus you end-up with a "cut stock" model in the original Stock
component, and a "cut stock" model in the another Stock component. If either piece is
"floating" in the air when separated, they drop into the chip pan (aka Unclamped Stock).

NOTE: Clamp macros do not change the component connections. They just move the
"cut stock".

VERICUT Macros

CollisionCheckOnOff
This macro allows machine simulation collision checking to be temporarily suspended
and restarted. The CollisionCheckOnOff macro is ignored when Collision Detection, on
the Configuration menu > Machine Settings: Collision Detect tab, is toggled "Off".
Machine simulation collision checking is turned "Off" when used with an Override
Value of "0", and "On" when used with an Override Value of "1".
CollisionDiagonalSize
For performance reasons, a diagonal collision check logic has been added. This logic can
make collision checking for large diagonal moves much more efficient. In theory, it could
slow down some jobs. To disable this performance feature, call this macro with a value of
zero.
This macro can also be used to adjust what is a "large" diagonal move. The default is a
move of at least 1 inch or 25 mm on at least 2 axes.
CollisionOnCutPart
Controls when collisions between machine components and the cut model are checked
for. By default, collisions are detected when collision checking is turned on between the
Stock and machine components. Collision checking can be turned off via calling this
macro with an Override Value of "0", while "1" turns collision checking on again.

NOTE: "Near Miss" tolerances are not supported for collision checking against the cut
model. The accuracy of collisions with the cut stock is dependent on the "Cutting
Tolerance".
CollisionSpecialComp
Turns on/off special collision processing for the named component. This routine should
only turn on special processing if the component contains a large number of triangles and
if rotations are involved, and there are other components which typically come close to
this component, but stays outside of its bounding box.

NOTE: In general, this macro should not be called. It should only be called to
overcome a collision performance issue related to the scenario described above. This
macro was created for the very special case described. In these types of cases using this
macro could improve performance. In most cases, general use of this macro will cause
degradation in performance.
ConditionalEndOfBlock
If the previous conditional was true, this macro will cause nothing further to be processed
on this block. If the previous condition was false, it resets the condition to true, and
continues processing the block.

VERICUT Macros
For example:
!IFR<49.5;EB!IFR>50.5;EB!GON20!
EB would call the ConditionalEndOfBlock macro.
ConnectCompName
Used with ConnectToCompName to dynamically connect two components within the
Component Tree. Use ConnectCompName to specify the component to be connected.
Everything under the component in the component tree goes with it. Specify the
component name in the Override Text field.
ConnectToCompName
Connects the component specified with the ConnectCompName macro to the
component specified by the ConnectToCompName macro. It can be any type of
component. Everything under the "ConnectCompName" component in the component
tree comes with it. Specify the component name in the Override Text field.

NOTE: Connect macros only move components around. They do not change the models
in the components.
Example:
To have "M10" connect a component named "Stock" to a "U" axis component, use the
Configuration menu > Word/Address function to define 2 groups as follows:
Word=M Range=10, Macroname=ConnectCompName, Override Text=Stock
Word=M Range=10, Macroname=ConnectToCompName, Override Text=U
For more information on the Word Address window, see the see the VERICUT Help
section, in the CGTech Help Library.
ConstantSurfaceSpeed
Sets the Constant Surface Speed.
ConstantSurfaceSpeedMode
Sets the current mode to Constant Surface Speed.
ConversionFinish
Default event macro for the "End of Processing" event. Typically, added event macros
should be placed before this macro.

VERICUT Macros

ConversionInit
Default event macro for the "Start of Processing" event. Typically, added event macros
should be placed after this macro.
CoolantFlood
Sets the coolant type to "Flood" outputs the APT "COOLNT/FLOOD" statement.
CoolantMist
Sets the coolant type to "Mist" and outputs the APT "COOLNT/MIST" statement.
CoolantOff
Turns off the coolant and outputs the APT "COOLNT/OFF"statement.
CoolantOn
Turns on the coolant and outputs the APT "COOLNT/ON" statement.
CornerMode
Defines the type of "auto-corner" to be generated, if any.
Options are:
0 - for NONE
1 - for CHAMFER
2 - for RADIUS
The auto-corner capability uses "look ahead" logic for both CHAMFER and RADIUS.
The resulting values are then passed on to cutter compensation logic. Corner RADIUS is
only supported in the XY, YZ, or ZX planes. If the specified corner can not be achieved,
a warning message is given and auto-cornering is ignored for that corner.
CornerValue
When in CHAMFER mode, this macro defines the length from the programmed corner to
the point at which the chamfer is to begin. In RADIUS mode, this defines the radius to be
used in the corner. The start and end points of the arc will be calculated such that the arc
is tangent to the cut coming into and out of the arc. In both cases, the original corner (as
defined in the tool path) must be defined with two line segments.
CoupleAxisOn
CoupleAxisOn, CoupleAxisOff are used to control "coupling" of two motion axes,
where commands to drive one axis, drives both axes.

VERICUT Macros
CoupleAxisOn is passed an Override Text value in the form: "X1 X2". The first
argument in the name of the master component, the second argument is the name of the
slave component. After this call is made, any time the master component moves the
corresponding delta movement will be applied to the slave. At this point, the feature is
very limited. A master can have only one slave. This feature is currently only
implemented for linear motions. Unpredictable results may occur if circle records are
processed while in this mode.
CoupleAxisOff
CoupleAxisOff cancels the coupling affect for the specified master component. This
macro is passed the master component name as the text value. After turning the coupling
off, the subsystem that was in a wait state while its corresponding components were
being moved, should then call UpdateAxisValues.
CurveFitOnOff
Curve fitting can be selectively turned on and off by embedded comments in the G-code
file being processed. The embedded comments must contain the exact text "TURN
CURVE FIT ON" and "TURN CURVE FIT OFF". This macro can also be used to toggle
curve fitting. An Override Value of "1" turns curve fitting ON and an Override Value
of "0" turns curve fitting Off. To use this macro, the text of two unique comments must
be defined as a control words. The CurveFitOnOff macro with an override is associated
with the ON and OFF message. CurveFitOnOff is ignored when curve fitting is not
active.
CutterComp3d
Turns on 3-D Cutter Compensation.
Also see: Tool3dXOffset, Tool3dYOffset, Tool3dZOffset, Unitize3DVector,
CutterCompOff
CutterCompDoubleLong
Increases the movement amount by twice the tool offset value. The offset will be applied
to each axis in which there is movement. (not modal)
Also see: ShortLongOffsetReset
CutterCompDoubleShort
Decreases the movement amount by twice the tool offset value. The offset will be applied
to each axis in which there is movement. (not modal)
Also see: ShortLongOffsetReset

VERICUT Macros

CutterCompOffHold
If the CutterCompOffHold value is 0, then process G40 command with or without
motion on line.
If the CutterCompOffHold value is 1, then process G40 command with motion on line
immediately or hold G40 command until line with motion is encountered.
CutterCompLeft
Sets the cutter compensation to be Left.
Also see: CutterCompRight, CutterCompOff
CutterCompLong
Increases the movement amount by the tool offset value. The offset will be applied to
each axis in which there is movement. (not modal)
Also see: ShortLongOffsetReset
CutterCompOff Turns off the cutter compensation.
Also see: CutterCompRight, CutterCompLeft, CutterComp3d
CutterCompOffLookAheadX
CutterCompOffLookAheadY
CutterCompOffLookAheadZ
Specify where the next XYZ point is on the part (not the next GOTO point). These
macros are called while ramping off of cutter compensation. These values are used to
avoid gouging the part while ramping off. Look ahead cutter compensation will use these
values to determine if the previous compensated point needs to be adjusted.
CutterCompOffsetValue
Uses the passed in numeric value as an index into the Cutter Compensation table (see
the Tables for Processing G-Codes section, in the CGTech Help Library). The
corresponding value (singular) is used when processing CDC short/long commands (e.g.
G45-G48). For this macro to work, the G45-G48 word/value pairs must be found in the
control configuration ahead of the XYZ registers. For example, try defining these
word/addresses in the "States" supergroup.
CutterCompRight
Sets the cutter compensation to be Right.
Also see: CutterCompLeft, CutterCompOff

VERICUT Macros
CutterCompShort
Decreases the movement amount by the tool offset value. The offset will be applied to
each axis in which there is movement. (not modal)
Also see: ShortLongOffsetReset
CutterCompSuspend
Temporarily suspends radius compensation for one block. It must be called with Process
after Motion toggled "On". This macro was implemented to support the Heidenhain M98
open contours function, but might have other applications.
CutterCompToolNum
Uses the current tool number to index into the Cutter Compensation table (see the
Tables for Processing G-Codes section, in the CGTech Help Library). The corresponding
value is used as the compensation amount when CDC is turned on.
Also see: CutterCompToolNumSubValue.

NOTE: The current tool number refers to the tool number that is specified in the MCD
file (T1M6, T0101, &), NOT to the Tool Id that is specified in the TLS file which is a
string.
CutterCompToolNumSubValue
Uses the current tool number and the specified SubValue (SubRegister) to index into the
Cutter Compensation table (see the Tables for Processing G-Codes section, in the
CGTech Help Library). The corresponding value is used as the compensation value when
CDC is turned on.
Also see: CutterCompToolNum.

NOTE: The current tool number refers to the tool number that is specified in the MCD
file (T1M6, T0101, &), NOT to the Tool Id that is specified in the TLS file which is a
string.
CutterCompValue
Uses the passed in numeric value as an index into the Cutter Compensation table (see
the Tables for Processing G-Codes section, in the CGTech Help Library). The
corresponding value (singular) is used when in cutter compensation mode (e.g. G41,
G42).
CutterCompValueDirect
Sets the cutter compensation value to the input value. The corresponding value is used as
the compensation amount when CDC is turned on.

VERICUT Macros
CutWire
Cut/remove the EDM wire. This will output a "LOADTL/0" statement.
CycleBoreShiftFlags
The boring cycles support 5 areas in which a shift may occur.
These are:
Value 1

Value 2

Value 3

Value 4

Value 5

Prior to
beginning the
drill cycle

After
moving to
the R plane

After moving to
the "bottom"
position

After moving
back to the R
plane

After moving
back to the
retract position

This macro is passed 5 values (each representing one of the possible shift areas as
indicated above), separated by blank spaces, in the Override Text field. These 5 values
specify whether a shift should occur, and the direction of the shift.
0 = No Shift
1 = Shift Positive Direction
-1 = Shift Negative Direction
For a simple boring cycle, the Override Text value might look like: 0 0 -1 0 1
For a back boring cycle, the Override Text value might look like: -1 1 -1 0 1
CycleBoreShiftValue
This macro is passed a positive value corresponding to the length of the shift that should
be applied during boring cycles. This shift will occur along the tools X axis (as defined in
Tool Manager prior to any orientation matrix).
CycleBoreSpindleOnOffFlags
This command specifies the spindle condition in 10 different positions. The positions are:
either side of the shifts defined in the CycleBoreShiftFlags macros.
For a simple boring cycle, the Override Text value might look like: 1 1 1 1 0 0 0 0 0 1

NOTE: This command will turn on and off the spindle that has been set with the
SpindleCompName macro.
CycleClearanceDistance
Sets the cycle clearance distance. This overrides the default control setting.

VERICUT Macros
CycleDepth
Sets the Cycle Depth value.
CycleDepthInv
If the Cycle Depth is to be interpreted as an absolute value, the Cycle Depth value is set
to the input value. If the Cycle Depth is to be interpreted as an incremental value, the
Cycle Depth value is set to the negated input value.
CycleDepthType
Specifies how the Cycle Depth is to be interpreted.
1 = Absolute value
2 = Incremental value
3 = G-Code dependent
CycleDwellTime
Sets the dwell time for a cycle. Dwell time is measure in revolutions or seconds
(dependent on the feed mode).
CycleIgnore
Sets a flag which causes the cycle to not be executed on the current block.
CycleIncDepthType
Sets how an incremental Cycle Depth value is to be interpreted.
1 = Relative to the Rapid Level
2 = Relative to the Initial Level
3 = Relative to the Part Surface
CycleIncRapidType
Sets how an incremental Cycle Rapid value is to be interpreted.
1 = Relative to the Rapid Level
2 = Relative to the Initial Level
3 = Relative to the Part Surface
CycleInitialOnMotion
Specifies whether the cycle "Initial Point" should be initialized on each motion.
0 = FALSE (Default)
1 = TRUE

VERICUT Macros
CycleMillCenterAbscissa
Center abscissa for milled threads in the active motion plane.
CycleMillCenterOrdinate
Center ordinate for milled threads in the active motion plane.
CycleMillPocketAngle
Sets the rotation angle in degrees with respect to the positive X-axis for a rectangular
pocket.
CycleMillPocketBottomAllowance
Sets the amount of bottom stock to remain after roughing motions. The remaining bottom
stock is removed during finishing motions.
Also see: CycleMillPocketSideAllowance
CycleMillPocketBottomZ
Sets the depth for the pocket specified by a Z-axis position.
CycleMillPocketBoundarySub
Sets the subroutine number used to define the pocket's boundary. The macro
CycleMillPocketType must be used with an Override value of 2 when a subroutine
defines the pocket boundary.
CycleMillPocketCenterX
CycleMillPocketCenterY
Sets the center (or drill hole) location for a rectangular or circular milled pocket.

NOTE: Controls that use the current tool location for the pockets center do not need to
reference these macros.
CycleMillPocketCornerRadius
Sets the corner radius for a rectangular pocket and the major radius for a circular pocket.
Default is tool radius.
CycleMillPocketCutDirection
Sets the cut direction for conventional or climb milling. Also sets cut direction for
circular pockets to CLW or CCLW. An Override Value of 0, or 2, selects a
conventional, or CLW, direction. An Override Value of 1, or 3, selects a climb, or

VERICUT Macros
CCLW, direction. Some controls use the sign of the stepover to define the cutting
direction. For these controls, use an Override Text of SIGN to set the direction as CLW
when the value is positive and CCLW when the value is negative.
CycleMillPocketCutType
Sets the type of motions for the pocket.
Override Value:
0 = a lacing pattern (climb and conventional),
1 = single direction conventional cuts with retracts between cuts,
2 = a lacing pattern with finish cuts,
3 = an inside-out pattern, and 4 for finish bottom and sides (no roughing).

NOTE: Use macro SiemensCycleMillPocketCutType for Siemens controls.


CycleMillPocketDepth
Sets the relative depth for the pocket from top of the stock to bottom of the pocket.
CycleMillPocketFinishFeed
Sets the cutting feedrate for finishing pocket motions. Default is 1/2 of the roughing
feedrate.
CycleMillPocketFinishStepover
Sets the X or Y in-feed between finishing pocket cuts.
CycleMillPocketInsideRadius
Sets an inside radius for circular pockets when a pre-drilled hole at the pocket center is
used. Default is zero.
CycleMillPocketLength
Sets the length along the X-axis for a rectangular milled pocket.
CycleMillPocketMaxCutDepth
Sets the maximum in-feed depth for each pocket level until final pocket depth is reached.
CycleMillPocketPlungeFeed
Sets the in-feed feedrate along the Z-axis for plunging into the material.

VERICUT Macros
CycleMillPocketRefPlane
Sets the absolute Z-axis position for the top of the pocket stock.
CycleMillPocketRetractPlane
Sets the absolute Z-axis position where cycle motions will start and end.
CycleMillPocketRoughFeed
Sets the cutting feedrate for roughing pocket motions. Defaults to last feedrate in effect
when cycle is called.
CycleMillPocketSafeDistance
Sets the distance above the pocket stock to the retract plane.
CycleMillPocketSideAllowance
Sets the amount of side stock to remain after roughing motions. The remaining side stock
is removed during finishing motions.
Also see: CycleMillPocketBottomAllowance
CycleMillPocketSpeed
Sets the spindle speed used with the pocket cutting motions.
CycleMillPocketStepover
Sets the X or Y in-feed between roughing pocket cuts. When used with an Override Text
value of PERCENT, the value passed is defined as a percent of the tool diameter and the
step-over is calculated as a percentage of the current tool diameter. Use an Override
Text value of X, or Y, with the HAAS control to define the cut stroking direction.
CycleMillPocketType
Selects the type of pocket and processes the cutting motions.
Override Value:
0 = rectangular,
1 = circular
2 = boundary is defined in a subroutine.
The CycleMillPocketType macro must be called after all other pocket parameter macros
have been called. The HAAS control uses a subroutine to define the pocket boundary.
Use an Override Value of two (2) for the HAAS control.
Use an Override Text value of "AS_COMMANDED" to execute the pockets from a
"CALL CYCL" command. The default for the CycleMillPocketType macro is to execute

VERICUT Macros
the pocket when this macro is processed. When the override is present, the cycles are
later executed AS_COMMANDED.
See "Notes about simulating Heidenhain SL pocket cycles" in the Notes about Special
Topics section, in the VERICUT Help Library, for additional information.
CycleMillPocketWidth
Sets the width along the Y-axis for a rectangular milled pocket.
CycleMillThread
Activates thread milling cycle. Must be called after all parameters are set or with the
after motion option.
CycleMillThreadDir
Direction for milled threads. Value is 2 for CW or 3 for CCLW (defaults to 2 if not
specified).
CycleMillThreadFeed
Feedrate for milled threads.
CycleMillThreadID
Nominal inside diameter of the thread. (See Siemens 840D CYCLE90 documentation)
CycleMillThreadOD
Nominal outside diameter of the thread. (See Siemens 840D CYCLE90 documentation)
CycleMillThreadPitch
Sets milled thread pitch.
CycleMillThreadToolTeeth
Sets milled thread count of teeth on tool. Some tools cut several threads per revolution.
This count allows cycle to adjust the depth accordingly.
CycleMotionPlaneCheckOnOff
This macro turns on and off the error checking of the tool axis being along the Z-axis of
the local plane when a cycle is executed.

VERICUT Macros

NOTE: Not all controls require this. Therefore, this error checking must be turned on.
By default, it is off.
CyclePresentAxis
Similar to CirclePresentAxis. This macro sets a flag which specifies whether or not to
use the axis present on the cycle command as the motion axis.
If set to 0 (the default), the X, Y, and Z axes will always be used (with the exception of
ZW tracking). The tracking whether the U or V axis is present for the cycle is initialized
to not-present during reset and whenever a cycle command is specified.
If set to 1, the axis present on the cycle command will be used for initial point, part
surface calculations, square off, and pecking motions.
CycleRapidLevelInitial
Similar to CycleRapidLevelValue, except that the value is specified by the current X, Y,
or Z axis value, depending on the current plane.
CycleRapidLevelInv
Similar to CycleRapidLevelValue, except that the value is negated if the rapid value is
to be interpreted as incremental.
CycleRapidLevelKeep
This macro is called to apply the cycle rapid level instated via the
CycleRapidLevelValue macro (see above) to cycles executed on command. This macro
must be called during initialization ("Start of Processing" event).
CycleRapidLevelValue
Set the R point level.
CycleRapidLevelValueMult
Similar to CycleRapidLevelValue, except that the incoming value will be multiplied by
the X/Y/Z multiplier, depending on the current G17, 18, 19 state.
CycleRapidLevelZeroTracking
Similar to CycleRapidLevelValue, except that it applies to zero-tracking machines.
CycleRapidType
Specifies how the Cycle Rapid value is to be interpreted.

VERICUT Macros
1 = Absolute value
2 = Incremental value
3 = G-Code dependent
CycleRetractInitial
Sets the retract level position based of the current X, Y, or Z position (depending on the
current plane).
CycleRetraction
Set the Cycle Retract value. This is typically used when the retract level is an incremental
distance from the clearance plane.
CycleRetractSpecifiedpoint
Sets the retract level position to be the specified value, independent of the current plane.
CycleRetractSpecifiedZT
Similar to CycleRetractSpecifiedpoint, except that it applies to zero-tracking machines.
CyclesBore
Sets the cycle type to Bore.
CyclesBoreDrag
Sets the cycle type to Bore Drag.
CyclesBoreOrient
Sets the cycle type to Bore Orient.
CyclesCancel
Cancels the cycle mode.
CyclesDeep
Sets the cycle type to Deep.
CyclesDrill
Sets the cycle type to Drill.

VERICUT Macros
CyclesExecute
Executes a single cycle (MAHO) based on cycle parameters that were set by data in
preceding blocks. Requires the Cycle Execute=As Commanded cycle setting (ref.
Configuration menu > Control Settings: Cycles tab in the VERICUT Help section, in
the CGTech Help Library.).

NOTE: If a value of 1 is passed to the macro, it will interpret the non-plane axis as
modal. This means, if you are in the XY plane, and Z is not specified on the current
block, then it will use the Z value from the last time CyclesExecute was called.
CyclesExecuteModal
Toggles the Cycle Execute control setting (ref. Configuration menu > Control
Settings: Cycles tab in the VERICUT Help section, in the CGTech Help Library.) and
allows the square-off motions to adjust the cycle part surface correctly before positioning
to the X-Y cycle point. When called with an Override Value of "0" and "Process After
Motion" set to No, the system uses square-off motions to move to the cycle position.
After the cycle is executed the Cycle Execute control setting should be reset by calling
CyclesExecuteModal a second time with an Override Value of "1" and "Process After
Motion" set to Yes.
NOTE: If X, Y or Z movement is not part of the block, the system automatically
executes the CyclesExecute macro instead.
CyclesExecuteOnMotionOnOff
Toggles the Cycle Execute control setting (ref. Configuration menu > Control
Settings: Cycles tab) between "As Commanded" and "On Motion". When called with an
Override Value of "0" the system is set to "As Commanded" mode, and when called
with an Override Value of "1" the system is set to "On Motion" mode. This macro
allows the Cycle Execute mode to be changed for all future blocks until changed again or
the job is reset.

NOTE: The CyclesExecuteModal macro also toggles the Cycle Execute control
setting, but was designed for use with a single block.
CyclesFace
Sets the cycle type to Face.
CyclesMill
Sets the cycle type to Mill.
CyclesTap
Sets the cycle type to Tap.

VERICUT Macros
CycleStepUpValue
Sets the Cycle Step Up value. Use in cycle "Deep" mode.
CycleStepValue
Sets the Cycle Step Down value. Use in cycle "Deep" mode.
CyclesThru
Sets the cycle type toThru.
CycleSubroutineOff
Turns Off the calling of the specified subroutine on every motion. The name of the
subroutine may either be numeric or text, based on the Type of Subroutine Names
control setting.
CycleSubroutineOn
Turns On the calling of the specified subroutine on every motion. The name of the
subroutine may either be numeric or text, based on the Type of Subroutine Names
control setting.
CycleSubroutineOnNoMotion
Same as CycleSubroutineOn, except doesn't automatically turn motion on for the
current block.
CycleTurnAdjustEndPoint
This macro turns OFF (0) or ON (1) the adjust-end-point internal flag. When ON, a check
is performed to determine if the tool position is lower than profile end (rough boring) or
higher than profile end (rough turning). If either case is true, then the profile end is
adjusted to be at the same level as the tool position. This is normally an internal NC
control variable. Therefore, to simulate, call once during the "Start of Processing" event.
CycleTurnAllowanceX
Specifies the offset along the X axis after roughing for finish allowance stock. Sets the
finish allowance for threading. This macro is also used for roughing canned cycles.

NOTE: The offset represented by CycleTurnAllowanceX is a "radius" value.

CycleTurnAllowanceZ
Specifies the offset along the Z axis after roughing for finish allowance stock. Sets the
finish allowance for threading. This macro is also used for roughing canned cycles.

VERICUT Macros

NOTE: The offset represented by CycleTurnAllowanceX is a "radius" value.


CycleTurnCutDepth
Specifies the cut depth for each roughing pass. This macro is also used with grooving
cycles to specify the cut peck depth.
CycleTurnEndSeq
Specifies the sequence number of the last motion block used to define the work shape
profile being cut by the turning cycle.
CycleTurnFeed
Specifies the feedrate to be apply to the expanded motions of a "roughing" turning cycle.
A "Finish" turning cycle uses the speeds and feeds that are included on the motions
blocks defining the cycle's profile.
CycleTurnFinalX
Used to define a final X axis position after the cycle is executed. (Not required by most
controls)
CycleTurnFinalZ
Used to define a final Z axis position after the cycle is executed. (Not required by most
controls)
CycleTurnFinish
Selects a single pass alone the turning cycle profile to finish the profile. It is normally
called after a rough cut cycle to avoid programming the profile twice. "Tool Nose
Compensation" is used if Override Value = 1.
CycleTurnGroove
Selects O.D./I.D. grooving cycles or a cut-off cycle.
CycleTurnGrooveAngle
Specifies the amount of slope for a grooving cycle with an angled bottom.
CycleTurnGrooveDepth
Defines the bottom of the groove. (Either an X value for I.D./O.D. grooves or a Z value
for facing grooves). This is not the cut or peck distance defined by CycleTurnCutDepth.

VERICUT Macros
CycleTurnGrooveEnd
Defines the bottom of the groove. (Either an Z value for I.D./O.D. grooves or an X value
for facing grooves).
CycleTurnGrooveEscape
Allows a small side movement at the bottom of a grooving plunge before the retract
motion. Note that the manual cautions this can only be used when the stock geometry
allows it.
CycleTurnGrooveFace
Selects face cut-off, face grooving, and deep hole drilling.
CycleTurnGrooveRelief
Retract distance after each cutting peck motion during groove cycles. Some NC controls
define this value as a controller word. It can be set as an Override Value in VERICUT
(during "Start of Processing" event).
CycleTurnGrooveStep
Groove step-over distance between plunge motions when width of groove exceeds the
tool width. Note that this normally a different word for I.D./O.D. grooves and facing
grooves.
CycleTurnLoopCount
The loop cycle repeats a sequence of cut motions while feeding into the stock until the
loop count is completed. Use this macro to set the number of times the motions are offset
and repeated. The total stock in the along the X and Z axis for closed loop rough cutting
are defined using the CycleTurnStockX and CycleTurnStockZ macros.
CycleTurnRetractX
This macro uses an Override Value to set the delta retract move in the X direction for
the expanded cycle. This is normally an internal NC control variable. Therefore, to
simulate, call once during the "Start of Processing" event.
CycleTurnRetractZ
This macro uses an Override Value to set the delta retract move in the Z direction for the
expanded cycle. This is normally an internal NC control variable. Therefore, to simulate,
call once during the "Start of Processing" event.

CycleTurnRoughCut

VERICUT Macros
Selects a turning cycle for roughing using a cutting pattern parallel to the turning axis.
"Tool Nose Compensation" is used if Override Value = 1.
CycleTurnRoughFace
Selects a turning cycle for roughing using a cutting pattern normal to the turning axis.
This is commonly called traverse cutting or facing. "Tool Nose Compensation" is used if
Override Value = 1.
CycleTurnRoughLoop
Selects a turning cycle that offsets and repeats the turning profile a given distance and
number of times. This type of machining is often called closed loop roughing. "Tool
Nose Compensation" is used if Override Value = 1.
CycleTurnSpeed
Specifies the spindle speed to be applied to the expanded motions of a "roughing" turning
cycle. A "Finish" turning cycle uses the speeds and feeds that are included on the motions
blocks defining the cycle's profile.
CycleTurnStartBlank
Specifies the first block sequence number for the motions defining the stock geometry.
CycleTurnStartSeq
Specifies the first block sequence number for the program of finishing the work shape.

NOTES:
1. Scanning must be set when the turning cycles reference sequence numbers. (Ref.
Project menu > Processing Options > G-Code > Settings: Settings tab: Scan
Toolpath Files in the VERICUT Help section, in the CGTech Help Library.)
2. The NUM control should use the NumSequence macro for the start and end
sequence numbers. This allows the format N1 G64 N2 N3 ... Where N2 defines
the start and N3 defines the end sequence number.
3. The Okuma control should use the OkumaCondNWord function with defined
words: N, N_GOTO_LABEL, N_GOTO_SEQ and N_LABEL.
CycleTurnStockX
Allows an additional offset in the X direction for clean-up stock machined by the
roughing cycle after the roughing passes. It can also be used to define the total stock
being removed by a CycleTurnRoughLoop cycle.

VERICUT Macros
CycleTurnStockZ
Allows an additional offset in the Z direction for clean-up stock machined by the
roughing cycle after the roughing passes. It can also be used to define the total stock
being removed by a CycleTurnRoughLoop cycle.
CycleTurnThread
Sets the turning cycle type to threading. The current position is used as the threading start
point. When X and/or Z words are included on the block they define the endpoint of the
thread. When U and/or W words are included on the block, the associated U-W values
are interpreted as signed incremental values from the start point to the end point. The
XaxisIncreMotion and ZaxisIncreMotion macros must be called when U and W are
used to define the thread endpoint.
No override = execute all threading passes with retracts and returns to cycle start
position.
Override Value = 1, execute only the final thread pass with retract and return to the
cycle start position. This is typically used with a G92 word address.
Override Value = 2, execute only the final thread pass and suppress retract and
return to the cycle start position. This is typically used with a G32 or G33 word
address.
Override Value = 4, should be used with the Fanuc G92 single pass thread cycle.
This override causes the G92 threading cycle to remain active allowing additional
blocks of the G92 cycle to be simulated until canceled by another G-code.
Also see: "Notes about simulating lathe threading" in the Notes about Special Topics
section, in the CGTech Help Library.
CycleTurnThreadAngleTaper
Specifies the taper applied to threads.
CycleTurnThreadFinish
Specifies the quantity of finish passes. If not specified, default is to make one pass.
CycleTurnThreadFirstCut
Depth of first threading cut (radius value).
CycleTurnThreadHeight
Thread height (radius value).
CycleTurnThreadLead
When used on a threading block the feed value defines the thread lead distance.

VERICUT Macros
CycleTurnThreadMinCut
Minimum depth of cut. A modal value used to limit the number of passes specified at
startup or in the threading block. Default is 10% of the thread height.
CycleTurnThreadTaper
Specifies the distance of taper in X-axis direction (signed value, radius).
CycleUvDepth
Similar to CycleXyzDepth. This macro, if passed a value of 1, allows UAxisMotion
and VAxisMotion to interpret its value as a depth value, rather than a motion value. The
default is 0 (UAxisMotion and VAxisMotion are interpreted as motion).
CycleXyzDepth
Specifies whether or not X, Y, or Z is used to specify cycle depth.
0 = NO
1 = YES
CycleZeroTrackingAdjOnOff
Sets an on/off flag specifying whether the cycle part surface calculation should be
adjusted based on ZW Zero tracking. This was specifically implemented for Siemens
840D version of ZW Zero tracking cycles.
0 = Do not adjust
1 = Adjust for Zero tracking
CylindricalDiameter
This macro sets the diameter that will be used while Cylindrical Interpolation is On. This
parameter is required. Various controls will specify various values (radius, diameter,
conversion factor, or nothing). Whatever is specified, it needs to be converted to a
diameter, and then passed to this macro via the "Override Value" field.
CylindricalInterpolation
This macro is used to turn Cylindrical Interpolation On and Off. When On, the
INTERPOLATION STATE is set to CYLINDRICAL. Cylindrical Interpolation is used
to cut a 2D planar shape along the outside of a cylinder at a constant depth using a rotary
and a linear axis. The programmed input may be two linear or one linear and one rotary
axis. In this mode, both linear and circular moves are supported. Cutter Compensation is
also supported. A value of 0 turns this mode off, any other value turns this mode on.

VERICUT Macros
Typically the VERICUT control must be configured to call standard macros at the correct
time with the correct values when Cylindrical Interpolation is On.

NOTES:
1. It is critical to also set the proper motion plane. Typically, the motion plane will
be either XY or YZ.
2. The "interpolation" state (None, Polar, or Cylindrical) is supported as a
conditional state, and can be displayed in the Status window.
CylindricalLinearAxis
This macro specifies the "virtual" linear axis which will be "wrapped" around the
cylinder while Cylindrical interpolation is On. Valid values are 1, 2, and 3. These values
correspond to X, Y, and Z. The default is 2. If used, this macro should be called under
Events, Start of Processing. This macro is used in conjunction with
CylindricalRotationalAxis which specifies the rotary axis that will be actually making
the "virtual" linear axis motions. Typically, this macro will never need to be called.
CylindricalRotationalAxis
This macro specifies the rotary axis that will be actually making the "virtual" linear axis
motions while Cylindrical Interpolation is On. Valid values are: 4, 5, 6, 10, 11, and 12.
These values correspond to the A, B, C, A2, B2, and C2 axis. The default is 6. If used,
this macro should be called under Events, Start of Processing. This macro is used in
conjunction with CylindricalLinearAxis. Typically, this macro will not need to be called
unless there is a sub-spindle.

Numbers A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Debug
Renamed to DebugMacro.
DebugMacro
Debugging macro that prints the corresponding word, the string associated with the value,
and the value to the DEBUG destination.
DefaultWire
Sets the current tool number to be the default wire EDM tool number.

VERICUT Macros
DefineCsys
This macro defines a coordinate system (CSYS). The text argument contains the name of
the CSYS followed by the name of the component to attach the coordinate system to,
followed by the 12 numeric values defining the matrix for the coordinate system. The
order of the values are: i j k x i j k y i j k z
Example:
Create the following lines in the mcd file:
(DEFINE_CSYS "csys1 Stock 1 0 0 -7.95 0 1 0 0 0 0 1 2.25"
(DEFINE_CSYS "csys2 Stock 1 0 0 -7.95 0 -1 0 0 0 0 -1 -.7"
Create the word "(DEFINE_CSYS" which expects an alpha-numeric argument.
When "(DEFINE_CSYS" is encountered, the DefineCsys macro is called. This example
results in two new coordinate systems, called csys1 and csy2, are created. Both are
attached to the Stock component, with values identical to position1 and position2 of the
standard VERICUT part.
DefineDashAsAlphaNumeric
Defines whether or not the dash character is to be interpreted as an alphanumeric
character. Default is no. A value of 1 causes a dash to be interpreted as an alphanumeric
character. If needed, this macro would typically get called during the Reset event.
Defining the dash character as an alphanumeric character will only effect words which
are defined to have an alphanumeric argument.
DisableWorkShiftOffsets
Disables the current Work and Shift offsets. The current values are saved, and can be
enabled via a call to EnableWorkShiftOffsets.
DoLoop
Sets the input file locations of the do loop. During the first pass, the locations are saved.
During the second pass, the locations are restored. There is no limit for the number of doloops permitted within a G-code program.
This command is used with WhileLoop to process a "while/do" loop of the form:
While (expression) DO1
.
.
.
END1
The following Word Formats should be defined:

VERICUT Macros
WHILE, DO and END should be defined as a word of Type = "Macro", Sub Type =
"Numeric".
() represent words of type left and right precedence.
Entries should be defined for WHILE, DO, and END in the Word/Address table as
illustrated below:

Dwell
Renamed to DwellMacro.
DwellMacro
Causes a dwell to occur. Typically called by G04, this macro must be called after the
DwellTime macro. Dwell length is determined by the DwellTime variable value and the
current feed mode (IPM/MMPM, IPR/MMPR):
DwellRevolutions
Similar to DwellMacro, except the dwell time value is always interpreted as revolutions.
DwellSeconds
Similar to DwellMacro, except the dwell time value is always interpreted as seconds.
DwellTime
Sets the dwell time variable. Typically called by the "X" word when a G04 is in the
block, the dwell time variable is interpreted differently depending upon the macro called
after DwellTime:
DwellMacro seconds in IPM/MMPM mode, revolutions in IPR/MMPR mode
DwellRevolutions always revolutions
DwellSeconds always seconds

VERICUT Macros
DynamicWorkOffsets
Controls when "dynamic work offsets" are applied (e.g. G54.2). When called with an
Override Value of "1", work, shift, and Program Zero offsets are rotated based on the
rotation that is applied to the stock. An Override Value of "0" will turn this feature off.

WARNING: If the offset is non-relational (not specified with From/To locations), then
the entire amount of the offset will be rotated. This behavior will only work if the offset
is being measured from the center of the rotary on the part side. This limitation does not
apply to relational offsets.
DynamicWorkOffsetsContour
Controls the dynamic work offset mode: contouring vs. non-contouring. When passed an
OverrideValue of "1", puts the dynamic work offsets in contouring mode. A value of
"0", puts the dynamic work offsets in non-contouring mode. The default is contouring.

NOTE: This command is dependent on dynamic work offsets being turned on using the
DynamicWorkOffsets macro.
DynamicWorkOffsetsLocalCoord
Controls the coordinate system in which work offsets are dynamically rotated. When
called with an Override Value of "1", dynamic work offsets are rotated based on the
rotations specified within the local coordinate system. When passed an Override Value
of "0" (default), dynamic work offsets are rotated based on the actual rotation of the stock
component.

NOTE: This command is dependent on dynamic work offsets being turned on using the
DynamicWorkOffsets macro.
DynamicWorkOffsetsTypes
Determines which work offsets should be dynamically rotated. When passed an
OverrideValue of "1", turns on the capability for the given work offset. A value of "0"
turns off the capability for the given work offset. The possible work offsets include:
"BASE", "WORK" (Base and work), "WORK_ONLY", "SECONDARY" (Secondary
work offset), "SHIFT", "PZ" (Program Zero), and "ALL".
The type of work offset should be specified in the OverrideText field. A separate call is
required for each setting.

NOTES:
1. This command is dependent on dynamic work offsets being turned on using the
DynamicWorkOffsets macro.
2. The default is "On" for all types.

VERICUT Macros

DynamicWorkOffsetsWithMotion
When passed an OverrideValue of "1", causes the offsets to only take effect when the
corresponding axis is specified. An Override Value of "0", causes the offsets to take
effect immediately. For the most part, this macro is only applicable when in noncontouring mode. The default is 1.

NOTE: This command is dependent on dynamic work offsets being turned on using the
DynamicWorkOffsets macro.
Numbers A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

EDMCalcUpperGuideHeight
Causes the upper wire guide height to be recalculated based off of changes to the
EDMLower2Reference height, EDMReference2Upper height, or the distance between
the guides.
EDMCalcUpperGuideLocation
Causes the position for the upper wire guide to be recalculated based off of changes to the
EDMLower2Reference or EDMReference2Upper heights. This will actually cause a
change in the position of the upper guide. Typically this macro would not be used in Wire
EDM.
EDMGuide2Guide
Adjusts the Z component and upper wire guide height when the Z value specifies the
distance from the lower to upper guides.
EDMLower2Reference
Specifies the distance from the wire EDM table top to the XY plane.
EDMLowerGuideHeight
Specifies the distance from the lower wire guide to the top of the table.
EDMReference2Upper
Specifies the distance from the wire EDM XY plane to the UV plane.
EDMUpperGuideHeight
Specifies the distance from the UV plane to the upper wire guide.

VERICUT Macros
EI_RetractRadius
This macro is specific to an Electroimpact (EI) tape laying machine. It causes a rapid
retract to the specified radius. Although intended to mimic the EI machine, at this point it
is just our internal logic. The steps are:
1. Retract in Y and Z along the Tool's axis.
2. Rotate the A angle to match your current position, and rotate the B angle to zero.
If "START" is passed as the text value, it was will cause the transition logic to occur with
the next motion. All transition movements are done at rapid. The steps of the transition
logic are:
1. Moves along the imaginary cylinder to the retract position of the new point. This
is a rapid motion which drives the XYZ and A axes.
2. Rotate the rotaries into position.
3. Move to the specified start position.

NOTE: The reposition logic is extremely important in the overall time to lay the tape.
ElseBlock
Use to define an "ELSE" or "ELSE_IF" condition within an "IF" block of code. For an
"ELSE_IF" condition, specify the expression that is to be evaluated to determine if the
block is to be executed. For an "ELSE" statement, specify an Override Value of 1.
Process during Scan must be set to "Yes" for this macro.
Also see: IfBlock, EndIfBlock
EnableWorkShiftOffsets
Enables the previously disabled work shift offset.
Also see: DisableWorkShiftOffsets.
EndIfBlock
Use to define the end of an "IF" block of code. Process during Scan must be set to "Yes"
for this macro.
Also see IfBlock, ElseBlock.
EndLabelLoop
Used to define a label name that marks the end of a label loop. Action is only taken if the
code is currently processing a label loop. If additional loops are to be executed, control
branches to the start of the loop. Otherwise control branches to the line following the

VERICUT Macros
REPEAT command. Currently, this is only implemented with the Sin840D REPEAT
command. This command would typically get called during the Start of Processing event.
See "Notes about the Siemens 840 CASE and REPEAT commands" in the Notes
about Special Topics section, in the CGTech Help Library, for additional information.
EndLoop
Sets the input file locations of the end of a do loop. During the first pass, the locations are
saved. During the second pass, the locations are restored.
EndProgram
During the scan pass, this macro marks the current location as the end of the current
program. During the run pass, this macro will cause processing to stop, will set a flag
indicating that the end of program has been reached, and will output the APT "FINI"
statement.
EndProgramRewind
During the scan pass, this macro marks the current location as the end of the current
program. During the run pass, this macro will output an APT "REWIND" statement and
call the EndProgram macro.
EndProgramRewindSpecial
This macro is identical to EndProgramRewind except it allows you to branch beyond
the end of the program.
EndSub
During the scan pass, the macro will cause the current location to be marked as the end of
the subroutine. This will prevent any branching from within this subroutine to branch
beyond this point. During the run pass, this macro will cause a return from the current
subroutine.

NOTE: If you do not want to mark the current location as the end of the subroutine,
make sure the Process during Scan is not toggled "On".
See SubroutineSequenceEnd as an alternative way to mark the end of a subroutine.
Enhanced5AxisLogicOnOff
This macro turns On / Off the enhanced 5 axis logic that was added to V5.4.4. The
default is On. A value of 1 turns it on, and a value of 0 turns it off. This logic should
only be turned off if the new logic is causing a problem, or if the new logic is causing a
significant slow down in performance.

VERICUT Macros
ErrorMacro
Creates an error message using the input text string value supplied via the Override Text
field. See Override Text in the Add/Modify Word/Address window (see the VERICUT
Help section, in the CGTech Help Library) for information on using "expressions" in the
Override Text field.

Numbers A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

FadalLcode
If less than 100, the value sets the loop count. If the value is an even multiple of 100, it
defines the beginning of a subroutine. Otherwise it is a call to a subroutine, with the last 2
digits being the loop count.
FadalWorkCoord
For Fadal, E54 is the same as E1. Therefore if the value is greater than 53, 53 is
subtracted from the value.
FanucRotationPlaneLocal2
Implemented to support the Fanuc G68 with IJK vectors. This macro calculates a rotation
matrix based on the following:
1. Rotation about an axis. The axis specified with calls to Ivector, Jvector, and
Kvector.
2. The center of rotation specified with RotationPlaneXPoint,
RotationPlaneYPoint, and RotationPlaneZPoint.
3. The angle specified with RotationPlaneAngle1.
The specified rotation is based on the current coordinate system. The current XYZ
position is automatically recalculated based on the new coordinate system. This macro
uses the standard rotation plane capabilities within VERICUT, and therefore can be
cancelled in the standard way (RotationPlaneCancel2).
FanucToolLengthComp
Implements a Fanuc-style G43/G44 tool length compensation. This macro would
typically get called with the G43/G44 word/addresses. For G44, an Override Value of -1
should be passed. This macro applies the previously set compensation amount to the axis
specified on the block.
FanucToolLengthComp does not consider the current tool axis orientation
ToolLengthCompPos and ToolLengthCompNeg. It applies the MCH axis specified in
the block.

VERICUT Macros
When X and/or Y are also specified in a G43 block with Z, FanucToolLengthComp
DOES NOT apply to the Z-axis, but to the first axis specified in the block.
FanucToolLengthCompAxisOn
This macro turns on special Fanuc G43.1 handling, and initializes the corresponding
offset. ToolLengthCompOff will cancel the offset, and take you out of the special G43.1
mode.
FeedInvTime
Sets the feedrate based on the input value (InverseTime). The Feedrate will be calculated
based on the formula: Feedrate = Distance * InverseTime.
FeedInvTimeModalMultiplier
Specifies a multiplier that is to be applied to the value specified with the FeedInvTime
macro. (Default = 1.0). This macro is identical to FeedInvTimeMultiplier except the
value being set is modal. If a value other than 1.0 is set for both the modal and non-modal
versions of this macro, the non-modal version will take precedence.
FeedInvTimeMultiplier
Specifies a multiplier that is to be applied to the value specified with the FeedInvTime
macro. (Default=1.0)
FeedInvTimeSec
Similar to FeedInvTime, except that the units are in 1/seconds rather than 1/minutes.
FeedModeMinute
Sets the feed mode to Feed per Minute. This macro only sets the feed mode. Use
FeedPerMinute to set the feedrate "value".
FeedModeRevolution
Sets the feed mode to Feed per Revolution. This macro only sets the feed mode. Use
FeedPerRev to set the feedrate "value".
FeedModeTime
Sets the feed mode to Inverse Time. The Feedrate will be calculated based on the
formula: Feedrate = Distance * InverseTime.
FeedPerMinute
Sets the feedrate based on the input value. The units will be either IPM or MMPM. This
macro only sets the feedrate "value". Use FeedModeMinute to set the feed mode.

VERICUT Macros
FeedPerMinuteType
5 axis motions often have special calculations for feed. This macro allows the user to
select which calculation type to use (specified with an Override Value). This calculation
type will only be used when interpolating (non-rapid mode), and the feed mode is set to
units per minute. Type 0 is the default. This value is modal.
Override Value = 0: Treat the feedrate as a real units per minute feedrate. The actual
distance being travelled will be used for the time calculation.
Override Value = 1: This calculation treats all rotary tables as if they are linear, and
calculates the time for the motion accordingly. For example: on the block G91 X100 A90
F50, the time to execute the block would be sqrt((100*100) + (90*90))/50. Stated
another way:
If only linear axis moves, treat the feedrate as inches/mm per minute
If only a single rotary moves, tread the feedrate as degrees per minute
If linear and rotary axis moves, or if multiple rotaries move, treat all axis as if
they were linear.
Override Value = 2: The interpretation of the feedrate will be dependent on the type of
motion on the block
If only linear axis moves, treat the feedrate as inches/mm per minute.
If only rotaries axis move, treat the feedrate as degrees per minute. The rotary
moving the longest distance will determine the time for the block.
If both rotary and linear axis move, ignore the rotary motion in the time
calculation. The rotary axes will then move at a proportional rate so that they
finish the motion at the same time as the linear axes.
Override Value = 3: A new FeedPerMinuteType (3) for this version of the 840D control.

If only linear motions exist, treat the feedrate as a normal inches/mm per minute.
If rotary's exist, treat the feedrate as degrees per minute, and ignore any linear
motion on the block as far as feedrate and time calculations.
Calculations are based on the largest rotary delta.

FeedPerRev
Sets the feedrate based on the input value. The units will be either IPR or MMPR. This
macro only sets the feedrate "value". Use FeedModeRevolution to set the feed mode.
FeedRate
Sets the feedrate based on the input value. It will use the previously set feedrate mode to
output the corresponding units.

VERICUT Macros
Fidia_ConvInit
Initializes the Fidia specific rotation axis and center to 0.0.
Fidia_Rotate
Turns on the Fidia specific rotation using the values set with the
Fidia_Rotate[XYZ]Axis and Fidia_Rotate[XYZ]Point commands.
Also see: Fidia_Rotate2
Fidia_Rotate2
This macro is identical to the Fida_Rotate command except it also converts the current
position into the new coordinate system.
Fidia_RotateCancel
Cancels the rotation plane put into affect via the Fidia_Rotate or Fidia_Rotate2 macros.
Fidia_RotateCancel2
Calls RotationPlaneRestoreAxis, and then cancels the rotation plane put into affect via
the Fidia_Rotate or Fidia_Rotate2 macros.
Fidia_RotateXAxis
Sets the Fidia specific rotation value for the X-axis.
Fidia_RotateYAxis
Sets the Fidia specific rotation value for the Y-axis.
Fidia_RotateZAxis
Sets the Fidia specific rotation value for the Z-axis.
Fidia_RotateXPoint
Sets the X coordinate of a Fidia specific point of rotation.
Fidia_RotateYPoint
Sets the Y coordinate of a Fidia specific point of rotation.
Fidia_RotateZPoint
Sets the Z coordinate of a Fidia specific point of rotation.

VERICUT Macros
ForEndLoop
Use to mark the end of a "FOR" loop. Used with ForLoop. Process during Scan must be
set to "Yes" for this macro.
Also see: ForToValue
ForLoop
Use this macro to define a "FOR" loop. This macro expects a variable assignment to
follow. This variable will be used and compared against the "TO" value (specified with
ForToValue) to determine whether to continue in the loop. When the value of the
variable is no longer less than or equal to the "TO" value, control will jump to the block
after the "ENDFOR" block (specified with ForEndLoop). Process during Scan must be
set to "Yes" for this macro.
This command is used to process a "For" loop of the following form:
TEETH=2
FOR TOOTH = 1 TO TEETH
.
.
.
ENDFOR
The following Word Formats should be defined:
TEETH and TOOTH should be defined as words of Type = "Special", Sub Type =
"Variable Name".
FOR and ENDFOR should be defined as words of Type = "Macro", Sub Type =
"None".
TO should be defined as a word of Type = "Macro", Sub Type = "Numeric".
Entries should be defined for FOR, TO and ENDFOR in the Word/Address table as
illustrated in the following picture:

VERICUT Macros

ForToValue
Use to set the "TO" value which is used with ForLoop. Also see: ForEndLoop
Numbers A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

G65ResetVarsOnLoop
Defines whether the local variables should be reset when looping on a G65 call. The
default is yes. A value of 1 turns on the resetting. Any other value turns off the resetting.
This macro would typically be called during Start of Processing.
GageOffsetAttributes
Defines attributes associated with the GageOffsetDrivenPoint macro. The Override
Text argument is used to set ten values (default 1000001000, where 1 represents TRUE
and 0 represents FALSE):
The attributes are:
1. Set the gage offset to zero if the Driven Point ID is zero.
Default = TRUE
2. Set the gage offset to zero and produce an error if the Driven Point ID does not
match the active Tool ID.
Default = FALSE
3. Ignore the Driven Point ID. Use the first driven point if it exists.
Default = FALSE

VERICUT Macros
If the Driven Point ID is being specified:
4. Set the gage offset to zero if a matching Driven Point ID does not exist.
Default = FALSE
5. Set the gage offset to zero if a matching Driven Point ID does not exist and
Driven Point Ids exists for this tool.
Default = FALSE
6. Produce an error message if a matching Driven Point ID does not exist.
Default = FALSE
7. Produce an error message if a matching Driven Point ID does not exist, and
Driven Point Ids exists for this tool.
Default = TRUE
8. Produce a warning message if a matching Driven Point ID does not exist.
Default= FALSE
9. Produce a warning message if a matching Driven Point ID does not exist, and
Driven Point Ids exists for this tool.
Default FALSE
10. If the specified Driven Point ID does not exist, use the first driven point if it
exists.
Default=FALSE
GageOffsetDrivenPoint
Sets the gage offset amount for the current tool loaded in the active tool. The amount of
offset is the difference between the Gage Point and the Driven Point saved with the tool
in the tool library. Each tool in the tool library can have multiple Driven Point records,
each with a unique ID. The ID is input as a text string, but is typically a numeric value.
The numeric argument passed to this macro will be used to match the Driven Point ID in
the tool library.
For example, if H calls GageOffsetDrivenPoint with an argument of 15, then the value of
Driven Point ID "15" is used in the calculation of the gage offset amount.
Gage OffsetDriven Point does not use the Gage Offset Table (see the Tables for
Processing G-Codes section, in the CGTech Help Library), it only uses the calculated
gage offset amount from the tool library file. If the Driven Point ID can not be found, the
Driven Point location is assumed to be at the tool's origin. Hence the gage offset amount
is equal to the tool's Gage Point value. If the numeric argument is zero (for example,
"H0" in the NC program), the gage offset amount is set to zero.

VERICUT Macros
See "Notes about Gage Offset and Cutter Compensation" in the Notes about Special
Topics section, in the CGTech Help Library, for additional information.

NOTE: GageOffsetDrivenPoint works with alpha-numeric Tool ID's and numeric


Driven Point ID's.
GageOffsetFirstDrivenPoint
Sets the gage offset amount for the current tool loaded in the active tool. The amount of
offset is the difference between the Gage Point and the first Driven Point saved with the
tool in the tool library. Typically, no arguments are passed to this macro.
For example, if H calls GageOffsetFirstDrivenPoint, then the first Driven Point for the
tool is used in the calculation of the gage offset amount. If "MATCHING" is passed as
the text argument, then the above will be done only if the current tool id matches the
numeric argument passed.
GageOffsetFirstDrivenPoint DOES NOT use the Gage Offset Table (see the Tables
for Processing G-Codes section, in the CGTech Help Library), it only uses the calculated
gage offset amount from the tool library file. If the Driven Point ID can not be found, the
Driven Point location is assumed to be at the tool's origin. Hence the gage offset amount
is equal to the tool's Gage Point value. If the numeric argument is zero (for example,
"H0" in the NC program), the gage offset amount is set to zero.
See "Notes about Gage Offset and Cutter Compensation" in the Notes about Special
Topics section, in the CGTech Help Library, for additional information.

NOTE: GageOffsetFirstDrivenPoint works with alpha-numeric Tool ID's and


numeric Driven Point ID's.
GangToolChange
When the Tool component with the corresponding Tool Index value is found in the NC
machine configuration, this macro will call the following macros: TurretRetract,
TurretActivateTool, TurretLoadTool. These macros are not called if the specified Tool
component is already active, or the Tool component with the corresponding Tool Index
value is not found. Typically the Tool component must match both the Tool Index, and
the current subsystem. If a Text Override value of TOOL_INDEX_ONLY is passed,
then the comparison will be made strictly on the Tool Index.

NOTE: This is almost identical to TurrentToolChange except the TurretIndex


macro is not called, and the new TOOL_INDEX_ONLY feature has been added. When
using GangToolChange, you do not need a TurretRotationTable. This macro should
not be used for turrets where a rotation is needed to index the turret into proper location.

VERICUT Macros
GetCurrentDate
Creates a control variable specified by the Override Text string and saves the computer
system's date into it. The date is saved as an integer value in "yyyymmdd" format. If the
specified variable exists, its value is updated.
GLSameAngle360OnOff
This macro turns "On" and "Off" a special case logic associated with rotary movement.
This macro should be called during the Start of Processing Events with an Override
Value = 1 to turn this special case logic on. In general, this macro should never be called
unless you are certain that your machine is configured as defined below.
If a rotary is defined as an absolute 360 table, and the absolute rotary direction is set to
either positive is CCW or positive is CW, and the angle was specified on the block and
the angle is equal to the previously set angle, and the angle is not equal to zero, then a
360 degree move will be executed.

NOTE: This macro does not handle B-0 the same as B0. If you are using B-0, it is
recommended that you substitute B0.
GLSetCurrentZeroTrackingPos
Sets the PPX, PPY, PPZ, and PPW system variables based on the current position.
GLType2Begin
Marks the beginning of a G&L Type 2 command.
GLType2CLS
G&L Type 2 Call subroutine macro. This macro expects at least 1 argument. The first
argument must be the subroutine name.
GLType2DFS
G&L Type 2 Define subroutine macro. G&L subroutines can be defined inline, but are
not executed until called.
GLType2End
G&L Type 2 End subroutine macro. A number of event can cause the end of a Type 2
command. In order to correctly process a G&L Type 2 file, the Begin/End must be kept
in sync.
GLType2FXZ
G&L Type 2 Fixture Offset Zero macro. Expects 1 or 2 arguments. If 1, the specified
fixture offset will be reset. If 2, the specified range of fixture offsets will be reset.

VERICUT Macros
GLType2FXZArg
G&L Type 2 FXZ arguments macro. Specifies the arguments for the GLType2FXZ
macro.
GLType2PDO
G&L Type 2 Probe Offset macro. Arguments are expected in Type I format.

GLType2PdoId
Typically called via a PDO record, for example (PDO,P1 X.105 Z.105), this macro loads
probe offset values for a specific probe number (probe "1" in this example) into a Probe
Offset table (see the Tables for Processing G-Codes section, in the CGTech Help
Library). The values are accessed when the probe is used. Plus and minus signs
determine the direction for probe travel.
GLType2PGM
G&L Type 2 Program name macro. This macro requires the program name to be
specified as the first argument.
GLType2PRB
G&L Type 2 Probe Datum Offset Activate. This macro requires the probe id to be
specified as the first argument.
GLType2RPT
G&L Type 2 Repeat macro. This macro requires the repeat count to be specified as the
first argument.
GLType2RTA
G&L Type 2 Return Arguments macro. This causes a return from subroutine and the
passing back of specified values to the calling routine. The values that are to be returned
are specified as arguments to this macro.
GLType2UPD
G&L Type 2 Update Probe Display macro. This routine is passed a series of arguments
that are messages to be display to the console.
GotoJump
Jumps to the specified sequence number. Searching begins at the beginning of the current
program/subroutine.

VERICUT Macros
Also see: GotoJumpForwardBackward and GotoJumpForwardBackwardStart
GotoJumpForwardBackward
Similar to GotoJump except it uses the sign of the value to determine the direction in
which to search. A positive value looks in the forward direction, a negative value looks
backwards. Searching begins from the current position. If within a subroutine, the
forward and backwards search is limited to the subroutine.
Also see: GotoJump and GotoJumpForwardBackwardStart
GotoJumpForwardBackwardStart
Similar to GotoJumpForwardBackward except when the backward search does not
find the jump sequence number, it then searches forward starting at the beginning of the
program/subroutine. Similarly, when forward search does not find the jump sequence
number, it then searches forward starting at the beginning of the program/subroutine.
Also see: GotoJumpForwardBackward and GotoJump
GotoLabel
Branches to the label previously specified via calling the LabelName macro. This macro
searches for the first occurrence of the label within the file. Searching begins at the top of
the file.
Also see: LabelMacro and CinciGotoLabelName
GotoLabelForwardBackward
This macro causes the program to jump to the specified label by searching either forward
or backward from the current location. Jumps are only supported within the current
subroutine (or mainline program if you are not in a subroutine). A value that is greater or
equal to zero will cause a forward search, and a negative value will cause a backward
search. The label to jump to should be specified with a call to LabelName or
LabelNameValue, which must occur prior to calling this macro. If a condition exists on
the current block, the jump will only occur if the condition is true.
Also see: GotoJumpForwardBackward for similar capabilities for sequence jumping.

Numbers A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

HeidCmdAdd
Adds the values of the second and third arguments, and store the results in the variable
specified by the first argument. Arguments are set using ValueArgument and
VariableArgument.

VERICUT Macros
HeidCmdAssign
Store the value specified by the second argument in the variable specified by the first
argument. Arguments are set using ValueArgument and VariableArgument.
HeidCmdCos
Takes the cosine of the second argument (in degrees) and stores the result in the variable
specified by the first argument. Arguments are set using ValueArgument and
VariableArgument.
HeidCmdDivide
Divides the second argument by the third argument, and stores the results in the variable
specified by the first argument. Arguments are set using ValueArgument and
VariableArgument.
HeidCmdHypot
Takes the square root of the sum of the squares of the second and third arguments, and
store the result in the variable specified by the first argument. Arguments are set using
ValueArgument and VariableArgument.
HeidCmdIfEqual
Compares the first two arguments and sets the "if condition" to TRUE if they are equal,
and FALSE if they are not equal.
Arguments are set using ValueArgument and VariableArgument.

NOTE: The various GOTO/JUMP macros are only executed when the "if condition" is
TRUE.
HeidCmdIfGreater
Compares the first two arguments and sets the "if condition" to TRUE if the first
argument is greater then the second, and FALSE if they are not. Arguments are set using
ValueArgument and VariableArgument.

NOTE: The various GOTO/JUMP macro are only executed when the "if condition" is
TRUE.
HeidCmdIfLess
Compares the first two arguments and sets the "if condition" to TRUE if the first
argument is less then the second, and FALSE if they are not. Arguments are set using
ValueArgument and VariableArgument.

VERICUT Macros

NOTE: The various GOTO/JUMP macro are only executed when the "if condition" is
TRUE.
HeidCmdIfNotEqual
Compares the first two arguments and sets the "if condition" to TRUE if they are not
equal, and FALSE if they are equal. Arguments are set using ValueArgument and
VariableArgument.

NOTE: The various GOTO/JUMP macros are only executed when the "if condition" is
TRUE.
HeidCmdMultiply
Multiplies the values of the second and third arguments, and store the results in the
variable specified by the first argument. Arguments are set using ValueArgument and
VariableArgument.
HeidCmdSin
Takes the sine of the second argument (in degrees) and stores the result in the variable
specified by the first argument. Arguments are set using ValueArgument and
VariableArgument.
HeidCmdSquareRoot
Takes the square root of the second argument and stores the result in the variable
specified by the first argument. Arguments are set using ValueArgument and
VariableArgument.
HeidCmdSubtract
Subtracts the third argument from the second argument, and stores the results in the
variable specified by the first argument. Arguments are set using ValueArgument and
VariableArgument.
Hcode_Tool
Calls ToolLengthCompValue, ToolCode, and ToolChange.

NOTE: This macro is no longer needed and may be deleted in the future.
HeidIso_Polar
If passed a value of 1, it will set the current state to be polar. If passed a value of 0, it will
turn off the polar state. In polar mode, you are given a pole, an angle, and a radius.

VERICUT Macros
Also see: HeidIso_PolarAngle, HeidIso_PolarRadius, and the Heid_CircleCenter
macros.
HeidIso_PolarAngle
Defines the Heidenhain polar angle. The incoming value will be interpreted as
incremental or absolute based on the current incremental/absolute state. The resulting
value is modal.
Also see: HeidIso_Polar, Heid_PolarMotionLinear, Heid_PolarMotionCW, and
Heid_PolarMotionCCW and Heid_PolarAngle.
HeidIso_PolarRadius
Defines the Heidenhain polar radius. The incoming value will be interpreted as
incremental or absolute based on the current incremental/absolute state. The resulting
value is modal.
Also see: HeidIso_Polar, Heid_PolarMotionLinear, Heid_PolarMotionCW, and
Heid_PolarMotionCCW and Heid_PolarRadius.
HeidIso_SubDefCallEnd
This macro is used to define a subroutine, mark the end of a subroutine, and to call a
subroutine for a Heidenhain ISO control. On a Heidenhain ISO control, %ABC1 will
define the start of subroutine "ABC1", mark the end of subroutine "ABC1", or call
subroutine "ABC1". The context in which it is used determines its function.
The concept is: A program or subroutine always begins and ends with a %xxx. Any
%yyy within %xxx must be a call to a subroutine.

NOTES: In order for the above macro to work, the following must be true:
1. Any program or subroutine which is defined by this macro must also be ended by
this macro.
2. Any program or subroutine which is ended by this macro must also have been
defined by this macro.
3. If a program or subroutine is called by this macro, it must also be defined by this
macro.
HeidMPlus_Subroutine_Sequence
If this is the first sequence number for the current subroutine, then the
SubroutineSequence macro will be called. Otherwise, the Sequence macro will be
called.

VERICUT Macros
Heid_BlockInit
Heidenhain specific, block initialization macro. This macro is identical to BlockInit,
except that the circle IJK parameters are modal. If it is used, this macro should replace
the standard BlockInit macro and be called at the "Start of Block Processing" event.
Heid_CallLbl
Either calls the current subroutine and branches to the specified label or jumps to the start
of a repeat section, depending on the status of the Heid_RepeatCount macro.
Heidenhain repeat sections are similar to subroutines but do not include an end (LBL 0)
block.
When the Heid_RepeatCount macro has been called, the section of code is repeated
until the repeat count is completed. Repeat sections may be nested to a maximum depth
of eight.
When the Heid_RepeatCount macro has not been called, the current subroutine will be
called, and then the GotoLabel macro will be called.
Enter the number of the Label in the Override Value field.

NOTE: This macro should be executed after motion allowing the repeat count to call
the Heid_RepeatCount macro first.
Heid_CallSubName
Either calls a machine code subroutine or jumps to the start of a repeat section, depending
on the status of the Heid_RepeatCount macro. Heidenhain repeat sections are similar to
subroutines but do not include an end (LBL 0) block.
When the Heid_RepeatCount macro has been called, the section of code is repeated
until the repeat count is completed. Repeat sections may be nested to a maximum depth
of eight.
When the Heid_RepeatCount macro has not been called, a machine code subroutine call
is made. If code is currently processing the specified subroutine, then an EndSub will be
executed. Otherwise, a CallSubName will be executed.
Enter name of subroutine in the Override Text field or number of subroutine in the
Override Value field.

NOTE: This macro should be executed after motion allowing the repeat count to call
the Heid_RepeatCount macro first.
Heid_CallTextSubName
Calls external subroutines using Heid_CallSubName. The subroutine must be defined in
the Configuration menu > Adv. Options: Subroutines tab.

VERICUT Macros

For information on the Advanced Control Options window, see the VERICUT Help
section, in the CGTech Help Library.
Heid_CircleCenterIncX
Sets the X coordinate of the center of a circle. The incremental coordinates are relative to
the last programmed tool position. The Circles... modals determine how these values are
interpreted.
Heid_CircleCenterIncY
Sets the Y coordinate of the center of a circle. The incremental coordinates are relative to
the last programmed tool position. The Circles... modals determine how these values are
interpreted.
Heid_CircleCenterIncZ
Sets the Z coordinate of the center of a circle. The incremental coordinates are relative to
the last programmed tool position. The Circles... modals determine how these values are
interpreted.
Heid_CircleCenterX
Sets the X coordinate of the center of a circle. The Circles... modals determine how these
values are interpreted. These macros are also used to define the polar pole or base
position used in Heidenhain polar motion commands.
Heid_CircleCenterY
Sets the Y coordinate of the center of a circle. The Circles... modals determine how these
values are interpreted. These macros are also used to define the polar pole or base
position used in Heidenhain polar motion commands.
Heid_CircleCenterZ
Sets the Z coordinate of the center of a circle. The Circles... modals determine how these
values are interpreted. These macros are also used to define the polar pole or base
position used in Heidenhain polar motion commands.
Heid_EndSub
Similar to EndSub, except a return from the main does not cause an error message.
Heid_GetPocketContours
Starts the processing of the contour subroutine(s) to capture the contour geometry. This
macro is used for simulating Heidenhain CYCL DEF 22, 23, 24, and 25
pocketing/contouring with motions calculated by the DLL from ModuleWorks.

VERICUT Macros
See "Notes about simulating Heidenhain SL pocket cycles" in the Notes on Special
Topics section, in the CGTech Help Library, for additional information.

NOTE: If "single step" is being used, you will have to step through all the contour
subroutines until the next program line will be processed.
Heid_GotoLabel
Branches to the label previously specified via calling the LabelName macro. If the
branch point label is not found, this macro makes a Heid_CallSubName to the label.
This macro must be called with Process after Motion toggled "On".
Heid_InitializePocketContours
Initializes the geometry list and should be called when the first contour subroutine is
referenced. This macro is used for simulating Heidenhain CYCL DEF 22, 23, 24, and 25
pocketing/contouring with motions calculated by the DLL from ModuleWorks.
See "Notes about simulating Heidenhain SL pocket cycles" in the Notes on Special
Topics section, in the CGTech Help Library, for additional information.
Heid_JumpDecrement
If the G29 condition is true, this macro decrement the variable specified by
Heid_JumpDecrementVar by the amount specified by Heid_JumpDecrement.
Example:
Using the Heidenhain Mill Plus G29 Conditional Jump macro
NAME "G29" {
TYPE MACRO_CALL
INCH "DECIMAL"
METRIC "DECIMAL"
}
WORD_VALUE "N=" {
COND_AND "G" "22" {
MACRO "SubroutineName"
}
COND_AND "I" "-1"
COND_AND "G29" {
MACRO "GotoJumpForwardBackward" {
OVERRIDE_EXP "$ * -1"
}
MACRO "Heid_JumpDecrement" {
AFTER_MOTION Yes
}

VERICUT Macros
}
COND_AND "I"
COND_AND "G29" {
MACRO "GotoJumpForwardBackward"
MACRO "Heid_JumpDecrement" {
AFTER_MOTION Yes
}
}
}
WORD_VALUE "G29" {
MACRO "IfCheck"
MACRO "Heid_JumpDecrementVar"
}
WORD_VALUE "K" {
COND_AND "G" "81-86" {
MACRO "CycleStepValue"
}
COND_AND "G29" {
MACRO "Heid_JumpDecrementValue"
}
MACRO "CircleCenterZ"
}
Heid_JumpDecrementValue
This macro saves the amount that the variable set in Heid_JumpDecrementVar should
be decremented by if the jump occurs. See Heid_JumpDecrement for an example.
Heid_JumpDecrementVar
This macro is passed the expression associated with a Heid Mill Plus G29 Conditional
Jump command. This expression begins with 'E' followed by the variable number that is
to be used to evaluate the expression. This macro saves this variable number so that it can
be used by the Heid_JumpDecrement macro. See Heid_JumpDecrement for an
example.
Heid_LabelMacro
Identifies the current line with the given Label (see LabelMacro). In addition, this
Heidenhain version checks for a label being used as the start of a subroutine and calls
SubroutineSequence when appropriate. Note that "LBL 0" must call Heid_EndSub
with the scan pass checked.
Heid_MotionCW
Sets the motion type to CW. Similar to MotionCW except with an additional check to
force a 360 degree circle when explicit end points are not specified.

VERICUT Macros
Heid_MotionCCW
Sets the motion type to CCW. Similar to MotionCCW except with an additional check to
force a 360 degree circle when explicit end points are not specified.
Heid_MotionLinear
Similar to MotionLinear, except this macro will also reset the circle parameters.

Heid_PocketSub
Adds a contour subroutine label to the geometry list. It should be called for each element
in a "contour subroutine" list. The TNC430 allows up to 12 contours for each pocket.
This macro is used for simulating Heidenhain CYCL DEF 22, 23, 24, and 25
pocketing/contouring with motions calculated by the DLL from ModuleWorks.
See "Notes about simulating Heidenhain SL pocket cycles" in the Notes about Special
Topics section, in the CGTech Help Library, for additional information.
Heid_PolarAngle
Sets the polar angle used in the Heid_PolarMotionLinear macro.
Heid_PolarIncAngle
Sets the incremental polar angle in the Heid_PolarMotionCW and
Heid_PolarMotionCCW macros.
Heid_PolarIncRadius
Adjusts the polar radius (see Heid_PolarRadius) by the incremental IPR value passed.
Heid_PolarMotionCW
Processes a circular polar clockwise command (with optional helix) using the
Heid_PolarIncAngle to specify the arc's included angle and
Heid_CircleCenterX, Heid_CircleCenterY, Heid_CircleCenterZ as the center.
Heid_PolarMotionCCW
Processes a circular polar counter-clockwise command (with optional helix) using the
Heid_PolarIncAngle to specify the arc's included angle and
Heid_CircleCenterX, Heid_CircleCenterY, Heid_CircleCenterZ as the center.

VERICUT Macros
Heid_PolarMotionLinear
Calculates linear XY, ZX, or ZY motion using Heid_PolarRadius as the radius,
Heid_PolarAngle as the angle, and Heid_CircleCenterX, Heid_CircleCenterY,
Heid_CircleCenterZ as the center.
Heid_PolarRadius
Sets the polar radius used in the Heid_PolarMotionLinear macro.
Heid_ProcessRNDorCHF
Processes a corner round, or chamfer, using data stored by Heid_XaxisMotion and
Heid_YaxisMotion macros. The multiple block format used by Heidenhain requires this
type of look-ahead processing.
Heid_RepeatCount
Sets the REP count for repeating Heidenhain machine code sections. See description for
Heid_CallSubName.
Heid_XaxisMotion
Similar to XaxisMotion with an additional look-ahead check being made for RND or
CHF on the next program block. When RND or CHF is detected on the next block, the
actual motion is deferred until the next block is processed and the corner round or
chamfer can be calculated.
Also see: Heid_ProcessRNDorCHF.
Heid_YaxisMotion
Similar to YaxisMotion with an additional look-ahead check being made for RND or
CHF on the next program block. When RND or CHF is detected on the next block, the
actual motion is deferred until the next block is processed and the corner round or
chamfer can be calculated.
Also see: Heid_ProcessRNDorCHF.
HelicalFullLoops
Specifies the number of full loops should be processed for a given helical motion. Using
this value, the start and end angle, and the helical offset, the pitch is then calculated. The
default for this value is 0.0 (generally the pitch if specified, and the number of loops is
calculated).

Numbers A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

VERICUT Macros
Icode
Depending on the motion type (circular or non-circular), either sets the X coordinate of a
circle, or establishes a 3D offset. The interpretation of the center point is dependent on
the Circles control settings.
IfBlock
Defines the beginning of an "IF" block of code. It evaluates whether the specified
expression is TRUE or FALSE to determine whether or not to execute the block of code.
The end of the "IF" block of code is specified with EndIfBlock. The "IF" block of code
can also contain any number of "ELSE", or "ELSE_IF", statements specified using
ElseBlock. Process during Scan must be set to "Yes" for this macro.
This command is used to process an "If" blocks of the form:
IF (expression)
.
.
.
ELSEIF (expression)
.
.
.
ELSE
.
.
.
ENDFOR
The following Word Formats should be defined:
IF and ELSEIF should be defined as a words of Type = "Macro", Sub Type = "Numeric".
ELSE and ENDIF should be defined as words of Type = "Macro", Sub Type = "None".
( ) represent words of type left and right precedence.

Entries should be defined for FOR, TO and ENDFOR in the Word/Address table as
illustrated in the following picture:

VERICUT Macros

NOTE: Similar to IfCheck except that it allows the execution of multiple blocks when
the "If" condition is TRUE.
IfCheck
Sets an internal variable indicating whether the corresponding "IF" statement was TRUE
or FALSE. This variable is reset at the beginning of the next block.
This command is used to process an "If" check of the form:
If (expression) GOTO 30
.
.
.
GOTO 40
N30
.
.
.
GOTO 40
N40
The following Word Formats should be defined:
IF and GOTO should be defined as a word of Type = "Macro", Sub Type = "Numeric".
() represent words of type left and right precedence.

VERICUT Macros
Entries should be defined for IF and GOTO in the Word/Address table as illustrated
below:

The IfCheck macro flag is used to determine if the following Macros/functions should be
executed:
MACROS
AlarmSignal
CinciGotoLabelName
ConditionalEndOfBlock
HeidGotoLabel
HeidJumpDecrement
NumGotoLabel
NumGotoJump
OkumaGotoLabel
OkumaGotoJump
StopUnconditional
GotoJump
GotoJumpForwardBackward
GotoJumpForwardBackwardStart
GotoLabel
GotoLabelForwardBackward
FUNCTIONS
comment (internal function)
var_assignment (internal function)
In general, IfCheck controls GOTO's and variable assignments.

VERICUT Macros

NOTE: Similar to IfBlock except that it only applies to the current block when the "IF"
condition is TRUE.
Also see: ResetIfCheck
IfCheckAllMacros
If this macro is passed an Override Value of 1, it causes the IfCheck macro to be applied
to all macros called after the IfCheck on the current block. Typically, this macro would
be called during Start of Processing.

NOTE: The IfCheck also applies to whether comments are passed on, and if variable
assignments are executed. This is independent of IfCheckAllMacros.
IgnoreMacro
Ignores the word/value that called it (causes no action). During the creation of a report,
the macro will create an unsupported word/value entry.
Ijk2AbcType
Typically called during the "Start of Processing" event, this macro controls the type of
conversion required to convert tool vector information (IJK rotary motion data) into ABC
rotations. The tool vector information is typically set with [IJK]Vector macros.
Conversion type is specified via Override Value.
There are two classes of conversion routines, "Generic" and "Specific". Specific
conversion types are meant for a very specific machine/control configuration. Generic
conversion types are for any machine/control configurations that follow simple rules.
Generic conversion types:
Assume that the Rotaries are set to "Absolute" and the direction set to "Shortest
Distance".
When converting from IJK to ABC, typically there are 2 solutions. The Generic
routines will choose the solution which requires the smallest total rotary travel.
Assume that the control will be configured to handle any RTCP/RPCP issues.
Assume that the only rotation applied to components will be on nutator
components.
Are based on the order that the rotaries appear starting at the Tool, and ending
with the Stock. This means that an A on C head machine can use the same
Generic conversion type as an A head/C table machine, or a C on A table
machine. These 3 machine configurations would all be described as "A-C".

NOTE: Changes to existing conversion types will only be made for conversion types
listed as "Specific", and will only be made as problems arise for specific machine/control
configurations.

VERICUT Macros
Valid Override Values (conversion types):
1

Specific: Forest Line 5ax mill with A/B head rotation and ATEK control. In this
case, the macro also rotates the work and shift offsets based on the rotation that is
applied to the stock. An assumption is made that the entire amount of the dynamic
and work offsets should be rotated by the amount the part is rotated. This logic
will not work when the machine is not built about zero, and only part of the work
offset is to be rotated.

NOTES:
1. Rotary control settings should be set to "Absolute" with the direction
set to "Shortest Distance".
2. This option uses a rotation plane to adjust the coordinate system for
any rotation of the B axis (part side rotary). This option can not be
used with RPCP or Rotation Planes.
2

Semi Generic A-B. For example :Droop & Rein 5ax mill with A/B table rotation
and Makro 80 control. Similar case 1 above, except both A/B rotaries are on the
"tool side" of the machine. This means that a rotation plane is not used to adjust
for part side rotary, and therefore this option does not have the restriction on
RPCP or Rotation Planes.

Specific: 5ax tripod-type mill with A/B head rotation and Sinumerik 840D
control. A highly customized machine where as the spindle/tool assembly rotates,
it moves off center relative to the cylinder which surrounds it. To simulate this,
"virtual" U and V axes were included in the machine definition. When offsets are
applied to U and V, counter offsetsare applied to X and Y. This macro option was
designed to be driven via Z1,A1,Z2,A2,Z3,A3 NC codes, the tool is actually
driven with A, B, C.
Also see: TripodArmLength / TripodRodLength.

Generic B-C with rotaries set to linear. For example: Droop & Rein 5ax mill with
B/C head rotation and Sin840D control.

Generic A-C with a 50 degree nutator. Adheres to "travel limits" unless Setup >
Machine > Settings, Travel Limits tab has Ignore is toggled "on". For
example: Dorries Scharmann AMC 5ax mill with A/C head rotation and Heid
ATEK HSPlus control. Converts PQR Vector programming to A, C head
rotations.

Specific: Maka CR27TM 5ax mill with A/B rotation and BWO 900C control. 5axis orthogonal to 50.02 degree nutator conversion. Converts virtual A, B angles
into real A, B angles.
Also see: IjkAAxisMotion, IjkBAxisMotion.

VERICUT Macros
7

Generic A-C. Supports both linear and absolute rotary tables. Adheres to "travel
limits" unless Configuration menu > Machine Settings: Travel Limits tab has
Ignore is toggled "on". See Machine Settings window, in the VERICUT Help
section, in the CGTech Help Library.

Generic B-C, also supports any angle nutator. This option looks at the X rotation
of the B axis to determine the nutator angle. Although the angle may vary, the
basic machine configuration must remain fairly constant in order for this logic to
work. Adheres to "travel limits". Supports both linear and absolute rotary tables.
This was initially implemented for the DMU50.

Generic B-C, also supports any angle nutator. This is an updated version of 8,
described above. Typically this conversion type should be used rather than 8.

10 Generic A-C, also supports any angle nutator. Adheres to "travel limits". Supports
both linear and absolute rotary tables.
11 Generic B-A. Adheres to "travel limits". Supports both linear and absolute rotary
tables.
12 Generic A-B. Adheres to "travel limits". Supports both linear and absolute rotary
tables. Includes special case for (0, 1, 0) vector where the B remains unchanged,
and only the A rotates.
13 General A-C with A,B,C input. The input A, B, C angles are converted into an
IJK tool vector, and then conversion type 10 is used.
14 Generic C-B, also supports any angle nutator. Adheres to "travel limits".
Supports both linear and absolute rotary tables. Includes special case for (0, 1, 0)
vector where the B remains unchanged, and the C rotates.
IjkAAxisMotion
IjkBAxisMotion
IjkCAxisMotion
These macros are specific to the Maka CR27TM 5ax mill with A/B rotation and BWO
900C control, and are to be used with Ijk2AbcType, Override Value = 6. For this
control, A should call IjkCAxisMotion, and B should call IjkAAxisMotion. These
macros work will convert the CA orthogonal values into IJK, and then into CA with a 50
degree nutator head. If 0.0 is passed to IjkAAxisMotion, then the C-axis will be driven
to the last specified value passed to IjkCAxisMotion.
IJKVector
This macro is used to specify the IJK vector of the tool. It will set the I value on the first
call on the block, the J value on the second call on a block, and the K value on the third
call on a block. See also IVector, JVector, KVector.

VERICUT Macros
IJKVector2
This macro is used to specify the motion vector. It will set the I value on the first call on
the block, the J value on the second call on a block, and the K value on the third call on a
block.
InActivateAxis
Marks this axis as inactive for this subsystem. Used with ActivateAxis on synchronized
turning tool paths to avoid conflict with Stock/SubStock rotaries. Is passed the numeric
value of the axis to inactivate (1-12) or a text value of "All". Each axis is associated with
a numeric value as follows:
1 = X axis
2 = Y axis
3 = Z axis
4 = A axis
5 = B axis
6 = C axis
7 = U axis
8 = V axis
9 = W axis
10 = A2 axis
11 = B2 axis
12 = C2 axis
All = All axes are inactivated.

NOTE: Since the Spindle and Sub-spindle axis are common to both subsystem 1 and 2,
initially, their corresponding Axis is marked as "inactive". This way, the subsystems do
not conflict with each other.
IncrementalShift
Shifts the work coordinate system by the specified axis values. The values will be
interpreted as incremental. Only values specified on the block will be adjusted. (Shift
Offset 0, INCREMENTAL)
See "Notes about shift macros" in the Notes about Special Topics section, in the
CGTech Help Library, for additional information.
IncrementalShiftRotationDynamic
This macro was implemented to support incremental shift offsets while in Heidenhain
DEF 19 mode. The macro, however, is not specific to Heidenhain, and therefore it is not
being marked as a Heidenhain macro. The basic concept is that the offset is currently
being defined within the current "working plane". This "working plane" is a combination
of the rotation plane and the orientation of the stock. The offset specified (with the
WorkCoord&Value macros) will be multiplied by the current rotation plane, and then if

VERICUT Macros
dynamic work offsets are turned on, it will be un-rotated by the current rotation of the
stock. The result is an un-rotated offset that will be added to the existing shift offset.
(Shift Offset 0, INCREMENTAL)
See "Notes about shift macros" in the Notes about Special Topics section, in the
CGTech Help Library, for additional information.

NOTE: This macro will only work with X, Y, Z.


IndexCallMainSub
Calls the appropriate subroutine for the head/subsystem currently being processed. A
typical example of use would call this subroutine the first two times "M30" is processed.
The default sub names called are "1001" for the primary subsystem, and "2001" for the
secondary subsystem, but can be overridden via the "IndexChannel..." macros (see
below).
IndexChannel1Subroutine
IndexChannel2Subroutine
Sets the subroutine numbers to call for the primary and secondary subsystems,
respectively, when IndexCallMainSub is called. (Defaults: primary subsystem
subroutine=1001, secondary subsystem subroutine=2001)
Input
Renamed to InputMacro.
InputMacro
Stops the processing of the tool path file, and waits for user input.
InverseWordValue
This macro enables you to define one word that will be in the format: Value/Word rather
than the standard Word/Value. This macro was specifically created for the 840D control
which defines its labels as: "LABEL:". This macro must be called during the "Reset"
Event, with an Override Text value of the word that will be in this inverse format. The
specified word must be defined in the WORD table, must have the Type = "Macro", and
must have the Sub Type = "Alpha-Numeric". If this macro is called multiple times, only
the last occurrence will be used.
IVector, JVector, KVector
Reads the IJK vector values for a rotary motion in IJK format.
Also see: Ijk2AbcType

VERICUT Macros

Numbers A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Jcode
Depending on the motion type (circular or non-circular), either sets the Y coordinate of a
circle, or establishes a 3D offset. The interpretation of the center point is dependent on
the Circles control settings.
JVector
See IVector, JVector, KVector.

Numbers A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Kcode
Depending on the motion type (circular or non-circular), either sets the Z coordinate of a
circle, or establishes a 3D offset. The interpretation of the center point is dependent on
the Circles control settings.

KtBlockInit
This is a special block initialization macro to be used with K&T controls. It should be
called during the "Start of Block Processing" event, and after the default BlockInit
macro.
KtType2CLS
K&T Type 2 call subroutine macro where the subroutine call record does not have to
specify loop count (defaults to 1). The second argument optionally specifies the loop
count when it is a single value. Otherwise the second argument does not apply to loop
count. The loop count can also be set via variable 0 within the CLS command.
KVector
See IVector, JVector, KVector.
Numbers A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Label
Renamed to LabelMacro.

VERICUT Macros

LabelMacro
Identifies the current line with the given Label.
LabelName
Uses the Override Text value to set the name of the label which will be used by the
GotoLabel macro.
Also see: LabelMacro and CinciGotoLabelName
LabelNameValue
Uses the Override Value to set the name of the label which will be used by the
GotoLabel macro. Only integer values are supported
LinkAxisId
Use to specify the Axis number, representing the "driving axis", when using "link"
capabilities defined with SetAxisCompLink. Valid values are 1-12, which correspond to
the X, Y, Z, A, B, C, U, V, W, A2, B2, C2 axes. This value is modal.
Also see: "Notes about link macros" in the Notes about Special Topics section, in the
CGTech Help Library.
LinkCompName
Use to specify the name of the component representing the "driven (or linked)"
component, when using "link" capabilities defined with SetAxisCompLink. This value is
modal.
Also see: "Notes about link macros" in the Notes about Special Topics section, in the
CGTech Help Library.
LinkFormula
Specifies the formula which is to be used by SetAxisCompLink. The formula should be
specified as an Override Text value, and in the same syntax which is used for normal
Override Values. If no formula is desired, an Override Text value of "NONE" should
be specified. This value is modal.
Also see: "Notes about link macros" in the Notes about Special Topics section, in the
CGTech Help Library.

VERICUT Macros
LinkOffset
This macro defines how offsets applied to the driving axis (See LinkAxisId), are applied
to the linked component (See LinkCompName), when using the link capabilities (See
SetAxisCompLink)
Override Value = 0 Offset will be applied to the linked axis (default same as
existing logic)
Override Value = 1 Offset will not be applied to the linked axis, plus special rotary
logic to work with link axis
Override Value = 2 Offset will be applied to linked axis, plus special rotary logic to
work with link axis
Override Value = 3 Offset will be applied to linked axis based on the formula, plus
special rotary logic to work with link axis
Also see: "Notes about link macros" in the Notes about Special Topics section, in the
CGTech Help Library.
LoadNextTool
Loads the next tool listed in the Tool List. Tools are retrieved from the list in sequential
order. For example, the first tool change loads the first tool in the list for the active
subsystem, the second tool change loads the second tool in the list, and so on. This macro
is useful to automate tool change activity in VERICUT for manual tool change machines;
typically called via the "M 0" group.
LoadStocks
Performs a "load stocks" operation where VERICUT loads new stock models for Stock
components having models defined, but a cut stock model does not exist. Same action as
Project menu > Setup Models > Load Stocks via the VERICUT user interface.
LoopCount
Sets the loop count. The loop count is used for the number of times a subroutine is to be
executed, and is also used for the number of times the motion in the current block should
be repeated. (non-modal)

Numbers A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

MacroNotFoundMsgOnOff
Turns "On" and "Off" the printing of the warning message that a macro was not called for
a given word/value. 0 is "Off". 1 is "On". Default is "Off". Typically this macro would be
called during the "Reset" event.

VERICUT Macros
MacroVar
Fanuc (or Fanuc like) specific macro that sets a block variable based on the current word.
These block variables are non-modal, and are used as subroutine parameters with the
following macros: CallNCMacro, CallNCMacroMotion, and CallNCMacroBlock.
Within the subroutine, specific variables are set based on the following table
"A", 1,
"B", 2,
"C", 3,
"D", 7,
"E", 8,
"F", 9,
"H", 11,
"I", 4,
"J", 5,
"K", 6,
"M", 13,
"Q", 17,
"R", 18,
"S", 19,
"T", 20,
"U", 21,
"V", 22
"W", 23,
"X", 24,
"Y", 25,
"Z", 26,
Alternately, if multiple IJKs exist on the block, specific variables will be based on the
following table
"A", 1,
"B", 2,
"C", 3,
"I", 4,
"J", 5,
"K", 6,
"I", 7,
"J", 8,
"K", 9,
"I", 10,
"J", 11,
"K", 12,
"I", 13,
"J", 14,
"K", 15,
"I", 16,

VERICUT Macros
"J", 17,
"K", 18,
"I", 19,
"J", 20,
"K", 21,
"I", 22,
"J", 23,
"K", 24,
"I", 25,
"J", 26,
"K", 27,
"I", 28,
"J", 29,
"K", 30,
"I", 31,
"J", 32,
"K", 33,
MahoSequence
Similar to Sequence, except that it also uses the sequence number to recognize the
beginning of a new subroutine. Numbers 9000 or above are reserved for program and
subroutines. This is MAHO/PHILLIPS specific.
MahoVertical2Rest
Rotates Maho's vertical spindle to the 180 position.
MahoVertical2Work
Rotates Maho's vertical spindle to the 0 position.
MaxTableRPM
Sets the max table RPM's to be the specified value. This is used in turning when
calculating the current RPM while in constant surface speed mode.
MaxTesselationAngle
This value is used with the rotary tolerance to define the number of intermediate points.
This value is currently used if the new 5-axis spline logic has been activated by
MinTesselationPoints. The number of intermediate points will be based on the
maximum of the two calculation methods.
MazakMillingInterpolationOff
Turns off a special milling mode for a Mazak controller which causes X values to be
multiplied by 2.

VERICUT Macros
MazakMillingInterpolationOn
Turns on a special milling mode for a Mazak controller which causes X values to be
multiplied by 2.
MazakPartLoader
On the first call, it calls PartTransformation with a value of 1 and loads the first fixture
within VERICUT. On the third call, it calls PartTransformation with a value of 2 and
loads the second fixture within VERICUT.

NOTE: The MazakPartLoader macro is obsolete and no longer supported. If called,


the following message: "The macro, MazakPartLoader, is no longer supported" is
output.
MazakSpindleRotation
If in milling mode, the B axis will be rotated to the specified value. In turning mode, the
B axis will be rotated to the 0 position.
MessageMacro
Creates a message using the text string input using the Override Text field. The message
type is specified by the input numeric value. 1= Error, 2=Warning, 3= Info, 4= Debug, 5=
Input, 6=Output, 7= Macro Modal, 10= Error Continuation
See Override Text in the Add/Modify Word/Address window (see the VERICUT Help
section in the CGTech Help Library) for information on using "expressions" in the
Override Text field.
MinTesselationPoints
Used to define the minimum number of intermediate points required to activate the new
5-axis spline logic. The default value is 4. If the value of MinTesselationPoints is 0, or
the number of intermediate points created is less than the specified Override Value, the
new 5-axis spline logic will not be used.
Also see: MaxTesselationAngle
MirrorA
Mirrors A, rotations by negating the A values.
MirrorB
Mirrors B rotations by negating the B values.
MirrorC
Mirrors C rotations by negating the C values.

VERICUT Macros
MirrorA2
Mirrors A2 rotations by negating the A2 values.
MirrorB2
Mirrors B2 rotations by negating the B2 values.
MirrorC2
Mirrors C2 rotations by negating the C2 values.
All of the above Mirror... macros behave in a similar manner as the Mirror
XYZ macros. Basically, if mirroring is turned on for that axis, the value is negated.
Similar to X, Y, and Z, when the WorkCoord[*]Value is called with an Override Text
value of "MIRROR", and the corresponding axis set to mirror, the input value will be
mirrored.

NOTE: It is not clear whether this is correct for all combinations of linear and absolute
rotary tables.
MirrorACancel
Cancels MirrorA mirroring about the A-axis.
MirrorBCancel
Cancels MirrorB mirroring about the B-axis.
MirrorCCancel
Cancels MirrorC mirroring about the C-axis.
MirrorA2Cancel
Cancels MirrorA2 mirroring about the A2-axis.
MirrorB2Cancel
Cancels MirrorB2 mirroring about the B2-axis.
MirrorC2Cancel
Cancels the MirrorC2 mirroring about theC2-axis.
MirrorAValue
Same as MirrorA.

VERICUT Macros
MirrorBValue
Same as MirrorB.
MirrorCValue
Same as MirrorC.
MirrorA2Value
Same as MirrorA2.
MirrorB2Value
Same as MirrorB2.
MirrorC2Value
Same as MirrorC2.
MirrorCancel
Cancels all mirroring.
MirrorX
Mirrors values about the Z-axes.
MirrorY
Mirrors values about the Y-axes.
MirrorZ
Mirrors values about the Z-axes.
MirrorXCancel
Cancels the MirrorX mirroring about the X-axes.
MirrorYCancel
Cancels the MirrorY mirroring about the Y-axes.
MirrorZCancel
Cancels the MirrorZ mirroring about the Z-axes.

VERICUT Macros
MirrorXValue
Mirrors values about the X-axes.
MirrorYValue
Mirrors values about the Y-axes.
MirrorZValue
Mirrors values about the Z-axes.
ModeAbsolute
Sets the command mode to Absolute.
ModeIncremental
Sets the command mode to Incremental.
ModeAsymTurningOnOff
Triggers the special motion in VERICUT, called CRANK_MOTION. This motion is
identified by X-Caliper and returns point/normal information.
Motion3DCircle
This macro sets the motion type to 3D_CIRCLES. This is similar to MotionCCW and
MotionCW except that the direction is not specified, and the circle does not need to be in
the local XY, YZ, or ZX plane. The direction and plane is then determined by some other
parameter.
See CircleIntermediatePoint.
MotionBlockSyncOnOff
This function turns on and off the capability to SYNC on every motion block. A value of
1 turns on this capability. A value of 0 turns off this capability.

NOTE: The sync occurs after motion. But by syncing with the G68 call, it can be made
to look as if the sync is occurring prior to motion.
MotionCCW
Sets the motion type to CCW.
MotionCW
Sets the motion type to CW.

VERICUT Macros
MotionLinear
Sets the motion type to Linear.
MotionNurbs
Sets the motion type to NURBS and initialize the NURBS data.
MotionOnOff
These macros control when motions and cutting are simulated, depending on values
passed. Calling this macro outputs a "PPRINT/VERICUT-MOTION" record to the
Output file. Calling with an Override Value of "1" turns motion simulation and cutting on
(default). A value of "0" turns motion simulation and cutting off. Motion commands and
positions are processed, but simulation, cutting, collision detection, and axis overtravel
detection are turned off during these moves. When motion is turned on, the machine/tool
"jumps" to its current position. "1" is automatically set when a reset is done.
MotionOnOffSide
MotionOnSide
These macros determine which codes from the tool path are processed and which
machine head is being simulated.

NOTE: These are special purpose macros designed for use with pre-5.0 VERICUT
simulating a custom INDEX mill-turn NC machining center, and are NOT intended for
general use.
MotionPlaneXY
Sets the motion plane to be the XY plane.
MotionPlaneYZ
Sets the motion plane to be the YZ plane.
MotionPlaneZX
Sets the motion plane to be the ZX plane.
MotionPoly
Sets the motion type to Poly.
MotionRapid
Sets the motion type to Rapid.

VERICUT Macros
MotionThread
Sets the motion type to Thread.
MotionToolOffsetNeg
By default, this macro uses the cutter compensation value and offsets the XYZ values in
the current block by this amount opposite the direction of motion. If used with the macro
MotionToolOffsetOnMotion with an Override Value of 1, the offset associated with
the MotionToolOffsetNeg will be applied to the next motion.
MotionToolOffsetPos
By default, this macro uses the cutter compensation value and offsets the XYZ values in
the current block by this amount in the direction of motion. If used with the macro
MotionToolOffsetOnMotion with an Override Value of 1, the offset associated with
the MotionToolOffsetPos will be applied to the next motion.
MotionToolOffsetOnMotion
If the macro MotionToolOffsetOnMotion is called, and passed in an Override Value of
1, the offset associated with the MotionToolOffsetPos or the MotionToolOffsetNeg will
be applied to the next motion. The MotionToolOffsetOnMotion macro will typically be
called during the Start of Processing event. An Override Value other than 1 will cause
the MotionToolOffsetPos and MotionToolOffsetNeg to be applied only to the current
block.
MountTool
Mounts the specified tool (Override Value = toolid) onto the specified tool component
(Override Text = name of the tool component).

NOTES:
1. This is NOT a tool change.
2. The tool id will be cross referenced with the tool list. Mounting the tool DOES
NOT change the active tool, execute a tool change retract, increment the number
of tools, or update tool offsets. It is strictly a way to mount a tool. Typically, this
will be used with a tool changer.
Also see: UnMountTool
MountToolIndex
Mounts the specified tool onto the tool component with the matching tool index value
(Override Value = tool index value) and subsystem (Override Text = subsystem of tool
component).

VERICUT Macros

NOTES:
1. This is NOT a tool change.
2. The tool, represented by the tool index value, will be cross referenced with the
tool list. Mounting the tool DOES NOT change the active tool, execute a tool
change retract, increment the number of tools, or update tool offsets. It is strictly a
way to mount a tool. Typically, this will be used with a tool changer.
Also see: UnMountToolIndex
MoveCutStockCompName
This macro defines the name of the component whose Cut Stock will be moved with the
MoveCutStockToCsys macro. This value is modal. If not called, the active stock for the
current subsystem will be used.
MoveCutStockFromCsys
This macro defines the "FROM" CSYS that will be used with the MoveCutStockToCsys
macro. This value is modal.
MoveCutStockToCsys
This macro defines the "TO" CSYS. It then moves the corresponding Cut Stock based on
the "FROM" and "TO" CSYS. The "TO" CSYS value is non-modal and must be
specified on every call.
Also see MoveCutStockCompName and MoveCutStockFromCsys
MoveDesignWithStock
Specifies whether the design component(s) should be moved when the stock is moved
with the MoveCutStockToCsys macro. A value of 0 sets it to "No" (default), a value of
1 sets it to "Yes". All Design and Design Point components that are at the same level or
below the specified stock will be moved.

Numbers A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

NcodeSeqSub
Similar to Sequence, except that it also marks the sequence number as the beginning of a
subroutine during the first pass.

VERICUT Macros
NCVarDefaultValue
This macro is used to determine how an NC variable should be set when created by the
MCD program.
0 = default to 0.0. This is the default value.
1 = default to un-initialized

NOTES:
1. Option 0 is the default in order to stay compatible with previous releases. 1 is the
recommended setting for all controls. It is a good programming practice to always
set a variable before using it. By setting this macro to 1, and setting
NCVarWarnMessage to 2, enables you to maximize the error checking that
VERICUT can do for you.
2. This setting will have no effect on Fanuc's G65.
NCVarWarnMessage
This macro will determine when a warning message should be printed associated with an
un-initialized variable being referenced.
0 = Never print a warning message.
1 = Print a warning message only if the variable did not previously exist. This is the
default value.
2 = Always print a warning message.
NOTE: Option 1 is the default in order to stay compatible with previous releases. This
option really only makes sense for Fanuc users who knowingly use un-initialized
variables in expressions. Even in this case, the option really doesn't make sense because
the concept of the variable not being created is something specific to VERICUT.
Typically you will always want to know when an un-initialized variable is being
referenced.
NULL
Renamed to NullMacro.
NullMacro
Immediately returns-no action is performed. This macro can be used to avoid error
messages that are not important for the processing of the program. The macro can also be
used in the case of G73X1 (MAHO). In this example, the X1 will cause the mirroring in
X to be cancelled (since G73 is also in the block). Since the operation has been executed
with the processing of the X value, there is nothing left to be done with the G73 value.
G73 can be set to call the "null" macro.

VERICUT Macros
NumEndBlankContour
Used with the NUM G80 block indicating the end of a blank contour. The control then
reads the cycle contour. After processing the cycle, the block following the G80 is read.

NOTE: The NUM control should use the NumSequence macro for the start and end
sequence numbers. This allows the format N1 G64 N2 N3 ... Where N2 defines the start
and N3 defines the end sequence number.
NumIfCheck
Similar to IfCheck except if no comparison is present, it will act as an unconditional
branch.
NumLengthCompX
Sets the tool length compensation in the X direction.
NumLengthCompY
Sets the tool length compensation in the Y direction.
NumLengthCompZ
Sets the tool length compensation in the Z direction.

NumPlane
Defines a motion plane in 3D space, typically used in the NUM control. For example: If a
circle is drawn in the XY plane, Z remains constant and only X and Y changes. If a circle
is drawn after a 3D plane is established, the circle would be drawn within this 3D plane.
NumPlaneA
NumPlaneB
NumPlaneC
NumPlaneU
NumPlaneV
NumPlaneW
Each of the NumPlane... macros above define a 3D plane orientation, typically used in
the NUM control.
NumSequence
Depending on the contents of the current block, this macro will execute Sequence,
SequenceStartEnd, or GotoJump.

VERICUT Macros
NumSubroutineSequence
Similar to SubroutineSequence except the beginning of a new subroutine will
automatically mark the end of the previous subroutine.
NumSubSequenceLoop
If "H" is in the block, a call to the corresponding subroutine will be made. Otherwise, the
specified sequence of blocks will be executed.
NumTurnCycle
Indicates a NUM turning cycle will be performed. The type of cycle is indicated by an R,
or P, word in the cycle block. Macros CycleTurnRoughCut and CycleTurnFace should
be used with R, and P, respectively.
NurbsDegree
Sets the NURBS order to the input value + 1.
NurbsInitialControl
Adds an initial control point to the current NURBS data.
NurbsKnot
Initializes the NURBS data (if this defines the beginning of a NURBS statement), and
adds a NURBS knot point to the current NURBS data.
NurbsOrder
Initializes the NURBS data (if this defines the beginning of a NURBS statement), and
sets the NURBS order.
NurbsWeight
Sets the NURBS weight.

Numbers A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

OkumaCancelShiftRotate
Cancels both the shift offset and the rotation. (Shift Offset 1)
OkumaControllingHead
Sets the controlling head to be Turret A or Turret B. A value of 110 defines Turret A as
the controlling head, and a value of 111 defines Turret B as the controlling head.

VERICUT Macros
OkumaCopyEnd
Processes the end of the "Copy" command for Okuma. This includes the branching based
off of the loop count, and the updating of the shift offset and the rotation value. (Shift
Offset 1, INCREMENTAL)
See "Notes about shift macros" in the Notes about Special Topics section, in the
CGTech Help Library, for additional information.
OkumaCopyLoopCount
Sets the Okuma loop count.
OkumaCopyStart
Processes the start of the "Copy" command for Okuma. This includes the initializing of
the branching variables, and the updating of the shift offset and the rotation value. (Shift
Offset 1, INCREMENTAL)
See "Notes about shift macros" in the Notes about Special Topics section, in the
CGTech Help Library, for additional information.
OkumaCutDepth2
Depth of cut after cutting condition change point 2.
OkumaCutDepth3
Depth of cut after cutting condition change point 3.
OkumaEndContour
Indicates the last block of an Okuma turning cycle contour.
OkumaFeedrate2
Feedrate after cutting condition change point 2.
OkumaFeedrate3
Feedrate after cutting condition change point 3.
OkumaGotoJump
Branches to the specified sequence number, like GotoJump, but also saves the current
position for a return after an Okuma cycle completed.

VERICUT Macros
OkumaGotoLabel
Branches to the specified label like GotoLabel, but also saves the current position for a
return after an Okuma cycle completed.
OkumaShiftRotate
2D rotation that causes the coordinate system to be rotated, within the active plane, by a
specified angle. The angle is specified with the RotationAngle macro. In addition to the
rotate, a shift can also be specified. The shift can be specified with calls to the
WorkCoordXValue, WorkCoordYValue, and WorkCoordZValue macros. The XYZ
values are based on the machine coordinate system. The rotation angle is based on the
machine coordinate system. (Shift Offset 1, ABSOLUTE/NON-MODAL)
See "Notes about shift macros" in the Notes about Special Topics section, in the
CGTech Help Library, for additional information.
EXAMPLE:
G90X0Y0
G68X1Y1R45
X0Y0
X1
Y1
X0
Y0
G91G68X1Y1R45
G90X0Y0
X1
Y1
X0
Y0

==> X0 Y0
==>
==>
==>
==>
==>
==>
==>
==>
==>
==>
==>

X1 Y1
X1.707 Y1.707
X1, Y2.414
X.2929, Y1.707
X1 Y1
Because of the G91, rotate angle is now 90.
X1 Y1
X1 Y2
X0 Y2
X0 Y1
X1 Y1

OkumaStartBlankContour
Indicates the first block of an optional contour defining the blank geometry of a turning
cycle. The blocks are only processed when a turning cycle is active, otherwise they are
skipped.
OkumaStartContour
Indicates the first block defining the contour for an Okuma turning cycle. The blocks are
only processed when a turning cycle is active, otherwise they are skipped.
OkumaStartCutDepth2
Used with the Okuma G84 cycle to specify the point where cutting conditions are
changed to use cut 2.

VERICUT Macros
OkumaStartCutDepth3
Used with the Okuma G84 cycle to specify the point where cutting conditions are
changed to use cut 3.
OkumaTurnCycle
Indicates an Okuma turning cycle will be performed. The control starts reading the
contour referenced within the cycle block. After processing the cycle, the block following
the cycle is read.
Okuma_CallSubName
Similar to CallSubName except assumes the subroutine name begins with the second
character-the first character of the input text string argument.
OliConvInit
Special Olivetti conversion initialization routine. This routine is to be called along with
the standard ConversionInit routine during initialization.
OliLabel
Olivetti specific routine for handling labels.
OliType2EPP
Olivetti specific routine for handline the TYPE II EPP command. This command takes 2
label arguments, where to jump to, and when to jump back.

NOTE: This routine is dependent on OliLabel to define the labels and to execute the
jump when the second label is reached.
Optimizable
Increments a counter each time it is called on a block. The counter is used by OptiPath to
determine if a block is optimizable, even if G-codes exist in blocks that are not typically
optimizable. The block is optimizable when the number of objects in a block equals the
optimizable count. The optimizable count is re-initialized with a new block.
OptiMWordLast
Controls where M-codes appear in blocks optimized by OptiPath. By default, VERICUT
preserves the order of NC codes as they appeared in the input block. When a feed rate
code does not appear in the original input block, optimized feed rates are added at the end
of the block. On some NC controls, M-codes (if present) must always appear at the end of
the block. In this case, call this macro with and Override Value of "1" at the "Start of
Processing" event. That causes X, Y, Z, S, F words to come before the first M word.

VERICUT Macros

Examples follow:
Excerpt from a sample input tool path to optimize:
11LX.1981Y.6691Z3.3884R0F30M3
12LX.1295Y.7789Z3.3246R0M3
13LX.0153Y.8397Z3.2608R0M3
14LX-.114Y.8352Z3.1969R0M3
15LX-.2238Y.7666Z3.1331R0M3
16LX-.2846Y.6524Z3.0692R0M3
17LX-.2801Y.523Z3.0054R0M3
18LX-.2115Y.4133Z2.9415R0M3
19LX-.0973Y.3525Z2.8777R0M3
20LX.0321Y.357Z2.8138R0M3
21LX.1418Y.4255Z2.75R0M3
Feed rates added via default optimization:
11LX0.1981Y0.6691Z3.3884R0F2000M3
12LX0.1295Y0.7789Z3.3246R0M3
13LX0.0153Y0.8397Z3.2608R0M3
14LX-0.114Y0.8352Z3.1969R0M3
15LX-0.2238Y0.7666Z3.1331R0M3
16LX-0.2846Y0.6524Z3.0692R0M3
17LX-0.2801Y0.523Z3.0054R0M3
18LX-0.2115Y0.4133Z2.9415R0M3F100
19LX-0.0973Y0.3525Z2.8777R0M3F110
20LX0.0321Y0.357Z2.8138R0M3F100
21LX0.1418Y0.4255Z2.75R0M3F90
Feed rates added via optimization with OptiMWordLast active:
11LX0.1981Y0.6691Z3.3884R0F2000M3
12LX0.1295Y0.7789Z3.3246R0M3
13LX0.0153Y0.8397Z3.2608R0M3
14LX-0.114Y0.8352Z3.1969R0M3
15LX-0.2238Y0.7666Z3.1331R0M3
16LX-0.2846Y0.6524Z3.0692R0M3
17LX-0.2801Y0.523Z3.0054R0M3
18LX-0.2115Y0.4133Z2.9415R0F100M3
19LX-0.0973Y0.3525Z2.8777R0F110M3
20LX0.0321Y0.357Z2.8138R0F100M3
21LX0.1418Y0.4255Z2.75R0F90M3

VERICUT Macros
OptipathExpandSubs
Sets a flag indicating whether or not the current subroutine should be expanded. The call
to this macro should be associated with a Word rather than the start of processing event.
For example: M98 will call OptiPathExpandSubs and then CallSub.
Override Value:
0 = do not expand
1 = expand
2 = expand only if the current tool is being optimized.
The subroutine Call, Start, and return will be commented out. For example: the mcd line
"N5 O100 (Example sub)" will get converted to "(Optipath Expansion: N5 O100)
(Example sub)"

NOTES:
1. This flag is non-modal, and gets reset to "don't expand" on every block.
2. This macro and OptiPathOptimizeSubs are mutually exclusive.
OptiPathOptimizeCDC
Turns on/off the capability to optimize while in cutter comp mode. If passed a value of 1,
optimization will be allowed in cutter comp mode. The default is to not optimize when in
cutter comp mode. If needed, this macro would typically be called during the start of
processing event.
NOTE: Optimizing with CDC is not supported with Inverse Time, Add more Points,
Accel/Decel or Sync. The Add more Points and Accel/Decel features will automatically
be turned off while processing CDC motion.
OptiPathOptimizeSubs
Sets a flag indicating whether or not current subroutine should optimized. The call to this
macro should be associated with a Word rather than the start of processing event. For
example: M98 will call OptiPathOptimizeSubs and then CallSub.
Override Value:
0 = do not optimize
1 = optimize
2 = optimize only if the current tool is being optimized.

NOTES:
1. This flag is non-modal, and must be called when the corresponding subroutine is
called.
2. Each optimized subroutine will be output to a separate file. The name of the file
will be the subroutine name with a ".opti" extension. The writing to separate files

VERICUT Macros
is independent of how or where the subroutines were located in the original
program. The user is then responsible to do what ever is needed to incorporate
these new subroutines into the program.
3. This macro and OptipathExpandSubs are mutually exclusive.
OptiRestoreAdditionalCuts
Restores the ability to add additional cuts, that were previously suppressed, via calling
the OptiSuppressAdditionalCuts macro. Do not call this macro unless the "suppress"
macro was previously called.
OptiSettings
This macro updates a field for the current Optipath Record. If a current Optipath Record
does not exist, a new one will be created with default settings. This update is modal for
the current Optipath Record. This update will not be saved in the Optipath Library file.

NOTE: The existing PPRINT capabilities can be used to set the current OptiPath
Library Record.
This macro should be called with an Override Text value of the feature being updated,
and its corresponding value. The following are the features and values that are supported.

FEATURE

OVERRIDE VALUE

TEETH

Numeric

UNITS

"0"=Inch, "1"=Millimeter

OPTIMIZE_BY

"0"=Volume, "1"=Tables, "2"=CSS,


"3"=Air Cuts, "4"=Chip, "5"=Chip
Volume, "6"=None, "7"=API

OPTIMIZE_BY_VOLUME

Numeric

CHIP THICKNESS

Numeric

MODIFY

"0"=Feedrates Only, "1"=Feedrates and


Cuts

FEEDRATE_CONTROL

"0"=Off, "1"=Constant, "2"=Limit

VOLUME_REMOVAL_RATE_LIMIT

Numeric

VERICUT Macros

MINIMUM_FEEDRATE_CHANGE

Numeric

CIRCLE_FEEDRATE_OPTION

"0"=Programmed, "1"=Fixed,
"2"=Optimize, "3"=Break up

CIRCLE_FEEDRATE_FIXED

Numeric

NURBS_FEEDRATE_OPTION

"0"=Programmed, "1"=One Feedrate,


"2"=Multi Feedrate

FEEDRATE_WEAR_REDUCTION

Numeric

RESOLUTION_OPTION

"0"=Off, "1"=On

RESOLUTION_DISTANCE

Numeric

CLEAN_UP_FEEDRATE

Numeric

MINIMUM_CUT_FEEDRATE

Numeric

MAXIMUM_CUT_FEEDRATE

Numeric

AIRCUT_FEEDRATE

Numeric

DEPTH_OPTION

"0"=Feed Per Minute, "1"=Percent of


Programmed, "2"=Feed Per Tooth

WIDTH_OPTION

"0"=Off, "1"=On

ANGLE_OPTION

"0"=Off, "1"=On

PLUNGE_OPTION

"0"=Off, "1"=On

PLUNGE_FEEDRATE

Numeric

PLUNGE_PROGRAMMED

Numeric

PLUNGE_CLEARANCE

Numeric

RETRACT_OPTION

"0"=Off, "1"=On

RETRACT_FEEDRATE

Numeric

RETRACT_PROGRAMMED

Numeric

ENTRY_FEEDRATE_OPTION

"0"=Off, "1"=Feed Per Minute, "2"=% of


Programmed, "3"=% of Calculated

VERICUT Macros

ENTRY_FEEDRATE

Numeric

ENTRY_PROGRAMMED

Numeric

ENTRY_CALCULATED

Numeric

ENTRY_CLEARANCE_DISTANCE

Numeric

ENTRY_CUT_DISTANCE

Numeric

EXIT_FEEDRATE_OPTION

"0"=Off, "1"=Feed Per Minute, "2"=% of


Programmed, "3"=% of Calculated

EXIT_FEEDRATE

Numeric

EXIT_PROGRAMMED

Numeric

EXIT_CALCULATED

Numeric

EXIT_CLEARANCE_DISTANCE

Numeric

EXIT_CUT_DISTANCE

Numeric

SPINDLE_CONSTANT_SURFACE_SPEEDNumeric
SPINDLE_MINIMUM_RPM_CHANGE

Numeric

SPINDLE_MAXIMUM_RPM

Numeric

SPINDLE_MINIMUM_RPM

Numeric

SPINDLE_FPT

Numeric

UNIT_POWER

Numeric

ACCEL_MODE

"0"=Off, "1"=On

SPINDLE_OVERRIDE

"0"=Off, "1"=On

The following features are supported in the OLB file, but are not supported with this
macro:
STOCK_MATERIAL
MACHINE
TOOL_DESCRIPTION
DEPTH_VALUES
DEPTH_FEEDRATE_VALUES

VERICUT Macros
WIDTH_VALUES
WIDTH_FEEDRATE_VALUES
ANGLE_VALUES
ANGLE_FEEDRATE_VALUES
CUTTER_DEPTH_WIDTH
TLS_FILE
TOOL_ID
OptiSuppressAdditionalCuts
Suppresses additional cuts that would have been added during optimization via the "Add
More Cuts" OptiPath setting (ref. OptiPath window: Settings tab in the VERICUT
Help section, in the CGTech Help Library). After calling this macro, be sure to call
OptiRestoreAdditionalCuts while processing the same tool.
OptiXYZFormat
Controls if X, Y, Z tool position values are expanded when Modify Existing Cuts Only
is active during optimization by OptiPath. Use of this macro is applicable when
programming in variable format, e.g. N10X#5Y#3Z#9F100. By default, optimized X, Y,
Z tool position values are expanded (variable values are resolved) to represent actual tool
positions. Calling this macro with an Override Value of "0" causes the X, Y, Z values to
not be expanded. The X, Y, Z values will be written out as they were on the input block.

NOTES:
1. This feature should NOT be used when the expansion of variables is required, e.g.
subroutines, branching, etc.
2. The expansion of X, Y, Z is only suppressed when the "Modify Existing Cuts
Only" OptiPath setting is active (ref. OptiPath window: Settings tab).

Numbers A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

PartNormalX
PartNormalY
PartNormalZ
The PartNormal... macros are used with Tool3dOffset macro to define the normal to the
part surface.
PartTransformation
Uses the Part Transformation table to send a MATRIX and optionally a REVERSE
command to VERICUT. For this macro to work, "Process Matrix" on the Project menu
> Processing Options > APT Settings: Motion tab must be active.

VERICUT Macros

See the VERICUT Help section, in the CGTech Help library for information on the APT
Settings window.

NOTE: The PartTransformation macro is obsolete and no longer supported. If called,


the following message: "The macro, PartTransformation, is no longer supported" is
output.
PitchForcesHelical
Sets a flag which indicates that if the pitch is specified on the line, then interpret the
current circular block as helical. The delta distance perpendicular to the current plane will
be calculated based on the delta angle of the arc, and the number of full loops to be
executed. This macro would typically get called during start of processing.
Also see: CircleCenterX, CircleCenterY, CircleCenterZ, CircleCenterZWTracking,
ICode, JCode, KCode, and the "Pitch Specified with IJK" modal.
PivotOffsetCompName
Defines the component name to be used with TurnOnOffGagePivotOffset in
determining the distance from the pivot point to the active tool component. If this value
is defined, the corresponding component origin will define the pivot point. If this value is
not defined, the pivot point is defined to be the parent rotary, or the intersection point of
the 2 rotaries, or the highest parent rotary if the rotary axis does not intersect. See the
illustration below.

PivotOffsetCompNameB
Defines the component name to be used with TurnOnOffGagePivotOffset in
determining the distance from the pivot point to the tool component. If this value is
defined, the corresponding tool component origin will define the tool component point. If
this value is not defined, the active tool component origin will be used. See the
illustration above.

VERICUT Macros
PlaneAxisMapping
Control mapping of working planes between XYZ and UVW axes. This macro should be
called via the G17, G18, G19 groups. It defaults to defining the planes with the XYZ
axes. If U, V, or W are specified on the line, the corresponding axis will be used with
circles and cutter comp. This macro should be called after motion.
PlaneAxisVectorX
This macro sets the X value for the specified axis. The axis is specified with the text
value. Valid axes are: "X", "Y, and "Z". This data can be used with WorkingPlane2Abc.
PlaneAxisVectorY
This macro sets the Y value for the specified axis. The axis is specified with the text
value. Valid axes are: "X", "Y", and "Z". This data can be used with
WorkingPlane2Abc.
PlaneAxisVectorZ
This macro sets the Z value for the specified axis. The axis is specified with the text
value. Valid axes are: "X", "Y", and "Z". This data can be used with
WorkingPlane2Abc.
PlaySoundFile
When called, it plays the wav file specified in the Override Text field.
PolarAngle
This macro accepts up to 2 polar angles. A simple form of a polar command is:
A140 X60
This says, start at an angle of 140 degrees, and continue until you reach X60. We also
support complex Siemens 840C commands in the form:
A110 A170 X90 Z-70 B15 B3
PolarInterpolation
Turns on and off polar interpolation.
1 for On
0 for Off.

NOTE: The "interpolation" state (None, Polar, or Cylindrical) is supported as a


conditional state, and can be displayed in the Status window.

VERICUT Macros
PolarLinearAxis
Sets the linear axis that will driven based on the Cartesian coordinates. The data is passed
as:
1 = X (default)
2=Y
3=Z
PolarRotationalAxis
Sets the rotational axis that will be driven based on the Cartesian coordinates. The data is
passed as:
4=A
5=B
6 = C (default)
PolarXValue
Sets the X Cartesian coordinate value for Polar Interpolation.
PolarYValue
Sets the Y Cartesian coordinate value for Polar Interpolation.
PolarZValue
Sets the Z Cartesian coordinate value for Polar Interpolation.
PreToolCompSelect Stores the pre-selected tool component number.
Probe
Turns on probing for the current block. This macro is associated with the active tool
component, and the corresponding tool must be a Probe Tool. The axes move until they
arrive at the programmed location, or until the probe contacts something.
If the Override Text value begins with "RETURN=", then the string following the equal
sign will be interpreted as a variable name in which the return code from the Probe
motion will be returned. A return code value of 1 means that a "hit" occurred and a return
code value of 0 means that a "hit" did not occur. The specified variable name is modal.
The variable does not need to be pre-defined.
When a "Probe" action occurs:
The spherical probe tip(s) are processed through a special algorithm that computes an
accurate "hit" location. The location is based on the "great circle" of the sphere which lies
in the motion plane.

VERICUT Macros

The axes are moved to that location. If the spherical probe tip contacts at any other
location other than the "great circle" a warning message is output and motion stops at the
alternate location. If no contact is detected, motion continues to the programmed location.
Standard collision logic is used to determine if any other component hits something
during the probe motion, but the motion continues to the probe destination.

NOTE: The Probe macro requires a CNC Machine Probing license.


ProcessCompNameValue
Sets the position of the component whose name is specified in the input text string to the
specified numeric value.
ProcessCompRegValue
Sets the position of the component whose register value is specified in the input text
string to the specified numeric value.
ProcessMotion
Processes the motion associated with the previous set of commands. This command is
automatically called at the end of the block. This command can also be called as a macro
to create additional motion.
ProcessTimeOnOff
Turns machining time On and Off during toolchain operations. This allows the system to
ignore times from tool changer motions and only use the exact exchange time defined in
the toolchain component dialog. An Override Value of zero turns time off, and a value
of one turns time back on.

VERICUT Macros
ProgramStartNextLine
Marks the following block as the first block of the program. This is used when the
beginning of a file contains subroutines followed by a specific code which marks the
beginning of the program.

Numbers A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

RapidPlanePriorityType
Supports the concept of the motion of a rapid move being dependent on the plane rather
than the machine axis. To turn on this capability, this macro should be called during start
of processing with an override value of 1.
Sets a flag which determines whether the rapid motion should be dependent on the active
plane, and if so, the type of rules that should apply. Default is zero. Currently supported
values are:
0 = Rapid is NOT dependent on active plane.
1 = Rapid IS dependent on active plane.
Movement to workpiece: rotaries, then linear in plane, then normal to plane
Movement away from workpiece: normal to plane, the linear in plane, then rotaries

NOTE: If motion is set to be dependent on active plane, the rapid priority axis should
probably be set to moving at the same time with all axis interpolated.
Rcode
Depending on the motion type (circular or non-circular), either sets the radius of a circle,
or sets the R point level of a cycle. For a circle the interpretation of the center point is
dependent on the Circles control settings.
ReferencePoint
Causes a return to the machine reference point for the axes specified on the block. This
action occurs after block motion has been processed.
ReferencePointCancelOffsets
Causes a return to the machine reference point for the XYZ axes specified on the block.
This action occurs after block motion has been processed. The corresponding work and
shift offsets for the specified axis are also reset to 0.

VERICUT Macros
ReferencePointIndex
Causes a return to the machine reference point for the axes specified on the block. This
macro is identical to ReferencePoint, except the incoming numeric value will be used as
an index into the Machine Reference Location table (see the Tables for Processing GCodes section, in the CGTech Help Library).

NOTE: ReferencePoint always uses index 1.


ResetIfCheck
Resets the IfCheck condition to TRUE.
ResetWorkCoordParms
The WorkCoord...Value macros set a flag indicating that a value has been specified for
the corresponding axis. These flags are reset (to not present) on each block. This macro is
also used to reset these flags. This macro only needs to be called if the control allows
multiple sets of Work Coordinate values to be specified on a single block. This macro
was specifically implemented for the G&L control.
See "Notes about shift macros" in the Notes about Special Topics section, in the
CGTech Help Library, for additional information.
RestoreMotionType
Restores the motion type to the last non-rapid motion.
RestoreSubsystemID
Restores the active subsystem to the one that was active prior to calling
SetSubsystemID().

NOTE: This routine calls SetSubsystemID to set the active subsystem


RestoreUnits
Restores the units to the previous saved value.
See SaveUnits.
RetractLevelClearanceRetract
Sets the Cycle Return Level to "Clearance + Retraction". See the corresponding
documentation on the Configuration menu > Control Settings: Cycles tab in the
VERICUT Help section, in the CGTech Help Library.

NOTE: The menu sets the default value for Cycle Return Level and this macro updates
the current value.

VERICUT Macros

Also see: RetractLevelInitial, RetractLevelRpoint, and RetractLevelSpecifiedpoint.


RetractLevelInitial
Sets the retract level to be the initial level at the point at which the cycle mode was turned
on.
RetractLevelRpoint
Sets the retract level to the R point level.
RetractLevelSpecifiedpoint
Sets the retract level to a specified point. This point is specified with either
[XYZ]RetractSpecifiedpoint macros.
ReturnFromSub
This macro is identical to EndSub, except it does not mark the current location as the end
of the subroutine. This allows for multiple "returns" from a given subroutine.

NOTE: If this macro is called rather than EndSub, there will need to be some other
event to mark the end of the subroutine.
ReturnFromSubCall
This macro is identical to ReturnFromSub, except it will only be executed if you are
currently with a subroutine.
RotaryAxisLinearRewind
Converts the current position of the specified rotary component (specified by name) to a
value between 0-360. No motion takes place. Use the Override Text field to pass the
axis component name, e.g.: A, B, C, A2, B2, C2.
Also see: RotaryLinearRewind
RotaryAxisLinearRewind360_360
Converts the current position of the specified rotary (specified by name) to a value
between -360 and 360. No motion takes place. Use the Override Text field to pass the
rotary name, e.g.: A, B, C, A2, B2, C2. This conversion will be conditional upon the
current position being beyond a minimal position (specified by the numeric value).
Also see: RotaryLinearRewind360_360

VERICUT Macros
RotaryControlPointOnOff
Sets the Rotary Tool Control Point ("RTCP") and/or Rotary Part Control Point ("RPCP"),
as determined by the NC machine configuration. When called with a value of "1" the
macro turns ON a combination of RTCP and RPCP for the machine being used. A value
of "0" turns OFF the RPCP and/or RTCP functions.
Also see: RpcpOn, RpcpOff and RtcpOn, RtcpOff
RotaryDirCCW
Sets the direction for an EIA (360 Absolute) rotary table to be always Counter
Clockwise. By default, the affect applies to all rotary axes. Individual rotary axes can be
controlled via entering the axis name in the Override Text field, e.g.: "AAXIS",
"BAXIS", "CAXIS", "A2AXIS", "B2AXIS", "C2AXIS".
RotaryDirCW
Sets the direction for an EIA (360 Absolute) rotary table to be always Clockwise. By
default, the affect applies to all rotary axes. Individual rotary axes can be controlled via
entering the axis name in the Override Text field, e.g.: "AAXIS", "BAXIS", "CAXIS",
"A2AXIS", "B2AXIS", "C2AXIS".
RotaryDirLinear
Sets the direction for an EIA (360 Absolute) rotary table to be linear. The value will be
first converted into a number between 0 and 360, and then the rotation will act as if it is a
linear table. By default, the affect applies to all rotary axes. Individual rotary axes can be
controlled via entering the axis name in the Override Text field, e.g.: "AAXIS",
"BAXIS", "CAXIS", "A2AXIS", "B2AXIS", "C2AXIS".
RotaryDirPosCCW
Sets the direction for an EIA (360 Absolute) rotary table to be Counter Clockwise when
the angle is positive and Clockwise when the angle is negative. By default, the affect
applies to all rotary axes. Individual rotary axes can be controlled via entering the axis
name in the Override Text field, e.g.: "AAXIS", "BAXIS", "CAXIS", "A2AXIS",
"B2AXIS", "C2AXIS".
RotaryDirPosCW
Similar to RotaryDirPosCCW, but rotary directions are reversed. Sets the direction for
an EIA (360 Absolute) rotary table to be Clockwise when the angle is positive and
Counter Clockwise when the angle is negative. By default, the affect applies to all rotary
axes. Individual rotary axes can be controlled via entering the axis name in the Override
Text field, e.g.: "AAXIS", "BAXIS", "CAXIS", "A2AXIS", "B2AXIS", "C2AXIS".

VERICUT Macros
RotaryDirShortestDist
Sets the direction for an EIA (360 Absolute) rotary table to be the direction which is the
shortest distance from the current position. By default, the affect applies to all rotary
axes. Individual rotary axes can be controlled via entering the axis name in the Override
Text field, e.g.: "AAXIS", "BAXIS", "CAXIS", "A2AXIS", "B2AXIS", "C2AXIS".
RotaryLinearRewind
Converts the current positions of the A, B, C, A2, B2, C2 Rotary Linear tables to an
absolute value between 0-360. No motion takes place.
Also see: RotaryAxisLinearRewind
RotaryLinearRewind360_360
Converts the current positions of the A, B, C, A2, B2, C2 Rotary Linear tables to an
absolute value between -360 and 360. No motion takes place. This conversion will be
conditional upon the current position being beyond a minimal position (specified by the
numeric value).
Also see: RotaryAxisLinearRewind360_360
RotaryTypeAbsolute
This macro changes the Rotary Type to Absolute for the specified axis. The
corresponding axis is specified as a TEXT argument.
Possible options are:
AAXIS
BAXIS
CAXIS
A2AXIS
B2AXIS
C2AXIS
No other action is taken. The type of Absolute table will be based on previous settings.

NOTES:
1. When in absolute mode, the input angle will be converted to an angle between 0360 when the corresponding AxisMotion command is executed.
2. RotaryTypeAbsolute only sets the rotary table type, and is NOT related to the
series of macros which set the direction for an Absolute table (RotaryDirCCW,
RotaryDirCW, RotaryDirLinear, RotaryDirPosCCW, RotaryDirPosCW,
RotaryDirShortestDist).

VERICUT Macros
RotaryTypeLinear
This macro changes the Rotary Type to Linear for the specified axis. The corresponding
axis is specified as a TEXT argument.
Possible options are:
AAXIS
BAXIS
CAXIS
A2AXIS
B2AXIS
C2AXIS

NOTE: RotaryTypeLinear only sets the rotary table type, and is NOT related to the
series of macros which set the direction for an Absolute table (RotaryDirCCw,
RotaryDirCW, RotaryDirLinear, RotaryDirPosCCW, RotaryDirPosCW,
RotaryDirShortestDist).
Rotate
Renamed to RotateMacro.
RotateCancel
Cancels the current rotation.
RotateMacro
Fanuc specific 2D rotation that causes the coordinate system to be rotated, within the
active plane, by a specified angle. The angle is specified with the RotationAngle macro.
The center of rotation can be specified with calls to the RotateXValue, RotateYValue,
and RotateZValue macros. The XYZ values are based on the current coordinate system.
The rotation angle is based on the machine coordinate system.
If the first motion block following the call to RotateMacro is in Incremental mode, the
center of rotation will be ignored.
EXAMPLE:
G90X0Y0
G68X1Y1R45
X0Y0
X1
Y1
X0
Y0

==> X0 Y0
==>
==>
==>
==>
==>

X1 Y-.4142 The G68 cause the origin to be shifted


X1.707 Y.2929
X1, Y1
X.2929, Y.2929
X1 Y-.4142

VERICUT Macros
G91G68X1Y1R45 ==> Because of the G91, rotate angle is now 90. Center
is independent of G90/G91
mode for this block.
G90X0Y0
==> X2 Y0
X1
==> X2 Y1
Y1
==> X1 Y1
X0
==> X1 Y0
Y0
==> X2 Y0
RotateOrigin
2D rotation that causes the coordinate system to be rotated within the active plane by a
specified angle. The angle is specified with the RotationAngle macro. The center of
rotation is always the current origin. The rotation angle is based on the machine
coordinate system.
EXAMPLE:
G90X0Y0
G68X1Y1R45
X0Y0
X1
Y1
X0
Y0
G91G68X1Y1R45
G90X0Y0
X1
Y1
X0
Y0

==> X0 Y0
==>
==>
==>
==>
==>
==>
==>
==>
==>
==>
==>

X0 Y0
X.707 Y.707
X1, Y1.414
X-.707, Y.707
X0 Y0
Because of the G91, rotate angle is now 90.
X0 Y0
X0 Y1
X-1 Y1
X-1 Y0
X0 Y0

RotateTurningTool
Obsolete; no longer exists.
RotateXValue
Sets the X coordinate value of the point of rotation.
RotateYValue
Sets the Y coordinate value of the point of rotation.
RotateZValue
Sets the Z coordinate value of the point of rotation.

VERICUT Macros

RotateXYZ
2D rotation that causes the coordinate system to be rotated, within the active plane, by a
specified angle. The angle is specified with the RotationAngle macro. The center of
rotation can be specified with calls to the RotateXValue, RotateYValue, and
RotateZValue macros. The XYZ values are based on the current coordinate system. The
rotation angle is based on the machine coordinate system. This macro is identical to the
Fanuc specific RotateMacro except is independent of the mode of the block following
the G68 command. See RotateMacro for a G-Code example.
RotationAbsAngle
Sets the total rotation angle to be the specified value.
RotationAngle
Specifies the angle to be used with the 2D rotation macros (RotateMacro, RotateXYZ,
RotateOrigin, OkumaShiftRotate). The angle will be interpreted as absolute or
incremental depending on the current mode (G90/G91). This macro will also adjust for
mirroring.
Also see: RotationAbsAngle and RotationIncAngle
RotationIncAngle
Increments the total rotation angle by the specified value.
RotationPlane
Turns on the rotation plane using the values specified via the RotationPlaneX[YZ]Point
and RotationPlaneAngle1-3 macros. (Don't recalculate the current position into the new
coordinate system.) The rotation plane remains active until replaced by a new rotated
plane, or cancelled via RotationPlaneCancel.
RotationPlane2
Similar to RotationPlane. However, these two macros differ in how they calculate the
initial motion after setting the rotation plane, particularly in the case where all axes are
not programmed. RotationPlane2 recalculates the current position into the new
coordinate system, where RotationPlane does not.

VERICUT Macros

RotationPlaneAngle1
RotationPlaneAngle2
RotationPlaneAngle3
RotationPlaneAngle1-3 define the first, second, third angles to be applied, respectively.
An Override Text value of "X", "Y", or "Z" defines the axis about which to apply each
rotation. Rotation is performed in numeric order- angle 1 first, angle 2 second, and so on.
Also see: RotationPlaneIncAngle1-3
RotationPlaneCancel
Cancels the rotation plane put into affect via the RotationPlane or RotationPlane2
macros.
RotationPlaneCancel2
Calls RotationPlaneRestoreAxis, then cancels the rotation plane put into affect via the
RotationPlane or RotationPlane2 macros.
RotationPlaneCancelReset
Resets all rotation plane values to 0.0, calls RotationPlane2 to restore the current axis
values, and then turns off the rotation plane.
RotationPlaneEnable2
This macro restores the restores the previously set rotation plane, and converts the current
local axis position into the new coordinate system.

Inputs:
Text Value: Unused
Numeric Value: Unused

NOTE: This macro does not recalculate the matrix. If RotationPlaneCancel2 is used to
turn off the rotation plane, then this macro can be used to get you back to where you
were.
RotationPlaneIncAngle1
RotationPlaneIncAngle2
RotationPlaneIncAngle3
RotationPlaneIncAngle1-3 define incremental adjustments to be made to the first,
second, third rotation plane angles defined via the RotationPlaneAngle1-3 macros. An

VERICUT Macros
Override Text value of "X", "Y", or "Z" defines the axis about which to apply each
incremental adjustment.
RotationPlaneIncXPoint
RotationPlaneIncYPoint
RotationPlaneIncZPoint
These macros define the XYZ center point of rotation for incremental rotation
adjustments performed by the RotationPlaneIncAngle1-3 macros.
RotationPlaneLocal
Adjusts how the existing rotation plane values are interpreted (ref.
RotationPlaneAngle1). When called, rotation plane values are interpreted as incremental
rotations and translations within the current rotation plane.
RotationPlaneLocal2
Similar to RotationPlaneLocal, but they differ in how they calculate the initial motion
after setting the rotation plane, particularly in the case where all axes are not
programmed. RotationPlaneLocal2 recalculates the current position into the new
coordinate system, where RotationPlaneLocal does not.
RotationPlaneRestoreAxis
Converts the previously specified axis into a non-rotated plane coordinate system. This
macro should be called prior to cancelling a rotation plane via RotationPlaneCancel.
RotationPlaneSpecialOffset
Specifies whether or not to specially handle the changing of offsets while a
RotationPlane is in effect. Passing an Override Value of "1" turns on this feature. Any
other value passed to the macro turns this feature off. The default is no special handling
of offsets for rotation planes
RotationPlaneXPoint
RotationPlaneYPoint
RotationPlaneZPoint
These macros define the XYZ center point of rotation performed by the
RotationPlaneAngle1-3 macros.
RpcpOn
Turns Rotary Part Control Point ("RPCP") processing on. When RPCP is active, the part
is moved relative to the tool tip to reflect changes in any rotary axis on the part side of the

VERICUT Macros
NC machine (Base to Stock components). An RPCP Pivot Offset table (see the Tables
for Processing G-Codes section, in the CGTech Help Library) is available to override the
system-calculated RPCP pivot offset distance. When the table exists, its value is used to
offset the part during rotary operations.
Also see: RotaryControlPointOnOff and RtcpOn, RtcpOff
RpcpOff
Turns Rotary Part Control Point ("RPCP") processing off.
Also see: RotaryControlPointOnOff and RtcpOn, RtcpOff
RPM
Renamed to RPMSpeed.
RPMMode
Sets the current mode to constant RPM's.
RPMSpeed
Sets the spindle speed in RPM's.
RtcpContour
Controls the RTCP mode: contouring vs. non-contouring. When passed an
OverrideValue of "1", puts the RTCP in contouring mode (offsets are updated on every
intermediate move). A value of "0", puts the RTCP in non-contouring mode. The default
is 1.

NOTE: The default mode for RtcpContour can be set in the Configuration menu >
Control Settings: Rotary tab (see the VERICUT Help section , in the CGTech Help
Library for information on the Control Settings window). You can then over-ride the
default mode with this macro.
RtcpOn
Turns Rotary Tool Control Point ("RTCP") processing on. After turning RTCP on, the
UpdateRotaryOffsets macro should be called to make sure that all internal offsets are
updated. This macro should probably be executed after motion or a block by itself. An
RTCP Pivot Offset table (see the Tables for Processing G-Codes section, in the CGTech
Help Library) is available to override the system-calculated RTCP pivot offset distance.
When the table exists, its value is used to offset the part during rotary operations.
Also see: RpcpOn, RpcpOff and RotaryControlPointOnOff

VERICUT Macros
RtcpOff
Turns Rotary Tool Control Point ("RTCP") processing off.
Also see: RpcpOn, RpcpOff and RotaryControlPointOnOff
RtcpWithMotion
When passed an OverrideValue of "1", causes the RTCP updated offsets to only take
effect when the corresponding axis is specified. A value of "0", causes the offsets to take
effect immediately. For the most part, this macro is only applicable when in noncontouring mode. The default is 1.

NOTES:
This command is dependent on RTCP being turned on (See RtcpOn).
The default mode for RtcpWithMotion can be set in the Configuration menu >
Control Settings: Rotary tab (See the VERICUT Help section, in the CGTech Help
Library for, information on the Control Settings window). You can then over-ride the
default mode with this macro.

Numbers A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

SaveUnits
Saves the current Units settings.
Also see RestoreUnits.
SecondaryRefWorkCoord
This macro is identical to SecondaryWorkCoord, except it interprets all rotary angles as
a reference position from which the offset was measured.
SecondaryWorkCoord
This macro is identical to AdditionalWorkCoord, except it establishes a secondary work
offset which is added to the existing work offset (e.g. G54-G59). Both of these macros
reference the same Work Offset table (see the Tables for Processing G-Codes section, in
the CGTech Help Library).
Sequence
During pass 1, updates the sequence table and sets the current sequence number.
SequenceEnd
Specifies the ending sequence number within a sequence loop.

VERICUT Macros
SequenceLoop
Executes the sequence loop based on previously set parameters. If the loop count was not
specified, 1 is assumed. If the ending sequence number was not specified, the starting
sequence number is assumed.
SequenceLoopCount
Specifies the number of times to execute the sequence loop.
SequenceOrSubroutine
Determines whether the current input is a sequence number, or a subroutine name. At the
time the macro is called, if it is currently within a program or subroutine, it will be
interpreted as a "sequence number", and the Sequence macro called. Otherwise, it will be
interpreted as a "subroutine name" and the SubroutineSequence macro will be called.
Example:
O100
.
.
.
N10
.
.
M99
N20
O: Defines the beginning of subroutine 100
N10: Defines Sequence 10
M99: Defines the end of subroutine 100
N20: Defines the beginning of subroutine 20

NOTE: The defining of the start and ending of subroutines, and the sequence numbers
that exists for a given subroutine, occurs during the scan pass.
SequenceStart
Specifies the starting sequence number within a sequence loop.
SequenceStartEnd
Defines the start and ending sequence number within a sequence loop. This macro is
called twice within a block. On each call, either the start or ending sequence number is
passed. The starting sequence number is defined to be the lower of the two numbers.

VERICUT Macros
SetAbsWorkCoord
Similar to SetAdditionalWorkCoord, except the offsets are always interpreted as
absolute values (not incremental).
SetActiveSpindleName
Specifies the active spindle component for the current subsystem. The spindle name is
specified by the Text argument. This macro is typically used to change where material
removal occurs when simulating pick-off spindle operations. Specifically, this macro has
2 main functions:
1. When in turning mode, it is used to define the point of rotation. This is important
when in Constant Surface Speed (CSS) mode.
2. It defines the active stock component. The stock that is a child of the active
spindle component becomes the active stock component. This setting is critical
for a number of different calculations within VERICUT.

NOTE: If not specified, the active spindle will default to the parent Spindle, or Rotary,
of the active stock component. If the active stock component is not specified, the active
stock will default to the first stock component in the component tree.
SetActiveStockName
Specifies the active stock component for the current subsystem. The stock name is
specified by the Override Text value. This macro is typically used to change where
material removal occurs when simulating pick-off spindle operations. Specifically, this
macro has 2 main functions:
1. When in turning mode, it is used to define the point of rotation. The point of
rotation is the parent spindle axis. This is important when in Constant Surface
Speed (CSS) mode.
2. It defines the active stock component. This setting is critical for a number of
different calculations within VERICUT.

NOTES:
1. The calling of this macro is only necessary for SYNC type jobs or jobs with
multiple Stock components.
2. This macro is functionally identical to SetActiveSpindleName. Its main purpose
is to specify whether you are working on the stock (spindle) or the sub-stock
(pick-off spindle). To avoid confusion with ActiveSpindleName (which has a
similar name but a totally different functionality), it is recommended that you use
SetActiveStockName rather then SetActiveSpindleName. The difference
between these 2 macros is that SetActiveStockName is passed the name of the
stock component, and SetActiveSpindleName is passed the name of the Stock's
spindle component.

VERICUT Macros
SetAdditionalWorkCoord
Sets entries 0-59 in the Work Offsets table (see the Tables for Processing G-Codes
section, in the CGTech Help Library). The work coordinate index must be between 0-59.
The corresponding entries in the table are then updated based on the specified XYZ
values. If an XYZ value is not specified, the corresponding entry is not updated.
Also see: SetAdditionalWorkCoordNonModal
SetAdditionalWorkCoordNonModal
This macro is identical to SetAdditionalWorkCoord except that all offset values are
non-modal. Any axis offset value not specified on the current block will be set to zero.
SetAxisCompLink
Establishes a "link" which allows the axis specified by LinkAxisId to drive the
component specified with LinkCompName, using the formula specified by
LinkFormula. For situations where an "offset" is applied to driving axis, use the
LinkOffset macro to specify how the offset is to be applied to the driven component. The
Override Text field value determines the action that occurs:
CLEARALL Deletes all linkages established for all axes.
CANCEL Deletes the linkage specified by the specified axis and component
name.
ADD Adds a new linkage based on the specified axis, component name, and
formula.
If a "linkage" exists for a given axis, the specified actions will override the default
actions.
Also see: "Notes about link macros" in the Notes about Special Topics section, in the
CGTech Help Library.
SetAxisRegisterName
Enables you to switch which "Register" is associated with a particular axis (X, Y, Z, A,
B, C, U, V, W, ...). It is passed in an axis value to change (1-12), and a text value with
the new register name.
For example: to have X drive the U register, and U drive nothing, the following calls
would be made.
SetAxisRegisterName
SetAxisRegisterName

Override Value = 1, Override Text = U


Override Value = 7, Override Text = XXX

VERICUT Macros
SetBaseWorkOffset
Sets a base offset and cancels any shift or work coordinate offsets. The base offset is
retrieved from the Base Work Offset table (see the Tables for Processing G-Codes
section, in the CGTech Help Library).
SetCircle360Tolearance
Sets a tolerance which will be used to determine whether a small arc or a 360 degree arc
should be processed. If the X, Y, and Z start and finish positions are all within this
tolerance, the arc will be interpreted as a 360 degree arc.

NOTE: This value is typically used when problems occur with cutter compensation.
SetComponentColor
Sets the component specified with the Override Text value, to the specified color index.

NOTE: See the documentation on color definition for a description of color index
value. Basically, it corresponds to the index number in the list of colors defined on the
Color Definition window (see the VERICUT Help section, in the CGTech Help Library).
SetComponentVisibility
Enables you to "temporarily" change a component's visibility status by commands in the
NC program. The visibility status that is set will be temporary, and will be reset to the
initial values when a "reset" or "rewind" is executed.

NOTE: A "reset" is executed as part of loading a new usr/project file.


The initial values are defined as the values that are either read in from the usr/machine
file, or were set using the "Visibility" feature on the Model > Model Definition window,
Component Attributes tab (see the VERICUT Help section, in the CGTech Help
Library). When the job file or machine file is saved, only the initial value will be saved.
Override Text value = Component Name
Override Value:
0 = Blank
1 = Workpiece
2 = Machine
3 = Both

NOTE: This macro does not support setting the visibility of "Tool" or "Stock"
components.

VERICUT Macros
SetCycleSquareOffType
Controls how the tool is positioned for a canned cycle operation (e.g. G81-89). By
default, VERICUT uses "squared off" motion to position for a canned cycle. Squared off
motion behaves differently, depending on if the positioning point for the canned cycle is
higher or lower relative to the current tool position:
Positioning point lower than current position Tool moves within the plane, then
drops along the tool axis to the new positioning point.
Positioning point higher than current position Tool retracts first, then moves
within the plane to the new positioning point.
Calling this macro with an Override Value of "1" forces VERICUT to always move the
tool within the plane first, then moving the tool up or down along the tool axis to the new
positioning point. A value of "0" (default) moves the tool as described above.
SetDynamicVars
Configures VERICUT for setting Dynamic variables based on internally calculated
values. The macro should be called with the "Start of Processing" event, and will
typically be called multiple times with different arguments. This macro establishes the
values that should automatically update variables during processing. The macro is passed
a series of arguments in the Override Text field. The first argument defines the Dynamic
variable you are interested in (see below). The remaining arguments depend on the first
argument. (Values are only printed for subsystem 1.) Dynamic variable types:
CurTool # The current tool number will be set in the specified variable number. The
tool number will be as defined before any tool indirection, such as can occur when a Tool
List is in use.
Example:
Override Text = CurTool 7000
CurCDC # The current cutter comp value will be set in the specified variable number.

Example:
Override Text = CurCDC 7000
CurTime # The current time (cycle time) will be placed in the specified variable. This
time is the total time since the last reset.

VERICUT Macros
Example:
Override Text = CurTime 3001

NOTE: The status window displays the total time for the current toolpath.
CurTLCMP # The current tool length comp value will be set in the specified variable
number. This value includes the special "Input Program Zero" logic for when the
programming method is set to "Tool Length Compensation".
Example:
Override Text = CurTLCMP 7000
CurToolDiam # The current tool diameter will be set in the specified variable
number.
Example:
Override Text = CurToolDiam 7000
CurGageOffset # # # The current X,Y, Z gage offset values, as read from either the
Gage Offset table (see the Tables for Processing G-Codes section, in the CGTech Help
Library) or the Tool Library file (see the VERICUT Help section, in the CGTech Help
Library), will be set in the 3 specified variable numbers.
Example:
Override Text = CurGageOffset 7000 7001 7002
CurToolOffset # # # # # # # # # The sum of all tool offsets (Gage Offset, Tool Nose,
Tool Length Comp, Turret, Pivot, RTCP, etc.) will be used to set the corresponding
registers. The register numbers correspond to XYZABCUVW. Note that this command
does not cause the gage offset to be applied to XYW; it just specifies the variables that
should be set for the tool offsets. Unused axes to the right do not need to be specified.
Unused axis in the middle should be specified with a "-1".

Examples follow:
Tool offsets applied to the XYZ axes:
Override Text = CurToolOffset 3001 3002 3003
Tool offsets applied to the XYW axes:
Override Text = CurToolOffset 3001 3002 -1 -1 -1 -1 -1 -1 3003

VERICUT Macros
CurToolType # The current tool type will be set in the specified variable number.
The tool type will be set to:
1 = milling tools
2 = turning tools
3 = probe
Example:
Override Text = CurToolType 7000
AxisMachineMinus # # # # # # # # # These switches are used to set the variables
associated with the axis positions in a "machine" coordinate space. These values begin
with absolute machine axis location values, and then you can turn off individual offsets to
have them subtracted from the stored machine position. Set the switch to "1" if you want
it subtracted, and "0" if you do not want it subtracted. With all switches set to "0", the
machine axis positions will match the machine axis position fields seen on the Status
window. The available switches from left to right are:
1. Gage Offset The gage offset (if it is applied).

NOTE: This is the non-adjusted (non-rotated) gage offset.


2. Tool Offset The Adjusted Total for the Tool offsets. This includes Gage Offset,
Tool Nose Offset, Tool Length Comp, Turret Offset, and the Gage Pivot Offset.
See also the Tool/Adjusted Total field on the Machine Offsets window.
3. Work Offset The non-adjusted Work Offset
4. Shift Offsets The non-adjusted sum of all shift offsets
5. 3D Tool Offset The 3D tool offset. See also: Tool3dOffset macro.
6. Input Program Zero The old (special) form of Program Zero
7. Input Machine Zero The Machine Zero offset
8. Program Zero The adjusted Program Zero offset (See Dynamic Work Offsets).
9. 3D Tool Length Comp See the FanucToolLengthComp macro
Unused axes to the right do not need to be specified. Unused axis in the middle should be
specified with a "-1". The switches default to 0. Trailing zeros do not need to be
specified. The field must contains at least one 0/1 character.
Examples follow.
Print the machine's axes for a 4-axis machine with a B rotary:
Override Text = AxisMachineMinus 0 1000 1001 1002 -1 1004

VERICUT Macros

Print the machine's axes minus the Input Program Zero values for a 4-axis machine with a
B rotary:
Override Text = AxisMachineMinus 000001 1000 1001 1002 -1 1004
AxisLocalPlus # # # # # # # # # These switches are used to set the variables
associated with the axis positions in a "local" coordinate space. This option is similar to
AxisMachineMinus, except they begin with the G-code tool path input values, then add
on offsets. Note that turning all switches on is NOT the same as AxisMachineMinus
with all switches set to "0". Rotated planes, cutter compensation, and other special
commands are only being applied to the machine axis values. With all switches set to "0",
the values will be equal to the G-code tool path input except when in incremental mode,
G68/69 rotations in affect, or mirroring is active. The switches are the same as described
above for AxisMachineMinus. Unused axes to the right do not need to be specified.
Unused axis in the middle should be specified with a "-1". The switches default to 0.
Trailing zeros do not need to be specified. The field must contains at least one 0/1
character.
Examples follow.
Print the local axes for a 4-axis machine with a B rotary:
Override Text = AxisLocalPlus 0 1000 1001 1002 -1 1004
Print the local axes plus the gage offset for a 4-axis machine with a B rotary:
Override Text = AxisMachineMinus 1 1000 1001 1002 -1 1004
Also see: "Notes about system variables" in the Notes about Special Topics section, in
the CGTech Help Library.
SetGageOffset
Sets the Gage Offset based on the Gage Offset table (see the Tables for Processing GCodes section, in the CGTech Help Library) and the specified index value. If the entry
does not exist, and the index value is zero, the Gage Offset is set to zero. If neither of
these conditions is true, the Gage Offset is picked up from the TLS file (referencing the
active tool).
Also see: SetGageOffsetSubValue and SetMatchingGageOffset.

NOTE: It is not necessary to call ToolOffsetAptAdj when using this macro.

VERICUT Macros
SetGageOffsetSubValue
Sets the Gage Offset based on the Gage Offset table (see the Tables for Processing GCodes section, in the CGTech Help Library), the current tool number and the specified
SubValue (SubRegister). If the entry does not exist, and the SubValue is zero, The Gage
Offset is set to zero. If neither of these is true, it picks up the Gage Offset from the TLS
file (referencing the active tool).
Also see: SetGageOffset.

NOTES:
1. It is not necessary to call ToolOffsetAptAdj when using this macro.
2. The current tool number refers to the tool number that is specified in the MCD
file (T1M6, T0101, &), NOT to the Tool Id that is specified in the TLS file which
is a string.
SetIncWorkCoord
Similar to SetAdditionalWorkCoord, except the offsets are always interpreted as
incremental values (not absolute).
SetLocalVariableCount
Sets the number of local variables that are defined within a "MACRO" subroutine. The
default is 34 (0-33).
SetMatchingGageOffset
This macro is identical to SetGageOffset, except that if the specified value is non-zero,
and it does not exist in the Gage Offset table (see the Tables for Processing G-Codes
section, in the CGTech Help Library), and it does not match the current tool, then an
error message will be produced, and the offset will default to (0,0,0).
SetMathOperatorPriority
This macro sets the priority for a specific math operator (or group of operators). This is
used to control the order of precedence. Operators with lower priority numbers, will have
the higher precedence, and will be executed first. For example: The default priority for
"MULTIPLY" is 2, and for "ADD" is 3. The equation:
2+3*4
Is therefore evaluated as:
2 + (3 * 4)
The following are the default priorities for the operators: (NOTE: If Order of Math
Operations is set to Left to Right, all priorities will be set to 5).
POWER = 1;

VERICUT Macros
MULTIPLY = 2;
DIVIDE = 2;
MOD = 2;
ADD = 3;
SUBTRACT = 3;
EQ = 4;
NE = 4;
GT = 4;
GE = 4;
LT = 4;
LE = 4;
BITWISE_AND = 5;
BITWISE_XOR = 6;
BITWISE_OR = 7;
AND = 8;
OR = 9;
In addition to the above operators, the following groups are supported:
MATH (POWER, MULTIPLY, DIVIDE, MOD, ADD, SUBTRACT)
CONDITIONALS (EQ, NE, GT, GE, LT, LE)
LOGICALS (AND, OR, BITWISE_AND, BITWISE_OR, BITWISE_XOR)
Example:
To use the standard rules of precedence except have all logical operators come before all
the conditionals, make the following calls during the reset event:
SetMathOperatorPriority OV=4 OT=LOGICALS
SetMathOperatorPriority OV=5 OT=CONDITIONALS
SetMaxMotionDistance
This macro allows you to automatically break up long moves in order to get better
performance (specifically, but not limited to, collision performance). Unlike the slow
motion slider, this setting is independent of the number of redraws. Any motion that is
larger then the specified distance will be broken up into a series of motions of the

VERICUT Macros
specified size. The default is zero, which means to process the original motion as a single
motion.
Typically, this macro does not need to be called. For a specific application, if long
motions are causing significant slow downs, this macro can be used to try to improve the
performance. The setting of the max motion distance is dependent on the specific
application. This macro would typically be called during start of processing events.
SetMaxSubsystemVar
Sets the "Maximum" value of a NC variable that is subsystem specific.

NOTES:
1. In the variables window, 1:45 corresponds to variable 45 for subsystem 1. If a
variable is higher than the max, it will be referenced as global, and not specific to
a subsystem.
2. You can define both a "Minimum" and a "Maximum" value by also using
SetMinSubsystemVar.
SetMinSubsystemVar
Sets the "Minimum" value of a NC variable that is subsystem specific. The default is -1,
which means that there is no minimum value.

NOTE: You can define both a "Minimum" and a "Maximum" value by also using
SetMaxSubsystemVar.
SetMotionFlag
This macro sets a flag saying that there is motion on the block. Typically, this macro
never needs to be called. This flag will automatically be set if a macro is called which
causes motion. An example of where this macro would need to be called is:
G81 R1=.1 R2=.2
A cycle command is being issued, but no XYZ command is being specified. Typically,
G81 is interpreted as "Cycle on Motion". If no motion is specified, then a cycle is not
executed. If the cycle is to be executed on this block, then the SetMotionFlag macro
could be called with the G81 to process the block as a motion block.
SetPivotOffset
Sets the pivot offset for a tool component connected to a rotary component. This macro
should be passed the index into the RTCP Pivot Offset table (see the Tables for
Processing G-Codes section, in the CGTech Help Library). If the entry in the table does
not exist, the system automatically calculates the Z offset value using the distance from

VERICUT Macros
the Tool component to the pivot point of the rotary axis to which the Tool component is
connected (X and Y offsets set to 0). If the tool axis and the rotary axis are collinear, then
the RTCP Pivot Offset will be set to the difference between the Tool and the Rotary
component origins.

NOTE: If a spindle changer is being used for a job in Tool Tip mode and using RTCP,
then the RTCP Pivot Offset table needs to be set whenever a new spindle is attached.
SetProgrammingMethod
Use to set the programming method through the NC program file. This macro should be
passed a numeric value which will determine the programming method.
A value of:
0 = Tool Tip
1 = Gage Length
2 = Tool Length Compensation
The new setting will be in effect until the next call to this macro, or until the next reset.
WARNING: The programming method affects how various tool offsets are applied.
Calling this function will not affect the offsets that are already in effect. It will, however,
affect the offsets that next time they are updated (for example, tool change, rotary move
with dynamic offset, call to UpdateRotaryOffsets, call to ToolOffsetUpdate, ...).
SetSubsystemID
Sets the current subsystem to the input text string value.
SetTableCoord
The text string contains the table name to be set. This macro sets the entry (specified by
TableIndex) in this table to the values specified with the WorkCoord[axis]Value
macros. Nine values will be stored in the table. Any value not set in the block will be
assumed to be zero.
SetTableValues
This macro sets the entry (specified by TableIndex in this table) to the values specified
in TableValues. The order of the values passed to TableValues will be the order stored
in the table. The number of values stored will be equal to the number of times
TableValues was called on this block. Use the Override Text field to specify the name
of the table.

VERICUT Macros

NOTES:
1. The table must be defined before this macro is called. See About configuring
tables in the Using VERICUT section, in the CGTech Help Library, for more
information.
2. TableIndex and TableValues must be called before calling SetTableValues. The
order in which TableIndex and TableValues macros are called is not significant,
as long as they are called before calling SetTableValues.
SetToolNumVar
When passed an Override Text value of the variable to be set, this macro will set this
variable to be the current tool number. Typically, this would be called immediately after
ToolChange.
SetVCMultiTools
When passed an Override Value of 1, VERICUT will cut with all tools defined on the
machine at every block.
SetVNCKOption
This macro sets several 840D Virtual NC Kernel and Interface (VNCK interface) options.
See the VNCK Interface documentation, in the Converters and Interfaces section, in the
CGTech Help Library.
SetWorkCoord
Sets entries 53-59 in the Work Offsets table (see the Tables for Processing G-Codes
section, in the CGTech Help Library). The work coordinate index must be between 0-6.
The corresponding entries in the table are then updated based on the specified XYZ
values. If an XYZ value is not specified, the corresponding entry is not updated.
ShortLongOffsetReset
Turns off CutterCompDoubleLong, CutterCompDoubleShort, CutterCompLong and
CutterCompShort.
Siemens3CmdBranch
The value passed is the sequence number to branch to. If an additional argument is
passed, then it is added to the absolute value of the sequence number. This routine then
calls the GotoJumpForwardBackward macro. If more than 2 arguments were passed,
then an error message will be printed.

VERICUT Macros
Siemens3CmdIfEqual
The value passed is the sequence number to branch to. If argument 1 is equal to argument
2, then GotoJumpForwardBackward is called to branch to the specified sequence
number. If an additional argument is passed, then it is added to the absolute value of the
sequence number. If less than 2 arguments, or more than 3 arguments were passed, then
an error message will be printed.
Siemens3CmdIfGreater
The value passed is the sequence number to branch to. If argument 1 is greater than
argument 2, then GotoJumpForwardBackward is called to branch to the specified
sequence number. If an additional argument is passed, then it is added to the absolute
value of the sequence number. If less than 2 arguments, or more than 3 arguments were
passed, then an error message will be printed.
Siemens3CmdIfGreaterEqual
The value passed is the sequence number to branch to. If argument 1 is greater than or
equal to argument 2, then GotoJumpForwardBackward is called to branch to the
specified sequence number. If an additional argument is passed, then it is added to the
absolute value of the sequence number. If less than 2 arguments, or more than 3
arguments were passed, then an error message will be printed.
Siemens3LoadAddress
Sets the contents of the address parameter specified by Siemens3SetAddressParm to the
specified value. If a variable argument is specified, it will override the input value. A
value of 1 corresponds to the X axis, a value of 2 corresponds to the Z axis.
Siemens3PreProcessor
Controls when a Siemens 3T PreProcessor translates blocks of Siemens 3T type data into
a more standard form. This preprocessor is specific to the Siemens 3T syntax, and should
not be used with the Siemens 880 or the Siemens 7M controllers. The preprocessor will
be activated after reading a block from the NC program file, and before substitutions.
This macro should be passed a value of 0 or 1. A value of 0 turns off the Siemens 3
preprocessor, a value of 1 turns on the Siemens 3 preprocessor. If used, this macro should
be called during the NEW "Reset" event.
The following conversions are made by the preprocessor:
R20 200 R30 300 => R20=200 R30=300
R30 R20 => R30=R30+R20
R30-R20 => R30=R30-R20
R30/R20 => R30=R30/R20
R30.R20 => R30=R30*R20
R305 => R30 =5

VERICUT Macros
R30.5 => R30 =.5
Z1.6 R07 => Z1.6+R07
R30 0 R20 => R30=R20
R10 R20.R30 => R10=R10+R20 R20=R20*R30
X1.5 R10 R20 => X1.5+R10 R10=R10+R20
X R10 R20 => X R10 R10=R10+R20

NOTE: OptiPath is not supported with the Sinumerik 3T control.


Siemens3SetAddressParm
Sets the address parameter that will be accessed (90-93). This is necessary since @90
command might be followed by 2 values (@90 0 R10). This allows for @90 to be
defined as a word. This word can then have a value and an optional variable argument.
Siemens3TAddressAxis
Calls the corresponding "AxisMotion" macro with the specified value. If a variable
argument is specified, it will override the input value. The axis to move is specified by
contents of the specified address parameter. The address parameter is set using the
Siemens3SetAddressParm macro.
Siemens840DProc
This macro processes a Siemens 840D PROC statement. This includes the processing of
all the input Arguments.
The typical scenario would be:
1. Define the Word: PROC with a subtype of Alpha-Numeric + Arguments.
2. In the Word Address table, the PROC word will call this macro.
Also see: "Notes about the Siemens 840D PROC command" in the Notes about Special
Topics section, in the CGTech Help Library.
Siemens840DProcCall
This macro is called when calling a Siemens 840D subroutine (PROC). The text
argument passed should be the subroutine name, optionally followed by a series of
arguments enclosed by ( ).

NOTE: This is a black box parser. The user has no flexibility on what can or cannot be
parsed.
The typical scenario would be:

VERICUT Macros
1. Define the Word: SubroutineName with a subtype of Alpha-Numeric +
Arguments.
2. When an undefined word is found, a check is made to see if it matches a
subroutine name. If it does, and SubroutineName exists in the word list, then it
will associate the value that follows with the SubroutineName word.
3. In the Word Address table, this word should then call the above macro.
Also see: "Notes about the Siemens 840D PROC command" in the Notes about Special
Topics section in the CGTech Help Library.
Siemens840DSubroutineSequence
This is a Siemens 840D specific version of the SubroutineSequence macro. This macro
will look for a series of suffixes, and if it finds one, it will strip it, and then pass the name
to SubroutineSequence. The suffixes that will be stripped include: _MPF, _SPF, _TEA,
_SEA, _TOA, _UFR, _INI, _GUD, _RPA, _COM, and _DEF
The typical configuration will be as follows:
1. Define %_N_ as a word with an Alpha-Numeric variable type
2. Within the word address table, have the word "%_N_" call
Siemens840DSubroutineSequence
SiemensActualSpindle
Marks which spindle this controller is currently working on. If this spindle has previously
been marked as being controlled by this controller, this controller will now takes control.
(M*=26)
This macro:
1. Sets a Siemens internal value defining the actual spindle.
2. Passes the spindle number as the numeric value.
3. Restores the internal spindle speed for this channel if the speed for this spindle is
being controlled by this channel.
4. Sets the controlling head (sync mode).

NOTE: SetActiveSpindleName should also be called.


SiemensCmd300
SiemensCmd302
The NC-Machine addresses (@300-@302) are referenced as subsystem 10.

GENERAL "300 SERIES" NOTES: The following notes apply to all "300 series"
macros described below:

VERICUT Macros

1. All series 300 macros "transfer machine data into R-Parameter". All macros in
this series treat machine addresses as variables.
2. In Machine Simulation, these addresses have no additional meaning. This means
that each must be set before they are used.
SiemensCmd303
SiemensCmd305
The Cycle Machine addresses (@303-@305) are referenced starting at subsystem 100.
(For example if the command references channel 2, the macro would reference
subsystem 102).
See general "300 series" notes above.
SiemensCmd306
SiemensCmd308
The PLC address (@306-@308) are referenced as subsystem 11.
See general "300 series" notes above.
SiemensCmd330
This macro is used to process the Siemens @330 command. This macro sets a variable
with the value of the associated work offset. It must be passed the order of the Axes as an
Override Text value. For example: XYZAC. It also must be passed 4 arguments.
See ValueArgument.
The arguments have the following meanings:

variable to be set
offset number (1 for G54 , 2 for G55, 3 for G56, 4 for G57)
axis number (the order of the axis must be specified in the Override Text
argument)
Coarse/Fine value (currently ignored)

Example:
@330 R81 K1 K2 K0
parameter R81.

The second axis value of the G54 offset is loaded into

SiemensCmd331
Loads the G58/G59 offset for the specified axis.

VERICUT Macros

NOTE: This macro has been hard coded to work with machines with subsystem "1" for
the upper turret, "2" for the lower turret, and "4" for the Z axis of the subspindle.
Subsystems 3 and 5 are not currently supported.
See general "300 series" notes above.
SiemensCmd360
This macro assumes the following:
1. The workpiece is located at 0 0 0.
2. For rotaries, the last rotary move has completed.
3. The following specific component names:
Turret 1 X - X1
Turret 1 Z - Z1
Turret 2 X - X2
Turret 2 Z - Z2
Counter Spindle Z - Z4
Turret 1 Y - Y1
See general "300 series" notes above.
SiemensCmd383
The following are the only arguments that are supported. The corresponding bit flag will
be placed into the first argument.

ARG 2
1
1

ARG3
32
32

ARG4
5
17

ARG5
15
15

MEANING
Z-axis mirroring on channel 1
Z-axis mirroring on channel 2

SiemensCmd400
The NC-Machine addresses (@400-@402) are referenced as subsystem 10.

GENERAL "400 SERIES" NOTES:


The following notes apply to all "400 series" macros described below:
1. All series 400 macros "load values into system storage". All macros in this series
treat machine addresses as variables.
2. In Machine Simulation, these addresses have no additional meaning. This means
that each must be set before they are used.

VERICUT Macros

SiemensCmd403
SiemensCmd404
The Cycle Machine addresses (@403-@405) are referenced starting at subsystem 100.
(For example if the command references channel 2, the macro would reference
subsystem 102).
SiemensCmd430
This command is used to process the Siemens @430 command. This command sets the
values associated with a specific work offset. It must be passed the order of the axes as an
Override Text value. For example: XYZAC. It also must be passed 4 arguments
See ValueArgument.
The arguments have the following meanings:

Offset number (1 for G54, 2 for G55, 3 for G56, 4 for G57)
Axis number (the order of the axis must be specified in the Override Text
argument
Coarse/Fine value (currently ignored)
Offset value

Example:
@430 K1 K2 K0 K500
axis.

The value 500 is loaded into the G54 offset for the second

SiemensCmdAbs
Take the absolute value of the second argument and stores the result in the variable
specified by the first argument. Arguments are set using ValueArgument and
VariableArgument.

SiemensCmdAngle
Takes the arc tangent of y/x (second/third arguments), and stores the result in degrees in
the variable specified by the first argument. Arguments are set using ValueArgument
and VariableArgument.
SiemensCmdASin
Takes the arc sine of the second argument, and stores the result in degrees in the variable
specified by the first argument. Arguments are set using ValueArgument and
VariableArgument.

VERICUT Macros
SiemensCmdATan
If 2 arguments were passed, takes the atan of the second argument, converts the results to
degrees, and stores the result in the first argument. If only one argument was passed,
takes the atan of the first argument, converts the results to degrees, and stores the result in
the first argument. If no arguments or more than 2 arguments were passed, issues an error
message.
SiemensCmdBranch
Branches to the location specified by the first argument. Arguments are set using
ValueArgument and VariableArgument.
SiemensCmdCase
Processes a Siemens "Case" statement. The first argument is the value being tested. It is
followed by a series of value pairs (value, branch location). If the values match, a branch
is made to the specified location. Arguments are set using ValueArgument and
VariableArgument.
SiemensCmdCos
Takes the cosine of the second argument (in degrees), and store the result in the variable
specified by the first argument. Arguments are set using ValueArgument and
VariableArgument.
SiemensCmdDec
Used to decrements the value of the specified variable. Arguments are set using
VariableArgument.
SiemensCmdGetChannel
Returns the current channel number. This macro assumes that the channel number is the
subsystem. In our system, the subsystem is an alphanumeric string. Channel numbers are
integers. This macro therefore requires that all INDEX machines be built with integer
subsystems. (@372)
SiemensCmdGetGCode
This macro will return the G-Code state in variable 1 of the corresponding group
specified in variable 3. The channel number in variable 2 is currently being ignored.
(@36b)
The following values are returned based on the group:
GROUP
0
1

VALUES
0, 1, 2, 3
9

VERICUT Macros
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
27
28
Else

17, 18, 19
40, 41, 42
53
Current Work Offset
4
60
70, 71
80
90, 91
94, 95
147
50
150
130
230
330
930
400
171
175
720
220
450
455
420
600
0

SiemensCmdHypot
Takes the square root of the sum of the squares of the second and third arguments, and
stores the result in the variable specified by the first argument. Arguments are set using
ValueArgument and VariableArgument.
SiemensCmdIfEqual
SiemensCmdIfGreater
SiemensCmdIfGreaterEqual
SiemensCmdIfLess
SiemensCmdIfLessEqual
SiemensCmdIfNotEqual

VERICUT Macros
The 6 macros above, process Siemens conditional logic. They are in the form: IF A
<conditional> B THEN continue ELSE jump to C. Arguments are set using
ValueArgument and VariableArgument.
SiemensCmdInc
Used to increment the value of the specified variable. Arguments are set using
VariableArgument.
SiemensCmdIntegral
Truncates the decimal contents of the specified variable. Arguments are set using
VariableArgument.
SiemensCmdPopVarGroup
Causes a series of variables from argument 1 to argument 2 to be restored by copying
them from variable 300+n.

NOTE: This might not be identical to the way the control processes this command, but
it should work for variables 0-200. Various problems and unknowns were associated with
treating this command like a true push/pop stack.
Example:
@043 R61 R69

Copies the contents of variables 361-369 to 61-69.

SiemensCmdPushVarGroup
Causes a series of variables from argument 1 to argument 2 to be copied to variable
300+n.

NOTE: This might not be identical to the way the control processes this command, but
it should work for variables 0-200. Various problems and unknowns were associated with
treating this command like a true push/pop stack.
Example:
@041 R61 R69

Copies the contents of variables 61-69 to 361-369.

SiemensCmdSin
Takes the sine of the second argument (in degrees) and stores the result in the variable
specified by the first argument. Arguments are set using ValueArgument and
VariableArgument.

VERICUT Macros
SiemensCmdSquareRoot
Takes the square root of the second argument and stores the result in the variable
specified by the first argument. Arguments are set using ValueArgument and
VariableArgument.
SiemensCmdTan
Takes the tangent of the second argument (in degrees) and stores the result in the variable
specified by the first argument. Arguments are set using ValueArgument and
VariableArgument.
SiemensCornerValue
The Sinumerik 3T version of macros CornerMode, and CornerValue. A negative value
sets the Mode to CHAMFER, and a positive value set the mode to RADIUS. The value
also defines the CornerValue.
SiemensCornerValue840D
Sinumerik 840D version of the CornerMode/CornerValue macros. A negative value
sets the Mode to CHAMFER, and a positive value set the mode to RADIUS. The value
also defines the CornerValue. This macro supports the multi-line statement.
SiemensCycle95
Executes a Siemens 840D stock removal turning cycle (CYCLE95). Parameters for this
cycle are programmed as a comma separated alpha-numeric list. The SiemensCycle95
macro must be associated with the first list parameter and used with the "after-motion"
option to insure all the cycle's parameters have been processed before the cycle's motions
are expanded. The first parameter of the CYCLE95 is the Siemens subroutine name
defining the cycle's contour and must be defined as "quoted_text". In addition, the
CYCLE95 word must be defined as a "List_alpha_numeric" word type.
SiemensCycle95Type
Sets the type of machining being requested with the Siemens CYCLE95 stock removal
cycle. Legal values are 1 through 12 as defined in the Siemens 840D programming
manual.
SiemensCycle97
Executes a Siemens 840D thread turning cycle (CYCLE97). Parameters for this cycle are
programmed as a comma separated numeric list. The SiemensCycle97 macro must be
used with the "after-motion" option to insure all the cycle's parameters have been
processed before the cycle's threading motions are expanded. The thread endpoints must
be set by calling SiemensCycle97Xstart, SiemensCycle97Xend,

VERICUT Macros
SiemensCycle97Zstart, and SiemensCycle97Zend prior to calling the SiemensCycle97
macro.
SiemensCycle97ArcIn
Sets the unsigned arc in extension for a Siemens 840D thread turning cycle (CYCLE97).
SiemensCycle97ArcOut
Sets the unsigned arc out extension for a Siemens 840D thread turning cycle (CYCLE97).
SiemensCycle97FinalAllowance
Sets the final allowance for a Siemens 840D thread turning cycle (CYCLE97).
SiemensCycle97FinishCuts
Sets the number of finish passes for a Siemens 840D thread turning cycle (CYCLE97).
SiemensCycle97RoughCuts
Sets the number of rough passes for a Siemens 840D thread turning cycle (CYCLE97).
SiemensCycle97ThreadStart
Sets the thread starting orientation (0 to 359.999 degrees) for multiple threads in a
Siemens 840D thread turning cycle (CYCLE97).
SiemensCycle97Type
Sets the type of machining (1 through 4) for a Siemens 840D thread turning cycle
(CYCLE97).
SiemensCycle97Xstart
SiemensCycle97Xend
SiemensCycle97Zstart
SiemensCycle97Zend
The 4 macros above are used to set the start and end points for a Siemens 840D thread
turning cycle (CYCLE97). X axis values are defined as radii.
SiemensCycleMillPocketCutType
Sets the milled pocket cut type for Siemens controls. Use instead of macro
CycleMillPocketCutType for Siemens controls.

VERICUT Macros
SiemensEndlessFeedLinkOnOff
Sets a flag which tells if the feedrate is dependent on the Siemens Endlessly Rotating
axis. The Text value must be set to the corresponding Rotary component register name,
and the Numeric value must be set to 0 (OFF) or 1 (ON), indicating whether the
dependency should be turned on or off).
SiemensEndlessFeedMode
Sets the feedmode for the endless rotating axis. The Text value must be set to the
corresponding Rotary component register name, and the Numeric value must be set to 1
(degrees per minute) or 2 (revolutions per minute), indicating feedmode.
SiemensEndlessFeedRate
Sets the feedrate for the Siemens Endlessly Rotating axis. The Text value must be set to
the corresponding Rotary component register name, and the Numeric value must be set to
the feedrate.
SiemensEndlessOnOffDir
Turns on or off the Siemens endless rotary feature. The Text value must be set to the
corresponding Rotary component register name, and the Numeric value must be set to -1
(CCW), 0 (OFF), or 1 (CW), indicating on/off and direction.
SiemensL137COffset
Used to implement Siemens Polar interpolation. This macro is specific to the Siemens
L137 command. It causes the current shift offset for the A or C axis to be incremented by
the current position of this axis. The axis that will be adjusted is based on the value
passed to the SiemensActualSpindle macro (3 applies to the A axis, 4 applies to the C
axis, the default is 4.).
SiemensL137COffsetCancel
Used to cancel Siemens Polar interpolation. It removes the additional offset that was
added by SiemensL137COffset. The offset that is removed is based on the
SiemensActualSpindle setting (3 applies to the A axis, 4 applies to the C axis).
SiemensLoadToolRegister
This macro is used to support Siemens @320 command.

NOTE: This macro only works with the fourth parameter set to K7 or K8.
Example:
@320 R900 K1 R101 K7

VERICUT Macros

If the fourth parameter is K7 look in the Tool Length Compensation table (see the
Tables for Processing G-Codes section, in the CGTech Help Library) at the register that
is = to variable 101 and assign that value to variable 900.
If the fourth parameter is K8 look in the Cutter Comp Table at the register that is = to
variable 101 and assign that value to variable 900.
SiemensNurbsKnot
Adds a Siemens specific incremental knot value.
SiemensNurbsProcess
This Siemens specific macro checks to see if the NURBS statement has been completed,
and if so, processes the NURBS statement.
SiemensPlaneOverrideArg
Similar to SiemensPlaneSelectionArg, except considers the Override Text field value
rather than the word.
SiemensPlaneSelection
Resets the plane selection argument count to zero.
SiemensPlaneSelectionArg
Processes the arguments for the Siemens G16 command. The general format for a
Siemens G16 command is: G16 X Y X Z D256, where the "word" for each of the
arguments determines the action to take. Therefore, the plane is set based on "X", "Y", or
"Z". The first 2 parameters set the motion plane. The third parameter specifies the axis in
which the tool length is to be applied, and the fourth parameter specifies whether the
additional offset is to be applied to either the tool length (tool length comp) or the cutter
comp.
This functionality is provided with the exception that the tool length (gage offset) is
always applied in the direction of the tool at the time the offset is applied (typically tool
change), and there are still unanswered questions about how the fourth argument is
applied.
Also see: SiemensPlaneOverrideArg
SiemensPolarAngle
Version of PolarAngle used with the 840D ANG processing. When the ANG word
appears in an NC block, either none, one or both of the axes in the ZX plane may also be

VERICUT Macros
programmed. This macro considers the context of the NC block. If no axes are
programmed the ANG word is considered ANG1 (first block of a two block contour
definition). If exactly one axis is programmed then it is either ANG1, or if it is the second
block of a two block contour definition, it is ANG2. If both axes are programmed then
ANG2 is assumed.
SiemensPolyT
Set the POLY T value.
SiemensPolyx
Sets the X axis, ax, and the bx values based on the Siemens specific input text string
argument.
SiemensPolyy
Sets the Y axis, ay, and the by values based on the Siemens specific input text string
argument.
SiemensPolyz
Sets the Z axis, az, and the bz values based on the Siemens specific input text string
argument.
SiemensShiftAngleA
SiemensShiftAngleB
These 2 macros are used to specify the absolute rotation angle. The sum of Angle A and
Angle B is the total rotation angle that will be applied.
SiemensShiftOffsetA
Shifts the work coordinate system by the specified axis values. The values will be
interpreted as absolute. Only values specified on the block will be adjusted. (Shift Offset
0, ABSOLUTE/MODAL)
See "Notes about shift macros" in the Notes about Special Topics section, in the
CGTech Help Library, for additional information.
SiemensShiftOffsetB
Shifts the work coordinate system by the specified axis values. The values will be
interpreted as absolute. Only values specified on the block will be adjusted. (Shift Offset
1, ABSOLUTE/MODAL)

VERICUT Macros
See "Notes about shift macros" in the Notes about Special Topics section, in the
CGTech Help Library, for additional information.
SiemensSpecifiedSpindle
Marks the specified spindle (numeric value) as being controlled by this controller. If the
spindle is the one that is currently being worked on (actual), then this controller will take
control of this spindle and call the RPMSpeed and ConstantSurfaceSpeed macros to
restore the corresponding spindle speed. (M*=33)
SiemensSpindleSpeed
Sets an internal Siemens spindle speed variable for the specified spindle. The spindle is a
numeric value specified by the Override Text value. If this head is the controlling head
for this spindle, then call the RPMSpeed and ConstantSurfaceSpeed macros to set the
internal spindle speed. (S*=*)
SiemensSubroutineCallDefine
Processes the Sinumerik L word as described in the Siemens Controller Functions
document. If the last 2 digits are zero, the L word is being used to define a subroutine. If
it is non-zero, the last 2 digits represent the number of times the specified subroutine
should be called. The remaining portion of the value represents the subroutine name.
Also, the Sequence macro is automatically called to update the sequence table and set the
current sequence number.
SimpleForLoop
This command is used to process a simple "for" loop of the form:
LOOP number
.
.
.
NEXT
The following Word Formats should be defined:
NEXT should be defined as a word of Type = "Macro", Sub Type = "None".
LOOP should be defined as a word of Type = "Macro", Sub Type = "Numeric".
Entries should be defined for NEXT and LOOP in the Word/Address table as illustrated
below:

VERICUT Macros

SkipWordIsOptimizable
Controls when a "SKIP" word is optimizable (e.g. "$"). Calling this macro with an
Override Value of "0", indicates that blocks containing a SKIP character are not
optimizable. Passing any non-zero value indicates the SKIP character is optimizable.
Optimizable is the default condition for SKIP characters.
SpecialRotoTrans
This macro is passed the name of the rototrans.txt file. It will read the specified file and
set the G54 offset and the rotation matrix.

NOTE: This macro requires the rototrans.txt file to be in the exact syntax as defined
below.
The rototrans.txt program will look like the following:
$P_UIFR[1,X,TR]= 2.25
$P_UIFR[1,Y,TR]= 1.32
$P_UIFR[1,Z,TR]= 5.78
G54
ROT Z= 1.23
AROT X= 0.12
AROT Z= 0.92
SpecialRotoTransComp
This command will move and rotate the specified component. The initial position is
being defined by the Ball1 CSYS. The final position is being defined by the current G54
offset and the current rotation matrix.

VERICUT Macros
SpindleChanger
Unloads the current spindle (if one exists), and loads the spindle specified with the
SpindleValue macro. This macro is a MasterCenter specific macro.
SpindleCompName
Prior toV6, this macro set the internal spindle component name based off the incoming
text value. It was used with SpindleCompOnOff. In V6, this macro is automatically
replaced by ActiveSpindleCompName.

NOTE: This macro now applies to the active spindle component. See
ActiveSpindleCompName and ActiveSpindleActiveTool.
See "Notes about spindle configuration in V6" in the Notes about Special Topics
section, in the CGTech Help Library, for additional information.
SpindleCompOnOff
Prior to V6, this macro was passed a numeric value of 1 for ON, and 0 for OFF. It set the
spindle component, specified by SpindleCompName, to either ON or OFF. It was only
used with boring bars and facing tools. In V6, this macro is automatically replaced by
ActiveSpindleOnOff.

NOTE: This macro now applies to the active spindle component. See
ActiveSpindleCompName and ActiveSpindleActiveTool.
See "Notes about spindle configuration in V6" in the Notes about Special Topics
section, in the CGTech Help Library, for additional information.
SpindleMotionCCW
If the spindle speed was set, outputs the APT "SPINDL/%n,CCLW" statement.
Otherwise, the APT "SPINDL/ON" statement is output. The SpindleMotionCCW macro
takes into consideration part side/tool side, and the settings of Disable Auto Direction
and Reverse Direction, in the Modeling window, Component Attributes tab, when
determining which direction is CCW. If the spindle component is on the part side, the
spindle direction will be reversed.
This macro is equivalent to calling ActiveSpindleDir with an Override Text = CCW,
and ActiveSpindleOnOff with Override Value = 1.

NOTES:
1. New controls should not use the above macros. They should use the
ActiveSpindleDir macro.

VERICUT Macros
2. This macro now applies to the active spindle component. For compatibility
reasons, if the system is currently in "milling" mode (set by default, by
VC_ModeMilling, or by VC_ModeMillingComp), then
ActiveSpindleActiveTool will be automatically called to set the active spindle
component. This macro should be replaced by the new ActiveSpindle macros .
See "Notes about spindle configuration in V6" in the Notes about Special Topics
section, in the CGTech Help Library, for additional information.
SpindleMotionCW
If the spindle speed was set, outputs the "SPINDL/%n,CLW" statement. Otherwise, the
APT "SPINDL/ON" statement is output. The SpindleMotionCW macro takes into
consideration part side/tool side, and the settings of Disable Auto Direction and Reverse
Direction, in the Modeling window, Component Attributes tab, when determining which
direction is CW. If the spindle component is on the part side, the spindle direction will
be reversed.
This macro is equivalent to calling ActiveSpindleDir with an Override Text = CW, and
ActiveSpindleOnOff with Override Value = 1.

NOTES:
1. New controls should not use the above macros. They should use the
ActiveSpindleDir macro.
2. This macro now applies to the active spindle component. For compatibility
reasons, if the system is currently in "milling" mode (set by default, by
VC_ModeMilling, or by VC_ModeMillingComp), then
ActiveSpindleActiveTool will be automatically called to set the active spindle
component. This macro should be replaced by the new ActiveSpindle macros .
See "Notes about spindle configuration in V6" in the Notes about Special Topics
section, in the CGTech Help Library, for additional information.
SpindleMotionOff
Outputs the APT "SPINDL/OFF" statement.
This macro is equivalent to calling ActiveSpindleOnOff with an Override Value = 0.

NOTE: This macro now applies to the active spindle component. For compatibility
reasons, if the system is currently in "milling" mode (set by default, by
VC_ModeMilling, or by VC_ModeMillingComp), then ActiveSpindleActiveTool will
be automatically called to set the active spindle component. This macro should be
replaced by the new ActiveSpindle macros.
See "Notes about spindle configuration in V6" in the Notes about Special Topics
section, in the CGTech Help Library, for additional information.

VERICUT Macros

SpindleSpeed
Sets the spindle speed to the input value, outputs a "SPINDL" command, updates the
Status window to have the specified spindle speed, and sets the spindle mode to RPM.
This macro is equivalent to calling RPMMode and ActiveSpindleSpeed.

NOTE: This macro now applies to the active spindle component. See
ActiveSpindleCompName and ActiveSpindleActiveTool.
See "Notes about spindle configuration in V6" in the Notes about Special Topics
section, in the CGTech Help Library, for additional information.
SpindleSpeedMax
Prior to V6, this macro set the maximum spindle speed to the input value. In V6, this
macro is automatically replaced by ActiveSpindleMaxSpeed.

NOTE: This macro now applies to the active spindle component. See
ActiveSpindleCompName and ActiveSpindleActiveTool.
See "Notes about spindle configuration in V6" in the Notes about Special Topics
section, in the CGTech Help Library, for additional information.
SpindleSpeedMin
Prior to V6, this macro set the minimum spindle speed to the input value. In V6, this
macro is automatically replaced by ActiveSpindleMinSpeed.

NOTE: This macro now applies to the active spindle component. See
ActiveSpindleCompName and ActiveSpindleActiveTool.
See "Notes about spindle configuration in V6" in the Notes about Special Topics
section, in the CGTech Help Library, for additional information.

SpindleValue
Sets the spindle value which is to be loaded.
StopOptional
If Tool Change By is set to "List" (ref. Project menu > NC Programs window in the
VERICUT Help section, in the CGTech Help Library.), and List Tool Change By is set
to "Program Stop" (ref. Project menu > NC Programs window > Build Tool List
window in the VERICUT Help section, in the CGTech Help Library), then this macro
will cause a tool change to occur. The tool change will be based off the tool list.

VERICUT Macros
If Stop At is set to "Optional Stop" (ref. Project menu > Processing Options > Motion
window in the VERICUT Help section, in the CGTech Help Library), this macro will
cause processing to stop.
StopProgram
If Tool Change By is set to "List" (ref. Project menu > NC Programs window), and
List Tool Change By is set to "Program Stop" (ref. Project menu > NC Programs
window > Build Tool List window in the VERICUT Help section, in the CGTech Help
Library), then this macro will cause a tool change to occur. The tool change will be based
off the tool list.
If Stop At is set to "Program Stop" (ref. Project menu Processing Options > Motion
window in the VERICUT Help section, in the CGTech Help Library), this macro will
cause processing to stop.
StopUnconditional
This macro will cause processing to stop. If this macro is invoked within an "IF"
condition, a check is done to determine that the "IF condition" is true before processing is
stopped. The calling of this macro will not be considered as a possible tool change event.
SubEndingSeq
This macro defines the ending sequence number for the current subroutine being called.
The value is non-modal. When the sequence number is reached within the subroutine, a
return from the subroutine is executed.
Also see: SubStartingSeq
SubroutineBlock
This macro defines the start of a subroutine. This macro is similar to
SubroutineSequence, except if the start of subroutine line was reached without being
called, it will immediately jump to the end of the subroutine.

NOTE: Use this macro to support the Acramatic DFS (define subroutine) command.
SubroutineName
Sets the subroutine name that is then used by the CallNCMacro or CallSub macros.
SubroutineSequence
Similar to the Sequence macro for jobs defined as a single pass. On multi-pass jobs, the
current location within the file is marked during the first pass as the beginning of a
subroutine.

VERICUT Macros
SubroutineSequenceEnd
This routine is identical to SubroutineSequence except it also marks the previous
subroutine if any as ended.

NOTE: A new routine was created to avoid causing problems with existing customers
where SubroutineSequence was being called for something other than the start of a
subroutine.
SubSpindleTransform
Causes a VERICUT/MATRIX command to be processed based on the auto-calculated
offset for the sub-spindle.

NOTE: This is a special purpose macro designed for use with pre-5.0 VERICUT
simulating a custom INDEX mill-turn NC machining center, and is NOT intended for
general use.
SubStartingSeq
Sets the starting sequence number for a call into a subroutine.
Also see: SubEndingSeq
SubsystemActivateTool
Activates the tool associated with the current subsystem.
SurfaceSpeed
Specifies that the part spindle RPM's will be set such that the surface speed of the tool
will remain constant at the given rate. The rate is specified as Feet Per Minute or Meters
Per Minute.
SuspendCutting
Stops the normal processing of the current block. This means that cutting and positional
updates will not occur.
Sync
Renamed to SyncMacro.
SyncCode
Sets the current Sync value. This value is used by the SyncId macro to cause the current
head (also known as subsystem, program, system, or channel) to wait until the specified
head reaches the corresponding Sync value.

VERICUT Macros
Previous macros like SyncMacro and SyncValue were based on a 2 sync head only
scenario. These macros caused a wait until the "other" head reaches a corresponding spot.
SyncId
Causes the current head (also known as subsystem, program, system, or channel) to wait
until the specified head (specified as an index value; 1 to n) reaches the corresponding
Sync value. The Sync value needs to be set prior to this call. This Sync value is set by
calling the SyncCode macro.
SyncIds
Causes the current head (also known as subsystem, program, system, or channel) to wait
until the specified heads (specified as an index value; 1 to 9) reaches the corresponding
Sync value. This macro is called with a list of Sync IDs for its numeric value. For
example: 123 would sync heads 1, 2, and 3. Any Sync ID corresponding to itself would
be ignored. The Sync value needs to be set prior to this call. This Sync value is set by
calling the SyncCode macro.
SyncMacro
Causes the active head to wait at the current location until the other head reaches the
corresponding sync location.
SyncMismatchHandling
This macro determines how a SyncValue mismatch should be handled. The default is to
have the head with the lower value continue on.
Valid input values are:
0 - Head with lower sync value continues on.
1 - Produce an error message and stop.
SyncTransfer
Causes the controlling/slave heads to swap.

SyncValue
Sets the current Sync value. This will cause the current head to wait until the other
processes a Sync value that is greater than or equal to the specified value.

Numbers A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

VERICUT Macros
TableIndex
Sets the index/register number of the table entry to be modified. Used with
SetTableValues and SetTableCoord. Default is 1. Use the Override Value field to
specify the table index number. TableIndex must be called before calling
SetTableValues.
TableValues
This macro can be called up to nine times to store nine values. Used with
SetTableValues. TableValues must be called before calling SetTableValues.
TapeCacheCheck
The TapeCache macros were written specifically for the Electroimpact (EI) tape
formatted data. Before laying the tape, a list is given which defines the point at which
specific tows are to be turned on. TapeCachePoint defines the point. TapeCacheTows
specifies the tows that are to be turned on at this point. TapeCacheCheck checks to see
if the current XYZ point matches the next point in the "cache" list, and if so, turns on the
specified tows.

NOTE: This macro only needs to be called if running in SYNC mode.


TapeCachePoint
The TapeCache macros were written specifically for the Electroimpact (EI) tape
formatted data. Before laying the tape, a list is given which defines the point at which
specific tows are to be turned on.TapeCachePoint defines the point. TapeCacheTows
specifies the tows that are to be turned on at this point. TapeCacheCheck checks to see
if the current XYZ point matches the next point in the "cache" list, and if so, turns on the
specified tows.
TapeCachePoint is passed a text value of "X", "Y", or "Z". This defines the coordinate
being passed.
TapeCacheTows
The TapeCache macros were written specifically for the Electroimpact (EI) tape
formatted data. Before laying the tape, a list is given which defines the point at which
specific tows are to be turned on. TapeCachePoint defines the point. TapeCacheTows
specifies the tows that are to be turned on at this point. TapeCacheCheck checks to see
if the current XYZ point matches the next point in the "cache" list, and if so, turns on the
specified tows.
TapeCacheTows subtracts 10000 from the value passed, and the resulting number is
then converted into binary. Each bit that is on corresponds to that Tow being turned on.
Therefore, a value of 10001 turns on the first tow on the right, and a value of 10003 turns
on the first two tows on the right.

VERICUT Macros
TapeDensity
Although density is usually specified in units of weight/volume, this macro is expecting
the density to be specified in inches/pound (if the system units are inch), or mm/kg (if the
system units are mm). This value is used to display statistics on the weight of the tape
that has been laid. The default is 9552 in/lb. No unit conversion is made on this value.
The input values should be based on system units.
TapeHead
This macro causes the statistics to now be applied to the head specified in the text field. If
this head has not previously been used, the head statistics will be initialized to default
values.

NOTE: Make sure the default values are set prior to calling this macro.
TapeHeadService
This macro causes the following statistics to be reset.
1. The number of cuts on this head since the last service.
2. The time since the last service (the time laying tape and traversing).
3. The time laying tape since the last service.

NOTES:
1. These statistics are kept on both the head and each tow. Both the head and tow
statistics are reset by this command.
2. This macro does not cause the tape to be reloaded. See TapeReloadTow and
TapeReloadAllTows.
TapeInitialLength
This macro sets the default tape length. It is used when the TapeHead macro is called for
a new head, and when TapeReloadAllTows or TapeReloadTow is called. It is used to
track how much tape is left, and to cause an error and stop if you run out of tape. Units
are in either inches or mm. The default is 53712 inches (6 lb roll at 796 ft/lb).
TapeLayer
This macro specifies the current tape layer.
TapePath
This macro was used early on and is now obsolete. See TapeLayer and TapePly.

VERICUT Macros
TapePly
The ply is specified as a text value. This macro sets the current tape layer based on the
ply. The syntax of the ply must be in the form: aaaxxxbbb, where aaa represent nonnumeric values, xxx represent the numeric layer number, and bbb represents an identifier
for the ply, starting with a non-numeric value.

NOTE: This macro only uses the layer number.


TapeReloadAllTows
This macro causes the remaining length for all tows on the current head to be reset to the
default initial length. The head should be loaded, and the default initial length set prior to
calling this macro. See TapeHead and TapeInitialLength.
TapeReloadTow
This macro causes the remaining length to be reset to the default initial length for the
specified tow. The tow is numbered 1-n starting with the left tow as seen from looking
down the tool axis while riding on the tool and positive X is on your right. To specify a
different length for each tow, call TapeInitialLength prior to each call to this
macro.NOTE: The head needs to be loaded prior to the call to this macro. See
TapeHead.
TapeThickness
This macro specifies the tape thickness. The default is .0074 inches.
TapeTotalTows
If passed a text argument of "ALL", this macro will turn off all tows. Otherwise, it will
turn off the specified numbered tow.
TapeTowOff
If passed a text argument of "ALL", this macro will turn off all tows. Otherwise, it will
turn off the specified numbered tow.
TapeTowOn
If passed a text argument of "ALL", this macro will turn on all tows. Otherwise, it will
turn on the specified numbered tow.

VERICUT Macros
TapeTows
This macro is passed a string in the format of: [1-5, 8-17, 25-31], which specifies which
tows are turned on. This macro turns on and off all tows based on the input text string.

NOTE: This macro is limited to 32 tows.


TapeTowSwitches
This macro is passed bit switches in the format of: 00011111001 specifying which tows
are turned on and off. A "1" indicates on, a "0" indicates off. Leading zeros do not need
to be specified. The bit switch farthest to the right corresponds to tow 1 which
corresponds to tow on the far left when looking down the tool axis while riding on the
tool and positive X is on your right.
TapeTowWidth
This macro sets the tow width. The default is .25 inches.
ThreadWire
Thread the wire EDM wire. This will cause the Wire to be displayed within the simulator,
and a "PPRINT/VERICUT-TC" statement to be printed. The height for the cutter will be
set to the maximum length of the wire based off of the vertical distance between the
guides, and the maximum angle.
Tool3dOffset
Turns on 3D Tool Correction to keep the tool tangent with the cutting surface. The actual
tool offset will vary based on the vector which is normal to the part surface at each given
point. This type of tool offset can only be used with standard bull nose and ball nose
cutters.
Also see: PartNormalX, PartNormalY, PartNormalZ, ToolVectorX, ToolVectorY,
ToolVectorZ, Cancel3dToolOffset

Tool3dXOffset
Tool3dYOffset
Tool3dZOffset
These 3 macros are used to set the 3D offset in the X, Y, and Z directions, respectively.
This is a form of cutter compensation where the offset can be in 3D, and is specified
directly in the MCD file.
NOTE: These macros are not related to Tool3dOffset.
Also see: CutterComp3d, Unitize3DVector, CutterCompOff

VERICUT Macros
ToolChainExchange
Unloads the tool currently in the spindle (if one is loaded), then loads the selected tool
from the toolchain into the machine's spindle. The unloaded tool is either placed in the
pocket just emptied by the new tool, or replaced into its original toolchain position
depending on the setting of Replace tool in its original pocket in the Toolchain
Parameters window. If a ToolChainExchange macro is used before the amount of time
to move the chain has elapsed, then the chain is moved and the total job time is increased
by the remaining time required to position the toolchain. When the time to reposition the
chain has elapsed before the exchange occurs, the time to reposition the chain is not
counted against the total job time. ToolChainExchange normally corresponds to the
machine's tool load (M6) code.

NOTE: The ToolChainExchange macro DOES NOT provide any motion of tool
exchanger arms or components. It simply loads the selected tool into the spindle and
attaches the unloaded tool to the toolchain pocket.
Also see: ToolChainMotion, ToolChainFromCompName, ToolChainToCompName,
and UnloadToolToCompName.
ToolChainFromCompName
Removes the tool from the specified component and attaches it to a toolchain pocket.
This toolchain pocket is either the pocket from which the selected tool was just loaded or
the tools original pocket, depending on the setting of Replace tool in its original pocket
in the Toolchain Parameters window (see the VERICUT Help section, in the CGTech
Help Library).
ToolChainMotion
Moves a selected tool in the chain to the exchange position. When a tool is selected by
calling macro ToolChainMotion, the time to move the toolchain is calculated using the
shortest direction of chain motion. The toolchains display is updated when cutting
motions have used the amount of time or when a command to load the selected tool is
processed. The ToolChainMotion macro normally corresponds to the controls T-code.
The macro ToolCode should be used before calling ToolChainMotion.
Also see: ToolChainExchange
ToolChainToCompName
Removes the selected tool from the toolchain pocket and attaches it to the tool changer
component specified by the text override. Macro ToolCode should be used before calling
ToolChainToCompName to select the new tool.
ToolChange
When the modal Tool Number Method = Select Only (ref. Configuration menu >
Control Settings: Tooling tab in the VERICUT Help section, in the CGTech Help
Library), unloads the current tool (if one exists) and loads the new tool.

VERICUT Macros

ToolChangeAlpha
Identical to ToolChange, except uses the tool id set by the macro ToolCodeAlpha.
ToolChangeByToolNum
Executes a tool change based on the tool number set by the ToolCode macro. This
macro is identical to the ToolChange macro except that this macro will NOT reference
the Tool List.

NOTE: The Tool Number Method must be set to "Select Only" (ref. Configuration
menu > Control Settings: Tooling tab in the VERICUT Help section, in the CGTech
Help Library ) for a tool change to occur with this macro call.
ToolChangeIfDifferent
Calls the ToolChange macro only when the new tool number is different from the current
tool.
ToolChangeNoRetract
Similar to ToolChange, except that the machine components will not retract to their tool
change locations.
ToolChangeSave
Causes the previously saved tool number to be loaded.
See ToolCodeSave.
ToolCode When the modal Tool Number Method = Select Only (Configuration menu
> Control Settings: Tooling tab), set the new tool number to the input value. But, when
Select & Change is the active choice, this macro sets the new tool number to the input
value and executes the corresponding tool change.

ToolCodeAlpha
Identical to ToolCode, except uses the text argument as the tool id rather than the
numeric argument as the tool number. Since this routine assumes the "tool code" is
alphanumeric, it sets the tool number to zero. This means that any feature in VERICUT
which references the tool number will not work.
ToolCodeSave
Saves the current tool number.
See ToolChangeSave.

VERICUT Macros
ToolCutterComp
Sets the cutter compensation amount for the current tool loaded in the active spindle. The
amount of cutter compensation is the value of the Cutter Compensation record saved with
the tool in the tool library. Each tool in the tool library can have multiple Cutter
Compensation records, each with a unique ID. The ID is input as a text string, but is
typically a numeric value. The numeric argument passed to this macro will be used to
match the Cutter Compensation ID in the tool library. For example, if D calls
ToolCutterComp with an argument of 15, then the value of Cutter Compensation ID
"15" is used as the cutter compensation amount. The default cutter comp value will either
be zero or the full radius of the tool depending on the setting of the Process Cutter
Comp option on the G-Code Settings window: Settings tab (see the VERICUT Help
section, in the CGTech Help Library.
This macro DOES NOT use the Cutter Compensation table (see the Tables for
Processing G-Codes section, in the CGTech Help Library). It gets the cutter
compensation amount from the tool library file. If the Cutter Compensation ID is not
found, the Cutter Compensation value is zero, and no adjustment is made.

NOTE: This macro uses alpha-numeric Tool IDs and numeric Cutter Compensation
ID's.
See "Notes about Gage Offset and Cutter Compensation" in the Notes about Special
Topics section, in the CGTech Help Library, for additional information.
ToolLengthCompNeg
Sets the tool length offset mode to Negative.
ToolLengthCompOff
Turns off the tool length offset.
ToolLengthCompPos
Sets the tool length offset mode to Positive.
ToolLengthCompToolNum
Uses the current tool number to index into the Tool Length Compensation table (see the
Tables for Processing G-Codes section, in the CGTech Help Library). The corresponding
value is used as the compensation amount when Tool Length Compensation is active.
Also see: ToolLengthCompToolNumSubValue.
NOTE: The current tool number refers to the tool number that is specified in the MCD
file (T1M6, T0101, &), NOT to the Tool Id that is specified in the TLS file which is a
string.

VERICUT Macros
ToolLengthCompToolNumSubValue Uses the current tool number and the specified
SubValue (SubRegister) to index into the Tool Length Compensation table (see the
Tables for Processing G-Codes section, in the CGTech Help Library) . The
corresponding value is used as the compensation amount when Tool Length
Compensation is active.
Also see: ToolLengthCompToolNum.

NOTE: The current tool number refers to the tool number that is specified in the MCD
file (T1M6, T0101, &), NOT to the Tool Id that is specified in the TLS file which is a
string.
ToolLengthCompUpdate
Updates the Tool Length Compensation amount. It assumes that Tool Length Comp
(pos/neg) has previously been turned on.
ToolLengthCompValue
Uses the input value to index into the Tool Length Compensation table (see the Tables
for Processing G-Codes section, in the CGTech Help Library). The corresponding value
is used as the compensation amount when Tool Length Compensation is turned on.
ToolLengthCompValueDirect
Sets the Tool Length Compensation value to the specified input value. The value is used
as the compensation amount when Tool Length Compensation is turned on.
ToolLengthOffsetValue
Sets the tool offset value based off of the corresponding entry in the Tool Length
Compensation table (see the Tables for Processing G-Codes section, in the CGTech
Help Library). This value is modal.
ToolNoseCompApply
This macro is no longer functional as of V6.0. If called, it will produce the following
warning message: "Macro ToolNoseCompApply is obsolete in V6.0".

NOTES:
1. ToolNoseComp will be automatically applied when cutter compensation is
applied with a non-zero value.
2. The amount of the ToolNoseComp will typically be set automatically based on
the tool definition. This value is set when the gage offset is retrieved from tool

VERICUT Macros
definition. This value can be overridden by calling ToolNoseCompValue,
ToolNoseCompToolNum, or ToolNoseCompToolNumSubValue.
ToolNoseCompCancel
Turns off tool nose compensation.
ToolNoseCompToolNum
Uses the current tool number to index into the Tool Nose Compensation table (see the
Tables for Processing G-Codes section, in the CGTech Help Library), which then
specifies the XYZ tool nose compensation that is to be applied. These values are typically
only active while in cutter compensation mode.
Also see: ToolNoseCompToolNumSubValue.

NOTE: The current tool number refers to the tool number that is specified in the MCD
file (T1M6, T0101, &), NOT to the Tool Id that is specified in the TLS file which is a
string.
ToolNoseCompToolNumSubValue
Uses the current tool number and the specified SubValue (SubRegister) to index into the
Tool Nose Compensation table (see the Tables for Processing G-Codes section, in the
CGTech Help Library). The corresponding values are used as the XYZ tool nose
compensation that is to be applied. These values are typically only active while in cutter
compensation mode.
Also see: ToolNoseCompToolNum.

NOTE: The current tool number refers to the tool number that is specified in the NC
program file (T1M6, T0101, &), NOT to the Tool Id that is specified in the TLS file
which is a string.
ToolNoseCompValue
Specifies the index into the Tool Nose Compensation table (see the Tables for
Processing G-Codes section, in the CGTech Help Library), which then specifies the XYZ
tool nose compensation that is to be applied. These values are typically only active while
in cutter compensation mode.
ToolOffsetAptAdj
VERICUT workpiece view does not support the concept of multiple driven points for a
given tool. However, machine views do. This macro allows Gage Offset table (see the
Tables for Processing G-Codes section, in the CGTech Help Library) to drive a
secondary offset on the tool, while the tool position is still based on the driven point
defined by the Tool Library file. The Gage Offset is calculated by:
GAGEPOINT_OFFSET - DRIVENPOINT_OFFSET.

VERICUT Macros
ToolOffsetAptAdj2
No longer used. If found in an NC control configuration, it is automatically replaced with
ToolOffsetAptAdj.
ToolOffsetIndex
Specifies the entry in the Gage Offset table (see the Tables for Processing G-Codes
section, in the CGTech Help Library) that is to be used to specify the distance from the
driven point of the tool to the spindle face. This macro will need to be called to actually
update the offset.
ToolOffsetUpdate
Updates the gage offset based off of the register value specified by the ToolOffsetIndex
macro. VERICUT first checks for a corresponding entry in a Gage Offset table (see the
Tables for Processing G-Codes section, in the CGTech Help Library). Otherwise, if the
specified register value is non-zero it uses the gage offset defined for the tool in the Tool
Library. If the gage offset is (0,0,0) and ApplyTurretOffset=2, the turret offset is also
cleared.
ToolOffsetUpdate2
No longer used. If ToolOffsetUpdate2 is found in an NC control configuration, it is
automatically replaced with ToolOffsetUpdate.
ToolRetract
Retract the tool along its tool axis. If ToolRetractDistance is set (>=0), it will retract this
distance or until the first axis limit is reached. If the ToolRetractDistance is negative,
the tool will retract until one of the XYZ axes reaches its axis limit.
ToolRetractDistance
Sets the tool retract distance (Override Value = distance to retract). A negative value
means to retract until one of the XYZ axes reaches its limit. This value is used with
ToolRetract. This value is modal. The default value is -1.
NOTE: To make the distance value non-modal, this macro can be called a second time
after motion with a value of -1.
ToolSideOffsetMultiplier
Sets a multiplier for the tool offset. It is intended to give the capability to inverse the
direction of the offset in case the internal calculation has it going the wrong direction.
The text value is used to specify which axis to apply the multiplier (X, Y, or Z). The
numeric value passed to this macro specifies the multiplier.

VERICUT Macros

NOTE: This macro should only be used in rare situations as directed by CGTech
Technical Support.
ToolVectorX
ToolVectorY
ToolVectorZ
Use these 3 macros to set the X, Y, and Z components of the tool vector. Is specified with
ToolChange.

NOTE: These macros are redundant and may be deleted in the future.
Also see: Tool3dOffset
Touch
Turns on "Move until you touch" for the current block. Default touch component is the
active tool (see TouchComponentName). The axes move until the touch component
arrives at the programmed location, or when the object contacts something.
If the Override Text value begins with "RETURN=", then the string following the equal
sign will be interpreted as a variable name in which the return code from the Touch
motion will be returned. A return code value of 1 means that a "hit" occurred and a return
code value of 0 means that a "hit" did not occur. The specified variable name is modal.
The variable does not need to be pre-defined.

NOTE: The Touch macro only supports linear axis motion.


TouchComponentName
Specifies the "Touch" component used by the Touch macro. Default is the active tool
component. Use this when moving a component such as a tail stock or steady rest into
"contact" with another component, such as the stock. Use the Override Text field to
specify the component name. The TouchComponentName must be specified prior to
calling the Touch macro.
The algorithm used approximates the hit location based on the current model tolerance
and other factors. When any portion of the touch component contacts any other
component, the axes are moved to that location. Standard collision logic is used to
determine if any other component hits something during the touch motion, but the motion
continues to the touch destination.

VERICUT Macros
TriceptDriveCenterpost
This macro is specific to the new Tricept machine. This machine has 2 modes in which it
can be driven. The default mode is by specifying the XYZ of the tool tip, and a fictitious
ABC angle. The second mode is by driving the center post directly. This macro is used to
switch between these 2 modes. A value of 1 switches to center post mode, and a value of
zero switches to the default tool tip mode.
TripodArmLength
This is a special macro created for the Tripod machines. This macro specifies the distance
from the center of the tool platform to a ball joint.

NOTE: The distance to each of the ball joints must be the same.
TripodRodLength
This is a special macro created for the Tripod machines. This macro specifies the distance
of the rods that connect the tool platform to the machine.

NOTE: The length of each rod must be the same in order to get proper simulation.
TurnOnOffCompTravelLimits
This macro gives the capability to turn off travel limits for the specified component. The
default is to abide by the main GUI switches. A value of 1 restores this setting, any other
value turns travel limit checking off. For travel limits to be checked, the main Travel
Limit switch must be on, the component ignore switch must be off, and this switch must
be on.
TurnOnOffGageOffset
This macro is intended to be used when in Tool Length Compensation Mode. A value of
"0" turns "Off" the Gage Offset. Any other value turns "On" the Gage Offset. The default
is to not apply the gage offset when in Tool Length Compensation Mode. This macro is
intended to replace ApplyGageOffset.
Example:
G43 calls TurnOnOffGageOffset with Override Value = "1" (to turn on the gage
offset)
G49 calls TurnOnOffGageOffset with Override Value = "0" (to turn off the gage
offset)
Enter IMMEDIATE in the Override Text field to immediately apply or cancel the offset.
Using this option causes the change in offsets to take place immediately, which then
causes motion, even if there is no motion axis being programmed on the block.

VERICUT Macros
TurnOnOffGagePivotOffset
This macro turns On/Off the offset from the Tool component to the rotary pivot point. A
value of "0" turns "Off" this offset, and any other value turns "On" this offset. The
default is to not apply this offset.
Enter IMMEDIATE in the Override Text field to immediately apply or cancel the offset.
Using this option causes the change in offsets to take place immediately, which then
causes motion, even if there is no motion axis being programmed on the block.
The rotary pivot point is defined as the origin of the first parent rotary (if there is only
one), or the intersection of the axes of the first 2 rotary components up from the tool (if
there are more than one tool side rotary component). If there are two (or more) parent
rotary components and the axes do not intersect, the rotary pivot point is defined as the
second parent rotary.
This feature can be used with RTCP. When used with RTCP, this Gage Pivot Offset will
be used rather then the RTCP Pivot Offset. Being in RTCP mode is not a requirement to
activate this offset. This feature can now be used rather than using the
ApplyTurretOffset.
The TurnOnOffGagePivotOffset approach is the preferred method for handling the tool
to pivot offset. It has many advantages over the traditional approach. The advantages are
all associated with the new approach establishing a "relational" offset between the pivot
point and the current active tool component origin.
As described above, this approach assumes a specific pivot point based on the machine
configuration. In some cases, this pivot point might not be the pivot point that you want
to define. In these instances use PivotOffsetCompName to define the component
containing the desired pivot point.
In addition, this approach also assumes the offset to be between the pivot point and the
current active tool component origin. In some cases, the current active tool component
origin might not produce offset from the pivot point that you want to define. In these
instances use PivotOffsetCompNameB to define something other than the active tool
component origin.

NOTE: It is expected that the TurnOnOffGagePivotOffset macro will replace the


ApplyGagePivotOffset and ApplyGagePivotOffsetCurrent macros.
TurnOnOffMessage
This macro gives the capability to turn off messages that are displayed within VERICUT.
The text field specifies the native text tag of the message. A value of zero turns the
message off, and a value of 1 turns the message on. Currently "CmsZeroRadiusCircle:
ignoring circle statement with zero radius" is the only message that is supported. To turn
this message this message off, call:

VERICUT Macros
TurnOnOffMessage with a Text Value of CmsZeroRadiusCircle, and a value of 0.

NOTE: Message is listed in the non-english resource files (VcRes.local). The format is:
"native text tag":"message".
TurnOnOffRealTimeClock
Turns on and off a real time clock. A value of zero turns the clock "Off". All other values
turn the clock "On". The default is "Off". If the clock is turned on, the real time will be
calculated for each block. The time to process the block will be stored in the variable
CGT_REAL_TIME. The units of the variable will be in seconds. The concept is to
support the following type of MCD logic:
#3001 = 0
While (#3001 < 2000) DO1
END1
The above loop would sit and wait for 2000 milliseconds.
IF #3001 was tracking milliseconds, then the following should be added to the "End of
Block Processing" event (after BlockFinish).
Variable 3001 = #3001 + (#CGT_REAL_TIME * 1000)
TurnOnOffSubsystemTravelLimits
This macro gives the capability to turn off travel limits for all components within the
specified subsystem. The default is to abide by the main GUI switches. A value of 1
restores this setting, any other value turns travel limit checking off. For travel limits to be
checked, the main Travel Limit switch must be on, the component ignore switch must be
off, and this switch must be on.
TurnOnOffTravelLimits
This macro gives the capability to turn off travel limits for all components within the
current subsystem. The default is to adhere to the settings in the Machine Settings
window: Travel Limits tab. A value of 1 restores this setting, any other value turns
travel limit checking off. For travel limits to be checked, the main Travel Limit switch
must be on, the component ignore switch must be off, and this switch must be on.
TurretActivateTool
Marks the tool associated with the specified tool index as the active tool, Updates the
status window to reflect status for the active tool, and initializes the turret offset.

VERICUT Macros

NOTE: APT output for reverse postprocessing is generated from the active tool.
DO NOT call this macro using the Configuration menu > Word/Address function (see
the VERICUT Help section, in the CGTech Help Library). Instead, use the
TurretToolChange macro as it automatically calls all macros needed to change tools
connected to Turret components.
TurretIndex
Rotates the turret so that the specified tool index number is in cutting position. This
macro will then search for a tool with the specified index number (index number only
applies to tools that are connected to a turret). If an entry exists for the specified tool
index in the Turret Rotations table (see the Tables for Processing G-Codes section, in
the CGTech Help Library), the corresponding value will be used as the absolute angle of
this tool. If an entry does not exist, the angle will be calculated based off of the
XAXIS/ZAXIS matrix for the associated tool. The register name of the corresponding
turret will be used to rotate the turret into position. The Rotary control settings determine
the direction (CW, CCW) of motion. While the turret is being rotated, no APT will be
generated. An APT GOTO will be generated at the final position.
DO NOT call this macro using the Configuration menu > Word/Address function (see
the VERICUT Help section, in the CGTech Help Library). Instead, use the
TurretToolChange macro as it automatically calls all macros needed to change tools
connected to Turret components.
TurretLoadTool
For a turret, a tool is not actually "loaded", but instead is indexed for cutting. This macro
is used with turret machines and does the following: cancels cycles (if active), resets the
motion type to "Rapid", sets the machining type (Mill vs. Turn) based on the type of tool
loaded, and issues a LOADTL command to load the tool for cutting.
DO NOT call this macro using the Configuration menu > Word/Address function (see
the VERICUT Help section, in the CGTech Help Library). Instead, use the
TurretToolChange macro as it automatically calls all macros needed to change tools
connected to Turret components.
TurretRetract
Causes the Turret to retract to the tool_change retract position. All corresponding tool
change modals/table values are used to determine if the retract should actually occur,
which components should retract, and to what retract position.
DO NOT call this macro using the Configuration menu > Word/Address function (see
the VERICUT Help section, in the CGTech Help Library). Instead, use the
TurretToolChange macro as it automatically calls all macros needed to change tools
connected to Turret components.

VERICUT Macros
TurretRotationOffset
This macro is used when a single tool connected to a Turret component is oriented in
multiple positions during the simulation. The macro specifies the delta angle between the
normal cutting position and the new cutting position. This angle is then used to cause
proper the Turret indexing.
TurretToolChange
When the Tool component with the corresponding Tool Index value is found in the NC
machine configuration, call the following macros: TurretRetract, TurretIndex,
TurretActivateTool, TurretLoadTool. These macros are not called if the specified Tool
component is already active, or the Tool component with the corresponding Tool Index
value is not found.

NOTE: When reading a pre-5.1 Control file this new macro will automatically replace
the above 4 macros when the 4 macros are found together (in any order). This is
important, because the order of these 4 macros is now critical.
TurretToolChangeAlpha
This macro searches all tools on the current turret (based on subsystem) for a tool with a
matching toolid (specified by the text value). If one is found, TurretToolChange will be
called with the corresponding Tool index number.
TurretToolChangeByToolNum
This macro searches all tools on the current turret (based on subsystem) for a tool with a
matching toolid (specified by the numeric value). If one is found, TurretToolChange
will be called with the corresponding Tool index number.
Type2Begin
This macro was created to handle K&T Type II commands. This macro gets called
during the "Start of Type II command" events. This macro initializes a couple values, and
keeps track of the number of active Type II commands that are currently being processed.
Also see: Type2End
Type2BEQLabel
Type II "Equal" logical-if true, then branch to a specified label. This macro expects three
Type2 arguments: 2 numeric and 1 text (in any order). It will compare the 2 numeric
values and if the condition is true, a branch will be made to the specified label.
N1090 (BEQ,E13,0,LB01) => Interpret as: if variable E13 is Equal to the value "0",
then branch to label "LB01".

VERICUT Macros
By default, GotoLabel is automatically called to execute the branch. The macro
Type2GotoLableFunction can be used to control branching. If it is passed an Override
Text value of "0", GotoLabel is used. Passing a value of "1" causes
CinciGotoLabelName to be used instead.
Type2BGELabel
Similar to Type2BEQLabel, except "Greater Than or Equal" logic applies.
Type2BGTLabel
Similar to Type2BEQLabel, except "Greater Than" logic applies.
Type2BLELabel
Similar to Type2BEQLabel, except ""Less Than or Equal" logic applies.
Type2BLTLabel
Similar to Type2BEQLabel, except "Less Than" logic applies.
Type2BNELabel
Similar to Type2BEQLabel, except "Branch if Not Equal" logic applies.
Type2CLS
A genericType II subroutine call with no arguments.
Type2CommentAllArgs
This is a Type 2 macro which can accept any number of arguments. The text string
associated with each argument will be concatenated together and will be processed as a
control comment and passed to VERICUT as a "PPRINT".
Type2DFS
A generic Type 2 subroutine definition with the ability to jump over the subroutine if it is
being defined and not called. This macro should be passed one argument which is the
subroutine name. Additional arguments are ignored.
Type2End
This macro was created to handle K&T Type II commands. This macro gets called during
the "End of Type II command" events. This macro decrements the number of active Type
II commands that are currently being processed.
Also see: Type2Begin

VERICUT Macros
Type2Goto
This is a Type 2 macro which expects one argument. This argument can either be a label
or a sequence number (a label will take precedence). This macro executes a branch to the
specified location.
Type2GotoLabelCond
This macro supports the TYPE II GOTO command that is in the form: (GTO, label
[,conditional]). When searching for the specified label, the search will begin at the
beginning of the current program or subprogram. If the conditional exists, the branch to
the specified label will only be executed if the conditional is TRUE. If the conditional
does not exist, the branch to the specified label will be executed unconditionally. The
type II word format for this macro is "T V".
Type2GotoLabelFunction
Controls branching by "Type2...Label" macros. If it is passed an Override Text value of
"0", GotoLabel is used. Passing a value of "1" causes CinciGotoLabelName to be used
instead.
Type2If
This is a Type 2 macro which expects one argument. If the argument equates to TRUE,
the corresponding statement will be executed. This routine might be G&L specific.
Type2IfBlock
This macro supports the TYPE II IF command that is in the form: (IF, conditional). This
is a type Type II version of the IfBlock macro. The general format of the NC code will
look as follows:
(IF, &.)
.
.
(ELSE)
.
.
(ENDIF)
The ElseBlock and EndIfBlock macros should be used to handle the corresponding
ELSE and ENDIF statements. The type II word format for this macro is "V".
Type2Label
This is a Type 2 macro which expects one argument. The argument is the label name that
is to be applied to the current block.

VERICUT Macros
Type2NELabel
Similar to Type2BEQLabel, except "Not Equal" logic applies.
Type2OpMsg
This is a Type 2 macro which expects one argument. The argument is the operator
message that is to be printed to the console.
Type2OpMsgAllArgs
This is a Type 2 macro which can accept any number of arguments. The text string
associated with each argument will be concatenated together and will be printed as an
INFO message.
Type2OpMsgStop
This is a Type 2 macro which has one optional argument. The argument is the operator
message that is to be printed to the console. This macro will also cause the processing of
the MCD file to stop.

Numbers A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

UAxisIncreMotion
Similar to UAxisMotion except it ignores the Absolute/Incremental mode setting, and
increments by the value specified.
UAxisMachineMotion
Similar to UAxisMotion, except it ignores all transformations and is used to move a
component to an absolute position within the machine coordinate system. A macro exists
for each motion axis: A, B, C, A2, B2, C2, X, Y, Z, U, V, W.
UAxisMachineRefMotion
Same as its UAxisMachineMotion counterpart, except that it also adds in the offset from
the Machine Reference Location (ref. Machine Reference Location table in the Tables
for Processing G-Codes section, in the CGTech Help Library). Thus, motion is relative to
the machine's reference location.
UAxisMotion
Sets the U value used to process the machine's U component. A macro exists for each
motion axis: A, B, C, A2, B2, C2, X, Y, Z, U, V, W.

VERICUT Macros
Unitize3DVector
Sets a flag to determine whether the vector associated with 3D tool offsets should be
unitized or not. 0= No, 1= YES. Default value is 1.
Also see: CutterComp3d, Tool3dXOffset, Tool3dYOffset, Tool3dZOffset,
CutterCompOff
UnitsInch
Sets the units mode to Inch.
UnitsMetric
Sets the units mode to Metric.
UnloadTool Unloads the current tool.
UnloadToolNoRetract
Similar to UnloadTool, except that the machine components will not retract to their tool
change locations.
UnloadToolToCompName
Unloads the current tool and attaches it to the specified component (normally a tool
changer return arm).
UnMountTool
Un-mounts the current tool from the specified tool component (Override Text = name of
the tool component).

NOTES:
1. This is NOT a tool change.
2. Un-mounting the tool DOES NOT change the active tool, execute a tool change
retract, increment the number of tools, or update tool offsets. It is strictly a way to
un-mount the tool. Typically, his will be used with a tool changer.
Also see: MountTool
UnMountToolIndex
Un-mounts the current tool from the specified tool component (specified by the tool
index value (Override Value = tool index value) and subsystem (Override Text =
subsystem of tool component).

VERICUT Macros

NOTES:
1. This is NOT a tool change.
2. Un-mounting the tool DOES NOT change the active tool, execute a tool change
retract, increment the number of tools, or update tool offsets. It is strictly a way to
un-mount the tool. Typically, this will be used with a tool changer.
Also see: MountToolIndex
Unsupported
Prints a warning message that the specified word/value pair is unsupported.
UntilLoop
Used with a REPEAT UNTIL loop, and is associated with the UNTIL word. If the
expression associated with UNTIL word is false, this macro will cause a jump back up to
the line following the corresponding REPEAT command. Currently, this macro is only
valid when used with the Sin840D REPEAT command.
See "Notes about the Siemens 840 CASE and REPEAT commands" in the Notes
about Special Topics, in the CGTech Help Library.
UpdateAxisValues
This macro causes the internal axis positions for a subsystem to be updated based on the
current position of the machine. This macro was specifically designed to work with the
CoupleAxisOn/Off macros. After turning the coupling off, the subsystem that was in a
wait state while its corresponding components were being moved, should then call this
macro.
UpdateIPZ
This macro is passed an index into the Input Program Zero (Special Z) table (see the
Tables for Processing G-Codes section, in the CGTech Help Library) via the Override
Value field. Use this macro to specifically set the internal values for the Input Program
Zero offset; a capability that is mainly useful when working with a "spindle changer"
type of machine and running in Tool Tip mode.

NOTES:
1. This DOES NOT change any of the table values. The new value for IPZ (Special
Z) can be seen using Modals/Debug/Debug Offsets.
2. This macro should probably be executed after motion or on a block by itself.
Also, since the internal value for Input Program Zero (Special Z) is being
modified, this method will probably not work when running in Tool Length
Comp mode.

VERICUT Macros
UpdateModalMacroVar
This macro is identical to MacroVar (which sets a block variable), except this macro
updates the modal variables that were previously set with a call to CallNCMacroMotion
or CallNCMacroBlock.
UpdatePZ
This macro is passed an index into the Program Zero table (see the Tables for
Processing G-Codes section, in the CGTech Help Library) via the Override Value field.
Use this macro to specifically set the internal values for the Program Zero offset; a
capability that is mainly useful when working with a "spindle changer" type of machine
and running in Tool Tip mode.
UpdateRotaryOffsets
Updates rotary pivot offset values that may have changed due to turning RTCP on/off.
uvw_axis
Renamed to UvwAxis.
UvwAxis
Cutter Compensation can only be applied along the x, y, and z axis. In the case of a dual
head system where xyzuvw all exists, cutter compensation can only be applied along the
xyz or uvw axis at a given time. This macro activates the uvw axis and deactivates the
xyz axis.

Numbers A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

ValueArgument
Specifies a value that is to be added to the list of value arguments.
VariableArgument
Specifies a variable that is to be added to the list of variable arguments. The content of
the variable is also added to the list of value arguments.
VarUpdateMacroVars
When this macro is passed with a value of 1, it will allow variables 1-34 to update the
modal macro vars. Passing a value of 0 turns off this feature. Zero is the default.
Typically, this would be turned on with a G66.1 and turned off with a G67.

VERICUT Macros
VAxisIncreMotion
Similar to VAxisMotion except it ignores the Absolute/Incremental mode setting, and
increments by the value specified.
VAxisMachineMotion
Similar to VAxisMotion, except it ignores all transformations and is used to move a
component to an absolute position within the machine coordinate system. A macro exists
for each motion axis: A, B, C, A2, B2, C2, X, Y, Z, U, V, W.
VAxisMachineRefMotion
Same as its VAxisMachineMotion counterpart, except it also adds the offset from the
Machine Reference Location (ref. Machine Reference Location table in the Tables for
Processing G-Codes section, in the CGTech Help Library). Thus, motion is relative to the
machine's reference location.
VAxisMotion
Sets the V value used to process the machine's V component. A macro exists for each
motion axis: A, B, C, A2, B2, C2, X, Y, Z, U, V, W.
VC_LoadFix
Outputs a "DISPLAY_FIXTURES" PPRINT.
VC_ModeMilling
VC_ModeTurning
Use these 2 macros to tell VERICUT to switch to Milling or Turning machining mode,
respectively. For milling, a spinning tool removes material when in contact with
Stock/Fixture. For turning, a Spindle spins the Stock/Fixture assembly and a stationary
tool (not spinning) removes material when in contact with Stock/Fixture. The Default
Machining Mode specifies which machining mode is assumed at the start of processing.
(Ref. File menu > Properties: General tab, in the VERICUT Help section, in the
CGTECH Help Library)
Using these macros affects how all defined Stock components are machined. To change
the machining mode of individual Stock components by component name, use the
VC_ModeMillingComp and VC_ModeTurningComp macros instead.

NOTE: These VC_Mode... macros can now be replaced with


ActiveSpindleCompName and ActiveSpindleOnOff. The main difference is that the
VC_Mode... macros produce a "PPRINT/VERICUT-MODAL:MACHTYPE" APT
statement, and SpindleCompOnOff produces a "SPINDLE" APT statement.

VERICUT Macros
See "Notes about spindle configuration in V6" in the Notes about Special Topics
section, in the CGTech Help Library, for additional information.
VC_ModeMillingComp
VC_ModeTurningComp
Same as described above for VC_ModeMilling and VC_ModeTurning, except uses the
Override Text string value to specify the name of the single Stock component to mill (or
turn).
Using these macros affects how specified individual Stock components are machined. To
change the machining mode of all defined Stock components at once, use the
VC_ModeMilling / VC_ModeTurning macros instead.

NOTE: These VC_Mode... macros can now be replaced with


ActiveSpindleCompName and ActiveSpindleOnOff. The main difference is that the
VC_Mode macros produce a "PPRINT/VERICUT-MODAL:MACHTYPE" APT
statement, and SpindleCompOnOff produces a "SPINDLE" APT statement.
See "Notes about spindle configuration in V6" in the Notes about Special Topics
section, in the CGTech Help Library, for additional information.
VC_UnloadFix
Outputs a "REMOVE_FIXTURES" PPRINT.
VirtualXAxis
Allows you to drive a non-orthogonal X axis with virtual values based on an orthogonal
coordinate system.
This macro is passed in the offset angle (about the Z axis) that the X axis is rotated.
When called with a non-zero value, this macro will establish a rotation plane which will
allow for virtual XYZ values to be input. When called with a value of zero, the rotation
plane will be cancelled, and the axis will be driven directly.

NOTE: This macro and VirtualYAxis are mutually exclusive.


VirtualYAxis
Allows you to drive a non-orthogonal Y axis with virtual values based on an orthogonal
coordinate system.
This macro is passed in the offset angle (about the Z axis) that the Y axis is rotated.
When called with a non-zero value, this macro will establish a rotation plane which will
allow for virtual XYZ values to be input. When called with a value of zero, the rotation
plane will be cancelled, and the axis will be driven directly.

VERICUT Macros

NOTE: This macro and VirtualXAxis are mutually exclusive.


VoltageOff
Controls when a SPINDLE/OFF statement is output during wire EDM machining.
VoltageOn
Controls when a SPINDLE/ON statement is output during wire EDM machining.

Numbers A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

WarningMacro
Enables you to configure warning messages and conditions.
WAxisIncreMotion
Similar to WAxisMotion except it ignores the Absolute/Incremental mode setting, and
increments by the value specified.
WAxisMachineMotion
Similar to WAxisMotion, except it ignores all transformations and is used to move a
component to an absolute position within the machine coordinate system. A macro exists
for each motion axis: A, B, C, A2, B2, C2, X, Y, Z, U, V, W.
WAxisMachineRefMotion
Same as its WAxisMachineMotion counterpart, except that it also adds the offset from
the Machine Reference Location (ref. Machine Reference Location table in the Tables
for Processing G-Codes section, in the CGTech Help Library). Thus, motion is relative to
the machine's reference location.
WAxisMotion
Sets the W value used to process the machine's W component. A macro exists for each
motion axis: A, B, C, A2, B2, C2, X, Y, Z, U, V, W.
Also see: WAxisMotionNoCycle
WAxisMotionNoCycle
Same as WAxisMotion, except the value is never interpreted as a cycle depth value.

VERICUT Macros
WAxisZeroTracking
Sets the W value used to process the machine's W component on a Zero-Tracking
machine.
In general for Zero Tracking, the local Z value + the local W value = the programmed
value. Another way to state this is that the programmed value drives the tool tip to the
specified distance in Z from the Program Zero point.
If both Z and W are specified on a block, the Secondary axis is driven to its specified
Machine Axis location, and Primary axis is driven to the location as specified above.
Also see: WPrimaryTrackingAxis, ZPrimaryTrackingAxis, and
WAxisZeroTracking
WhileLoop
Sets the while condition to the input value.
This command is used with DoLoop to process a "while/do" loop of the form:
While (expression) DO1
.
.
.
END1
The following Word Formats should be defined:
WHILE, DO and END should be defined as a word of Type = "Macro", Sub Type =
"Numeric".
() represent words of type left and right precedence.
Entries should be defined for WHILE, DO, and END in the Word/Address table as
illustrated below:

VERICUT Macros
WorkCoord
Updates the work coordinate system based off of the values in the Work Offsets table
(see the Tables for Processing G-Codes section, in the CGTech Help Library). The input
value is used as an index into this table. Any non-negative number is valid.
WorkCoordA2Value
WorkCoordB2Value
WorkCoordC2Value
The 3 WorkCoord... macros above are used to set values for the A2, B2, C2 axes for use
with various Work Coordinate System Offset macros. A macro exists for each motion
axis: A, B, C, A2, B2, C2, X, Y, Z, U, V, W.
When the WorkCoord[*]Value is called with an Override Text value of "MIRROR",
and the corresponding axis set to mirror, the input value will be mirrored.
WorkCoordAValue
WorkCoordBValue
WorkCoordCValue
The 3 WorkCoord... macros above are used to set values for the A, B, C axes for use
with various Work Coordinate System Offset macros. A macro exists for each motion
axis: A, B, C, A2, B2, C2, X, Y, Z, U, V, W.
When the WorkCoord[*]Value is called with an Override Text value of "MIRROR",
and the corresponding axis set to mirror, the input value will be mirrored.
WorkCoordIndex
Sets the index into the Work Coordinate Offset values. Valid values are from 0 to 59.
WorkCoordUValue
WorkCoordVValue
WorkCoordWValue
The 3 WorkCoord... macros above are used to set values for the U, V, W axes for use
with various Work Coordinate System Offset macros. A macro exists for each motion
axis: A, B, C, A2, B2, C2, X, Y, Z, U, V, W.
When the WorkCoord[*]Value is called with an Override Text value of "MIRROR",
and the corresponding axis set to mirror, the input value will be mirrored.

VERICUT Macros
WorkCoordWithMotion
This macro should be passed a value of zero or one. A value of zero means that the work
offset should be applied immediately. A value of 1 means that the offset will be applied
with motion on the corresponding axis. The default value is 1. This macro affects all
macros which set, or cancel, the base, primary, or secondary work offsets.

NOTE: In the case of Fadal, a call to this macro could be made during start of
processing.
WorkCoordXValue
WorkCoordYValue
WorkCoordZValue
Sets values for the X, Y, Z axes for use with various Work Coordinate System Offset
macros. A macro exists for each motion axis: A, B, C, A2, B2, C2, X, Y, Z, U, V, W.
When the WorkCoord[*]Value is called with an Override Text value of "MIRROR",
and the corresponding axis set to mirror, the input value will be mirrored.
WorkingPlane2Abc
This macro converts the "working plane" into real A, B, C angle that applies to the
current machine, and establishes a rotation plane if necessary. The resulting angles are
then stored in the specified variables. The text value passed to this macro contains the
names of the variables, typically for Heidenhain, this will be set to "120 121 122". This
macro makes use of the WorkingPlane2AbcType as defined below. The input value
defines how the "working plane" was defined.
Valid Override Values (input types):
Override Value = 0 Rotation Plane Angles and offsets.
These values are set with the following macros:
RotationPlaneAngle1
RotationPlaneAngle2
RotationPlaneAngle3
RotationPlaneIncAngle1
RotationPlaneIncAngle2
RotationPlaneIncAngle3
RotationPlaneXPoint
RotationPlaneYPoint
RotationPlaneZPoint
RotationPlaneIncXPoint
RotationPlaneIncYPoint
RotationPlaneIncZPoint
Override Value = 1 X and Z Vectors.
These vectors are set with the following macros:

VERICUT Macros

PlaneAxisVectorX
PlaneAxisVectorY
PlaneAxisVectorZ
WorkingPlane2AbcSolution
Anytime you convert a tool axis vector (IJK) to the corresponding 2 angles (A-C, B-C,
...), there are 2 possible solutions. This macro selects the algorithm which will be used to
determine the best solution. This setting is non-modal, and must be called prior to calling
WorkingPlane2Abc. The default setting is closest distance.
Options are:
1 = Closest distance
2 = Negative A solution
3 = Positive A solution

NOTE: As of 1/11/07, this feature is only supported for WorkingPlane2AbcType = 1.


WorkingPlane2AbcType
Typically called during the "Start of Processing" event, this macro controls the type of
conversion required to convert a rotated coordinate system into ABC rotations.
Conversion type is specified via Override Value.
There are two classes of conversion routines, "Generic" and "Specific". Specific
conversion types are meant for a very specific machine/control configuration. Generic
conversion types are for any machine/control that follows simple rules.
Generic conversion types:
Assume that if the rotaries are set to "Absolute", then the direction will be set to
"Shortest Distance".
When converting to ABC, typically there are 2 solutions. The Generic routines
will choose the solution which requires the smallest total rotary travel.
Assume that the control will be configured to handle any RTCP/RPCP issues.
Assume that the only rotation applied to components will be on nutator
components.
Are based on the order that the rotaries appear starting at the Tool, and ending
with the Stock. This means that an A on C head machine can use the same
Generic conversion type as an A head/C table machine, or a C on A table
machine. These 3 machine configurations would all be described as "A-C".
Travel limits will be obeyed.
If the tool angle is (0,0,1), the C angle will be set to match the input C angle.
Valid Override Values (conversion types):

VERICUT Macros
Override Value = 1
Override Value = 2
Override Value = 3

Generic A-C. A Nutator may exist on the table.


Generic B-C. A Nutator may exist on either head or table
Special A-C table on table machine with a horizontal head.

A nutator on the table is NOT supported. It is assumed that the NC program has been
posted for a horizontal head machine (Tool along the machines Y axis).
WPrimaryTrackingAxis
Marks the W as the primary axis and the Z as the secondary axis on a zero tracking
machine.
Also see: ZPrimaryTrackingAxis, ZAxisZeroTracking, and WAxisZeroTracking

Numbers A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

XAxisIncreMotion
Similar to XAxisMotion except it ignores the Absolute/Incremental mode setting, and
increments by the value specified.
XAxisMachineMotion
Similar to XAxisMotion, except it ignores all transformations and is used to move a
component to an absolute position within the machine coordinate system.
XAxisMachineRefMotion
Same as its XAxisMachineMotion counterpart, except that it also adds the offset from
the Machine Reference Location (ref. Machine Reference Location table in the Tables
for Processing G-Codes section, in the CGTech Help Library). Thus, motion is relative
to the machine's reference location.
XAxisMotion
Sets the X value used to process the machine's X component. A macro exists for each
motion axis: A, B, C, A2, B2, C2, X, Y, Z, U, V, W.
XLeadRate
Sets the distance to move along the X axes per revolution while threading. If 2 or more
axes are in motion, the lead rate of the axis which is moving the greatest distance will be
used.
XRetractSpecifiedpoint
Sets the retract level X position.

VERICUT Macros
XToolOffsetCompName
Specifies the name of the component to which the "X tool offset" is applied.
Also see: YToolOffsetCompName, ZToolOffsetCompName
xyz_axis
Renamed to XyzAxis.
XyzAxis
Cutter Compensation can only be applied along the x, y, and z axis. In the case of a dual
head system where xyzuvw all exists, cutter compensation can only be applied along the
xyz or uvw axis at a given time. This macro activates the xyz axis and deactivates the
uvw axis.

Numbers A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

YAxisIncreMotion
Similar to YAxisMotion except it ignores the Absolute/Incremental mode setting, and
increments by the value specified.
YAxisMachineMotion
Similar to YAxisMotion, except it ignores all transformations and is used to move a
component to an absolute position within the machine coordinate system.
YAxisMachineRefMotion
Same as its YAxisMachineMotion counterpart, except that it also adds the offset from
the Machine Reference Location (ref. Machine Reference Location table in the Tables
for Processing G-Codes section, in the CGTech Help Library). Thus, motion is relative to
the machine's reference location.
YAxisMotion
Sets the Y value used to process the machine's Y component. A macro exists for each
motion axis: A, B, C, A2, B2, C2, X, Y, Z, U, V, W.
YLeadRate
Sets the distance to move along the Y axes per revolution while threading. If 2 or more
axes are in motion, the lead rate of the axis which is moving the greatest distance will be
used.

VERICUT Macros
YRetractSpecifiedpoint
Sets the retract level Y position.
YToolOffsetCompName
Specifies the name of the component to which the "Y tool offset" is applied.
Also see: XToolOffsetCompName, ZToolOffsetCompName

Numbers A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

ZAxisIncreMotion
Similar to ZAxisMotion, except that it ignores the Absolute/Incremental mode setting,
and increments by the value specified.
ZAxisMachineMotion
Similar to ZAxisMotion, except it ignores all transformations and is used to move a
component to an absolute position within the machine coordinate system.
ZAxisMachineRefMotion
Same as its ZAxisMachineMotion counterpart, except it also adds the offset from the
Machine Reference Location (ref. Machine Reference Location table in the Tables for
Processing G-Codes section, in the CGTech Help Library). Thus, motion is relative to the
machine's reference location.
ZAxisMotion
Sets the Z value used to process the machine's Z component. A macro exists for each
motion axis: A, B, C, A2, B2, C2, X, Y, Z, U, V, W.
ZAxisMotionNoCycle
Same as ZAxisMotion, except the value is never interpreted as a cycle depth value.
ZAxisZeroTracking
Sets the Z value used to process the machine's Z component on a Zero-Tracking machine.
In general for Zero Tracking, the local Z value + the local W value = the programmed
value. Another way to state this is that the programmed value drives the tool tip to the
specified distance in Z from the Program Zero point.
If both Z and W are specified on a block, the Secondary axis is driven to its specified
Machine Axis location, and Primary axis is driven to the location as specified above.

VERICUT Macros
Also see: WPrimaryTrackingAxis, ZPrimaryTrackingAxis, and
WAxisZeroTracking
ZLeadRate
Sets the distance to move along the Z axes per revolution while threading. If 2 or more
axes are in motion, the lead rate of the axis which is moving the greatest distance will be
used.
ZPrimaryTrackingAxis
Marks the Z as the Primary axis and the W as the Secondary axis on a zero tracking
machine.
Also see: WPrimaryTrackingAxis, ZAxisZeroTracking, and WAxisZeroTracking
ZRetractSpecifiedpoint
Sets the retract level Z position.
ZToolOffsetCompName
Specifies the name of the component to which the "Z tool offset" is applied.
Also see: XToolOffsetCompName, YToolOffsetCompName
ZTranslateStockComp
Specifies the name of a Stock component in which the turning "PROFILE" primitive is to
be translated. This macro is typically used when simulating pick-off spindle operations.
ZTranslateValue
Specifies the "Z" amount that a turning "PROFILE" primitive is to be translated. This
macro is typically used when simulating pick-off spindle operations.
ZWBTiltTableLength
Designed for use with NC machines that use two linear axes connected at opposing ends
of a table that act as a "pseudo-rotary" table. Such a machine has Z, W, B axes which act
together to cause table tilt action. You can call this macro during the "Start of
Processing" event, and pass it an Override Value equal to the length of a tilting table.
This is then used as a flag to correct the B rotary value based on Z and W during rotary
moves.
NOTE: The setting of the B value through the user interface is still required, even
though the G-Code tool path on contains Z and W axis commands (no B commands
present).
Numbers A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

VERICUT Macros

Macros Sorted by Function


NOTE: For information on special keywords CGTECH_MACRO and CGTECH_VAR
REAL, see "About Simulating Subroutines" in the Using VERICUT section. Using
VERICUT can be found in the VERICUT Help Library.

ACCEL / DECEL
MACRO

STATUS

AccelTakeoffFactor

ACTIVE

ArcAccelFeedrateFactor

ACTIVE

COMMENTS

ACTIVATION
MACRO

STATUS

ActivateAxis

ACTIVE

ActivatePreToolSubsystem

ACTIVE

ActivateSpindle
ActivateToolSubsystem
ActiveTool

NOT RECOMMENDED

COMMENTS

Use ActivateToolSubsystem

ACTIVE
NOT RECOMMENDED

Use ActivateToolSubsystem

ActiveTool1
ActiveTool2
ActiveTool3
ActiveTool4
ActiveTool5
InActivateAxis

OBSOLETE
OBSOLETE
OBSOLETE
OBSOLETE
OBSOLETE
ACTIVE

Use ActivateToolSubsystem
Use ActivateToolSubsystem
Use ActivateToolSubsystem
Use ActivateToolSubsystem
Use ActivateToolSubsystem

SpindleValue

SPECIAL

SubsystemActivateTool

ALTERNATE

Should only be used with


SpindleChanger. See also
ActivateToolSubsystem
Use ActivateToolSubsystem

VERICUT Macros

BLOCK SKIP
MACRO
BlockSkipAnywhere

STATUS

COMMENTS

SPECIAL

BlockSkipSwitch1

ACTIVE

BlockSkipSwitchOff

ACTIVE

BlockSkipSwitchOn

ACTIVE

BRANCHING
MACRO

STATUS

CinciGotoLabelName

ACTIVE

ConditionalEndOfBlock

ACTIVE

DoLoop

ACTIVE

ElseBlock

ACTIVE

EndIfBlock

ACTIVE

EndLabelLoop

COMMENTS

Added V6.0

SPECIAL

EndLoop

ACTIVE

ForEndLoop

ACTIVE

ForLoop

ACTIVE

ForToValue

ACTIVE

GotoJump

ACTIVE

GotoJumpForwardBackward

ACTIVE

GotoJumpForwardBackwardStart

ACTIVE

GotoLabel

ACTIVE

GotoLabelForwardBackward

ACTIVE

Heid_GotoLabel

ACTIVE

Heid_JumpDecrement

ACTIVE

Heid_JumpDecrementValue

ACTIVE

Heid_JumpDecrementVar

ACTIVE

Heid_RepeatCount

ACTIVE

IfBlock

ACTIVE

IfCheck

ACTIVE

IfCheckAllMacros

ACTIVE

LabelMacro

ACTIVE

Added V6.0

VERICUT Macros
LabelName

ACTIVE

LabelNameValue

ACTIVE

LoopCount

ACTIVE

MahoSequence
NumIfCheck
NumSequence

ACTIVE
ALTERNATE
ACTIVE

OkumaGotoJump

ACTIVE

OkumaGotoLabel

ACTIVE

OliLabel

ACTIVE

ResetIfCheck

ACTIVE

Sequence

ACTIVE

SequenceEnd

ACTIVE

SequenceLoop

ACTIVE

SequenceLoopCount

ACTIVE

SequenceStart

ACTIVE

SequenceStartEnd

ACTIVE

SimpleForLoop

ACTIVE

UntilLoop

ACTIVE

WhileLoop

ACTIVE

Use IfCheck

Added V6.0

CHAMFER / ROUND
MACRO

STATUS

CornerMode

ACTIVE

CornerValue

ACTIVE

Heid_ProcessRNDorCHF

ACTIVE

SiemensCornerValue

ACTIVE

COMMENTS

CIRCLES
MACRO

STATUS

CircleCenterReset

ACTIVE

CircleCenterX

ACTIVE

COMMENTS

VERICUT Macros
CircleCenterY

ACTIVE

CircleCenterZ

ACTIVE

CircleCenterZWTracking

ACTIVE

CircleDirectDrive

ACTIVE

CircleIntermediatePoint

ACTIVE

CirclePresentAxis

ACTIVE

CircleRadius

ACTIVE

CircleRadiusLarge

ACTIVE

Heid_CircleCenterIncX

ACTIVE

Heid_CircleCenterIncY

ACTIVE

Heid_CircleCenterIncZ

ACTIVE

Heid_CircleCenterX

ACTIVE

Heid_CircleCenterY

ACTIVE

Heid_CircleCenterZ

ACTIVE

HelicalFullLoops

ACTIVE

Added V6.0
Added V6.0

Icode

ALTERNATE

Use Conditionals to call macros directly

Jcode

ALTERNATE

Use Conditionals to call macros directly

Kcode

ALTERNATE

Use Conditionals to call macros directly

PitchForcesHelical
Rcode

ACTIVE
ALTERNATE

SetCircle360Tolearance

Use Conditionals to call macros directly

ACTIVE

COOLANT
MACRO

STATUS

CoolantFlood

ACTIVE

CoolantMist

ACTIVE

CoolantOff

ACTIVE

CoolantOn

ACTIVE

COMMENTS

VERICUT Macros

CURVE FIT
MACRO

STATUS

CircleCurveFitQuadrants

ACTIVE

CurveFitOnOff

ACTIVE

COMMENTS

CUTTER COMPENSATION
MACRO

STATUS

Cancel3dToolOffset

ACTIVE

CutterComp3d

ACTIVE

CutterCompDoubleLong

ACTIVE

CutterCompDoubleShort

ACTIVE

CutterCompLeft

ACTIVE

CutterCompLong

ACTIVE

CutterCompOff

ACTIVE

CutterCompOffLookAheadX

ACTIVE

CutterCompOffLookAheadY

ACTIVE

CutterCompOffLookAheadZ

ACTIVE

CutterCompOffsetValue

ACTIVE

CutterCompRight

ACTIVE

CutterCompShort

ACTIVE

CutterCompSuspend
CutterCompToolNum
CutterCompToolNumSubValue
CutterCompValue
CutterCompValueDirect

ACTIVE
OBSOLETE
OBSOLETE
OBSOLETE
ACTIVE

MotionToolOffsetNeg

ACTIVE

MotionToolOffsetOnMotion

ACTIVE

MotionToolOffsetPos

ACTIVE

PartNormalX

ACTIVE

PartNormalY

ACTIVE

PartNormalZ

ACTIVE

ShortLongOffsetReset

ACTIVE

Tool3dOffset

ACTIVE

Tool3dXOffset

ACTIVE

Tool3dYOffset

ACTIVE

COMMENTS

Use ToolCutterComp
Use ToolCutterComp
Use ToolCutterComp

VERICUT Macros
Tool3dZOffset

ACTIVE

ToolCutterComp

ACTIVE

ToolVectorX

ACTIVE

ToolVectorY

ACTIVE

ToolVectorZ

ACTIVE

Unitize3DVector

ACTIVE

UvwAxis

ACTIVE

XyzAxis

ACTIVE

Added V6.0

CYLINDRICAL / POLAR
MACRO

STATUS

CylindricalDiameter

ACTIVE

CylindricalInterpolation

ACTIVE

CylindricalLinearAxis

ACTIVE

CylindricalRotationalAxis

ACTIVE

Heid_PolarAngle

ACTIVE

Heid_PolarIncAngle

ACTIVE

Heid_PolarIncRadius

ACTIVE

Heid_PolarMotionCCW

ACTIVE

Heid_PolarMotionCW

ACTIVE

Heid_PolarMotionLinear

ACTIVE

Heid_PolarRadius

ACTIVE

HeidIso_Polar

ACTIVE

HeidIso_PolarAngle

ACTIVE

HeidIso_PolarRadius

ACTIVE

PolarAngle

ACTIVE

PolarInterpolation
PolarLinearAxis
PolarRotationalAxis

ACTIVE
ACTIVE
ACTIVE

PolarXValue

ACTIVE

PolarYValue

ACTIVE

PolarZValue

ACTIVE

SiemensL137COffset

ACTIVE

SiemensL137COffsetCancel

ACTIVE

SiemensPolarAngle

ACTIVE

COMMENTS

Added V6.0

VERICUT Macros

DRILL CYCLES
MACRO

STATUS

CycleBoreShiftFlags

ACTIVE

CycleBoreShiftValue

ACTIVE

CycleBoreSpindleOnOffFlags

ACTIVE

CycleClearanceDistance

ACTIVE

CycleDepth

ACTIVE

CycleDepthInv

ACTIVE

CycleDepthType

ACTIVE

CycleDwellTime

ACTIVE

CycleIgnore

ACTIVE

CycleIncDepthType

ACTIVE

CycleIncRapidType

ACTIVE

CycleInitialOnMotion

ACTIVE

CycleMotionPlaneCheckOnOff

ACTIVE

CyclePresentAxis

ACTIVE

CycleRapidLevelInitial

ACTIVE

CycleRapidLevelInv

ACTIVE

CycleRapidLevelKeep

ACTIVE

CycleRapidLevelValue

ACTIVE

CycleRapidLevelValueMult

ACTIVE

CycleRapidLevelZeroTracking

ACTIVE

CycleRapidType

ACTIVE

CycleRetractInitial

ACTIVE

CycleRetraction

ACTIVE

CycleRetractSpecifiedpoint

ACTIVE

CycleRetractSpecifiedZT

ACTIVE

CyclesBore

ACTIVE

CyclesBoreDrag

ACTIVE

CyclesBoreOrient

ACTIVE

CyclesCancel

ACTIVE

CyclesDeep

ACTIVE

CyclesDrill

ACTIVE

CyclesExecute

ACTIVE

CyclesExecuteModal

ACTIVE

CyclesExecuteOnMotionOnOff

ACTIVE

CyclesFace

ACTIVE

CyclesMill

ACTIVE

COMMENTS

VERICUT Macros
CyclesTap

ACTIVE

CycleStepUpValue

ACTIVE

CycleStepValue

ACTIVE

CyclesThru

ACTIVE

CycleUvDepth

ACTIVE

CycleXyzDepth

ACTIVE

RetractLevelClearanceRetract

ACTIVE

RetractLevelClearanceRetract

ACTIVE

RetractLevelInitial

ACTIVE

RetractLevelRpoint

ACTIVE

RetractLevelSpecifiedpoint

ACTIVE

SetCycleSquareOffType

ACTIVE

XRetractSpecifiedpoint

ACTIVE

YRetractSpecifiedpoint

ACTIVE

ZRetractSpecifiedpoint

ACTIVE

DWELL
MACRO

STATUS

DwellMacro

ACTIVE

DwellRevolutions

ACTIVE

DwellSeconds

ACTIVE

DwellTime

ACTIVE

COMMENTS

EVENTS
MACRO

STATUS

AbBlockInit

ACTIVE

BlockFinish

ACTIVE

BlockInit

ACTIVE

CinciBlockInit

ACTIVE

ConversionFinish

ACTIVE

ConversionInit

ACTIVE

Fidia_ConvInit

ACTIVE

Heid_BlockInit

ACTIVE

COMMENTS

VERICUT Macros
KtBlockInit

ACTIVE

OliConvInit

ACTIVE

ProcessMotion

ACTIVE

HEID CMD
MACRO
HeidCmdAdd
HeidCmdAssign
HeidCmdCos
HeidCmdDivide
HeidCmdHypot
HeidCmcIfEqual
HeidCmdIfGreater
HeidCmdIfLess
HeidCmdIfNotEqual
HeidCmdMultiply
HeidCmdSin
HeidCmdSquareRoot
HeidCmdSubtract

STATUS
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE

COMMENTS
Added V6.0.3
Added V6.0.3
Added V6.0.3
Added V6.0.3
Added V6.0.3
Added V6.0.3
Added V6.0.3
Added V6.0.3
Added V6.0.3
Added V6.0.3
Added V6.0.3
Added V6.0.3
Added V6.0.3

MIRROR
MACRO

STATUS

MirrorA

ACTIVE

MirrorA2

ACTIVE

MirrorA2Cancel

ACTIVE

MirrorA2Value

ACTIVE

MirrorACancel

ACTIVE

MirrorAValue

ACTIVE

MirrorB

ACTIVE

MirrorB2

ACTIVE

MirrorB2Cancel

ACTIVE

MirrorB2Value

ACTIVE

MirrorBCancel

ACTIVE

MirrorBValue

ACTIVE

MirrorC

ACTIVE

COMMENTS

VERICUT Macros
MirrorC2

ACTIVE

MirrorC2Cancel

ACTIVE

MirrorC2Value

ACTIVE

MirrorCancel

ACTIVE

MirrorCCancel

ACTIVE

MirrorCValue

ACTIVE

MirrorX

ACTIVE

MirrorXCancel

ACTIVE

MirrorXValue

ACTIVE

MirrorY

ACTIVE

MirrorYCancel

ACTIVE

MirrorYValue

ACTIVE

MirrorZ

ACTIVE

MirrorZCancel

ACTIVE

MirrorZValue

ACTIVE

MISCELLANEOUS
MACRO

STATUS

AlarmSignal

ACTIVE

AutoScanOff

ACTIVE

AxisMappingXtoU

ACTIVE

ChangeSubsystemID

ACTIVE

CheckForLooseMaterial

ACTIVE

ClampCompName

ACTIVE

ClampOnOff

ACTIVE

CollisionCheckOnOff
CollisionDiagonalSize
CollisionOnCutPart
CollisionSpecialComp

COMMENTS

Added V6.0

SPECIAL
ACTIVE
Added V6.0
NOT
It is not recommended that this feature
RECOMMENDED be turned off.
SPECIAL

ConnectCompName

ACTIVE

ConnectToCompName

ACTIVE

CoupleAxisOff

ACTIVE

CoupleAxisOn

ACTIVE

DebugMacro

ACTIVE

DefineCsys

ACTIVE

DefineDashAsAlphaNumeric

ACTIVE

VERICUT Macros

Enhanced5AxisLogicOnOff

SPECIAL

ErrorMacro

ACTIVE

GetCurrentDate

ACTIVE

IgnoreMacro

ACTIVE

InputMacro

ACTIVE

InverseWordValue

ACTIVE

LinkAxisId

ACTIVE

LinkCompName

ACTIVE

LinkFormula

ACTIVE

LinkOffset

ACTIVE

LoadStocks

ACTIVE

MacroNotFoundMsgOnOff

ACTIVE

MazakMillingInterpolationOff

ACTIVE

MazakMillingInterpolationOn

ACTIVE

MazakPartLoader

OBSOLETE

MessageMacro

ACTIVE

ModeAsymTurningOnOff

ACTIVE

MotionBlockSyncOnOff

ACTIVE

MoveCutStockCompName

ACTIVE

MoveCutStockFromCsys

ACTIVE

MoveCutStockToCsys

ACTIVE

MoveDesignWithStock

ACTIVE

NullMacro

ACTIVE

OkumaControllingHead

ACTIVE

OkumaCutDepth2
OkumaCutDepth3
OkumaStartCutDepth2
OkumaStartCutDepth3

ACTIVE

PartTransformation

ACTIVE
ACTIVE
ACTIVE
OBSOLETE

PlaySoundFile

ACTIVE

Probe

ACTIVE

ProcessTimeOnOff

ACTIVE

ProgramStartNextLine

ACTIVE

RapidPlanePriorityType

ACTIVE

ReferencePoint

ACTIVE

ReferencePointCancelOffsets

ACTIVE

ReferencePointIndex

ACTIVE

RestoreSubsystemID

ACTIVE

Added V6.0 - Use only if there is a


problem

Added V6.0
Added V6.0
Added V6.0
Added V6.0
Added V6.0

Use
VC_LoadFix, VC_UnloadFix,
MoveCutStock macros

Added V6.0
Added V6.0
Added V6.0
Added V6.0
Use the MoveCutStock macros
Added V6.0.1

VERICUT Macros
Restore Units

ACTIVE

SaveUnits

ACTIVE

SetAxisCompLink
SetAxisRegisterName

Added V6.0
Concept is being tested
NOT
RECOMMENDED Added in V6.0
ACTIVE

SetComponentColor

ACTIVE

SetComponentVisibility

ACTIVE

SetMathOperatorPriority

ACTIVE

SetProgrammingMethod

ACTIVE

SetSubsystemID

ACTIVE

SetVNCKOption

ACTIVE

Siemens3PreProcessor

ACTIVE

SiemensEndlessOnOffDir

ACTIVE

SpecialRotoTrans

SPECIAL

SpecialRotoTransComp

SPECIAL

SpindleChanger

SPECIAL

StopOptional

ACTIVE

StopProgram

ACTIVE

StopUnconditional

ACTIVE

SuspendCutting

ACTIVE

Touch

ACTIVE

TouchComponentName

ACTIVE

TriceptDriveCenterpost

SPECIAL

TripodArmLength

SPECIAL

TripodRodLength

SPECIAL

TurnOnOffCompTravelLimits

ACTIVE

TurnOnOffMessage

ACTIVE

TurnOnOffRealTimeClock

ACTIVE

TurnOnOffSubsytemTravelLimits

ACTIVE

TurnOnOffTravelLimits

ACTIVE

UnitsInch

ACTIVE

UnitsMetric

ACTIVE

Unsupported

ACTIVE

UpdateAxisValues

ACTIVE

ValueArgument

ACTIVE

VariableArgument

ACTIVE

VC_LoadFix

ACTIVE

VC_ModeMilling

ACTIVE

VC_ModeMillingComp

ACTIVE

VC_ModeTurning

ACTIVE

VC_ModeTurningComp

ACTIVE

Added V6.0.2

Added V6.0

Added V6.1
Added V6.1
Added V6.1
Added V6.1
Added V6.0.2
Added V6.1

VERICUT Macros
VC_UnloadFix

ACTIVE

VirtualXAxis

ACTIVE

VirtualYAxis

ACTIVE

WarningMacro

ACTIVE

ZTranslateStockComp

OBSOLETE

ZTranslateValue

OBSOLETE

ZWBTiltTableLength

Added V6.0.1
No longer needed with new
Pickoff Spindle capabilities
No longer needed with new
Pickoff Spindle capabilities

SPECIAL

MOTION
MACRO

STATUS

A2AxisIncreMotion

ACTIVE

A2AxisMachineMotion

ACTIVE

A2AxisMachineRefMotion

ACTIVE

A2AxisMotion

ACTIVE

AAxisIncreMotion

ACTIVE

AAxisMachineMotion

ACTIVE

AAxisMachineRefMotion

ACTIVE

AAxisMotion

ACTIVE

AxisPriorityOnOff

ACTIVE

B2AxisIncreMotion

ACTIVE

B2AxisMachineMotion

ACTIVE

B2AxisMachineRefMotion

ACTIVE

B2AxisMotion

ACTIVE

BAxisIncreMotion

ACTIVE

BAxisMachineMotion

ACTIVE

BAxisMachineRefMotion

ACTIVE

BAxisMotion

ACTIVE

C2AxisIncreMotion

ACTIVE

C2AxisMachineMotion

ACTIVE

C2AxisMachineRefMotion

ACTIVE

C2AxisMotion

ACTIVE

CAxisIncreMotion

ACTIVE

CAxisMachineMotion

ACTIVE

CAxisMachineRefMotion

ACTIVE

CAxisMotion

ACTIVE

COMMENTS

Added V6.0

VERICUT Macros
GLSetCurrentZeroTrackingPos
Heid_MotionCCW
Heid_MotionCW
Heid_MotionLinear

ACTIVE
ALTERNATE
ALTERNATE
ACTIVE

Heid_XAxisMotion

ACTIVE

Heid_YAxisMotion

ACTIVE

ModeAbsolute

ACTIVE

ModeIncremental

ACTIVE

Motion3DCircle

ACTIVE

MotionCCW

ACTIVE

MotionCW

ACTIVE

MotionLinear

ACTIVE

MotionNurbs

ACTIVE

MotionOnOff

SPECIAL

MotionOnOffSide

OBSOLETE

MotionOnSide

OBSOLETE

MotionPlaneXY

ACTIVE

MotionPlaneYZ

ACTIVE

MotionPlaneZX

ACTIVE

MotionPoly

ACTIVE

MotionRapid

ACTIVE

MotionThread

ACTIVE

PlaneAxisMapping

ACTIVE

ProcessCompNameValue
ProcessCompRegValue
RestoreMotionType
SetMotionFlag

ACTIVE
ALTERNATE
ACTIVE
SPECIAL

SiemensPlaneOverrideArg

ACTIVE

SiemensPlaneSelection

ACTIVE

SiemensPlaneSelectionArg

ACTIVE

UAxisIncreMotion

ACTIVE

UAxisMachineMotion

ACTIVE

UAxisMachineRefMotion

ACTIVE

UAxisMotion

ACTIVE

VAxisIncreMotion

ACTIVE

VAxisMachineMotion

ACTIVE

VAxisMachineRefMotion

ACTIVE

VAxisMotion

ACTIVE

Use MotionCCW
Use MotionCW

Added V6.0

Used only for the intial


implementation of 4 axis sync. No
longer needed.
Used only for the intial
implementation of 4 axis sync. No
longer needed.

Use ProcessCompNameValue

VERICUT Macros
WAxisIncreMotion

ACTIVE

WAxisMachineMotion

ACTIVE

WAxisMachineRefMotion

ACTIVE

WAxisMotion

ACTIVE

WAxisMotionNoCycle

ACTIVE

WAxisZeroTracking

ACTIVE

WPrimaryTrackingAxis

ACTIVE

XAxisIncreMotion

ACTIVE

XAxisMachineMotion

ACTIVE

XAxisMachineRefMotion

ACTIVE

XAxisMotion

ACTIVE

XLeadRate

ALTERNATE

YAxisIncreMotion

ACTIVE

YAxisMachineMotion

ACTIVE

YAxisMachineRefMotion

ACTIVE

YAxisMotion

ACTIVE

YLeadRate

ALTERNATE

ZAxisIncreMotion

ACTIVE

ZAxisMachineMotion

ACTIVE

ZAxisMachineRefMotion

ACTIVE

ZAxisMotion

ACTIVE

ZAxisMotionNoCycle

ACTIVE

ZAxisZeroTracking

ACTIVE

ZLeadRate

ALTERNATE

ZPrimaryTrackingAxis

See also Turning Thread Cycles

See also Turning Thread Cycles

See also Turning Thread Cycles

ACTIVE

NURBS POLY
MACRO

STATUS

NurbsDegree

ACTIVE

NurbsInitialControl

ACTIVE

NurbsKnot

ACTIVE

NurbsOrder

ACTIVE

NurbsWeight

ACTIVE

SiemensNurbsKnot

ACTIVE

SiemensNurbsProcess

ACTIVE

SiemensPolyT

ACTIVE

SiemensPolyx

ACTIVE

COMMENTS

VERICUT Macros
SiemensPolyy

ACTIVE

SiemensPolyz

ACTIVE

OPTIPATH
MACRO

STATUS

Optimizable

ACTIVE

OptiMWordLast

ACTIVE

OptiPathExpandSubs

ACTIVE

OptiPathOptimizeCDC

ACTIVE

OptiPathOptimizeSubs

ACTIVE

OptiRestoreAdditionalCuts

ACTIVE

OptiSettings

ACTIVE

OptiSuppressAdditionalCuts

ACTIVE

OptiXYZFormat

ACTIVE

SkipWordIsOptimizable

ACTIVE

COMMENTS

POCKET CYCLES
MACRO

STATUS

CycleMillPocketAngle

ACTIVE

CycleMillPocketBottomAllowance

ACTIVE

CycleMillPocketBottomZ

ACTIVE

CycleMillPocketBoundarySub

ACTIVE

CycleMillPocketCenterX

ACTIVE

CycleMillPocketCenterY

ACTIVE

CycleMillPocketCornerRadius

ACTIVE

CycleMillPocketCutDirection

ACTIVE

CycleMillPocketCutType

ACTIVE

CycleMillPocketDepth

ACTIVE

CycleMillPocketFinishFeed

ACTIVE

CycleMillPocketFinishStepover

ACTIVE

CycleMillPocketInsideRadius

ACTIVE

CycleMillPocketLength

ACTIVE

CycleMillPocketMaxCutDepth

ACTIVE

COMMENTS

VERICUT Macros
CycleMillPocketPlungeFeed

ACTIVE

CycleMillPocketRefPlane

ACTIVE

CycleMillPocketRetractPlane

ACTIVE

CycleMillPocketRoughFeed

ACTIVE

CycleMillPocketSafeDistance

ACTIVE

CycleMillPocketSideAllowance

ACTIVE

CycleMillPocketSpeed

ACTIVE

CycleMillPocketStepover

ACTIVE

CycleMillPocketType

ACTIVE

CycleMillPocketWidth

ACTIVE

Heid_GetPocketContours

ACTIVE

Heid_InitializePocketContours

ACTIVE

Heid_PocketSub

ACTIVE

SiemensCycleMillPocketCutType

ACTIVE

PROGRAM ZERO
MACRO
AutoUpdateIPZ
AutoUpdatePZ
GLSameAngle360OnOff
MahoVertical2Rest
MahoVertical2Work
MaxTesselationAngle

STATUS

COMMENTS

OBSOLETE Use AutoUpdatePZ


NOT
Try using Gage and Gage Pivot
RECOMMENDED Offsets
ACTIVE
ALTERNATE Drive axis directly
ALTERNATE Drive axis directly
SPECIAL

MinTesselationPoints

ACTIVE

RotaryAxisLinearRewind

ACTIVE

RotaryAxisLinearRewind360_360

ACTIVE

RotaryDirCCW

ACTIVE

RotaryDirCW

ACTIVE

RotaryDirLinear

ACTIVE

RotaryDirPosCCW

ACTIVE

RotaryDirPosCW

ACTIVE

RotaryDirShortestDist

ACTIVE

RotaryLinearRewind

ACTIVE

RotaryLinearRewind360_360

ACTIVE

RotaryTypeAbsolute

ACTIVE

RotaryTypeLinear

ACTIVE

VERICUT Macros

UpdateIPZ

OBSOLETE

UpdatePZ

SPECIAL

Use the Program Zero tables and


UpdatePZ

ROTATE 2D
MACRO

STATUS

CinciRotateCenterCalc

ACTIVE

CinciRotateXYZMode

ACTIVE

OkumaCopyEnd

ACTIVE

OkumaCopyLoopCount

ACTIVE

OkumaCopyStart

ACTIVE

OkumaShiftRotate

ACTIVE

RotateCancel

ACTIVE

RotateMacro

SPECIAL

RotateOrigin

ACTIVE

RotateXValue

ACTIVE

RotateXYZ

ACTIVE

RotateYValue

ACTIVE

RotateZValue

ACTIVE

RotationAbsAngle

ACTIVE

RotationAngle

ACTIVE

RotationIncAngle

ACTIVE

SiemensShiftAngleA

ACTIVE

SiemensShiftAngleB

ACTIVE

COMMENTS

ROTATION PLANE
MACRO
ApplyRotationPlaneWithIjk2Abc
FanucRotationPlaneLocal2
Fidia_Rotate
Fidia_Rotate2
Fidia_RotateCancel
Fidia_RotateCancel2
Fidia_RotateXAxis

STATUS
ACTIVE
ALTERNATE
ALTERNATE
ALTERNATE
ALTERNATE
ALTERNATE
ALTERNATE

COMMENTS
Added V6.0
Use TurnOnOffGageOffset
Use standard rotation plane macros
Use standard rotation plane macros
Use standard rotation plane macros
Use standard rotation plane macros
Use standard rotation plane macros

VERICUT Macros
Fidia_RotateXPoint
Fidia_RotateYAxis
Fidia_RotateYPoint
Fidia_RotateZAxis
Fidia_RotateZPoint
Ijk2AbcType

ALTERNATE
ALTERNATE
ALTERNATE
ALTERNATE
ALTERNATE
ACTIVE

IjkAAxisMotion

ACTIVE

IjkBAxisMotion

ACTIVE

IjkCAxisMotion

ACTIVE

IVector

ACTIVE

JVector

ACTIVE

KVector
NumPlane
NumPlaneA
NumPlaneB
NumPlaneC
NumPlaneU
NumPlaneV
NumPlaneW
PlaneAxisVectorX

ACTIVE
ALTERNATE
ALTERNATE
ALTERNATE
ALTERNATE
ALTERNATE
ALTERNATE
ALTERNATE
ACTIVE

PlaneAxisVectorY

ACTIVE

PlaneAxisVectorZ
RotationPlane
RotationPlane2

ACTIVE
ALTERNATE
ACTIVE

RotationPlaneAngle1

ACTIVE

RotationPlaneAngle2

ACTIVE

RotationPlaneAngle3
RotationPlaneCancel
RotationPlaneCancel2
RotationPlaneCancelReset

ACTIVE
ALTERNATE
ACTIVE
ACTIVE

RotationPlaneEnable2

ACTIVE

RotationPlaneIncAngle1

OBSOLETE

RotationPlaneIncAngle2

OBSOLETE

RotationPlaneIncAngle3

OBSOLETE

RotationPlaneIncXPoint

ACTIVE

RotationPlaneIncYPoint

ACTIVE

RotationPlaneIncZPoint
RotationPlaneLocal
RotationPlaneLocal2
RotationPlaneRestoreAxis
RotationPlaneSpecialOffset

ACTIVE
ALTERNATE
ACTIVE
NR
ACTIVE

Use standard rotation plane macros


Use standard rotation plane macros
Use standard rotation plane macros
Use standard rotation plane macros
Use standard rotation plane macros

Use standard rotation plane macros


Use standard rotation plane macros
Use standard rotation plane macros
Use standard rotation plane macros
Use standard rotation plane macros
Use standard rotation plane macros
Use standard rotation plane macros

Use RotationPlane2

Use RotationPlaneCancelReset
See also RotationPlaneCancelReset

Added V6.0
Added V6.0
Use non incremental angles and
RotatonPlaneLocal2
Use non incremental angles and
RotatonPlaneLocal2
Use non incremental angles and
RotatonPlaneLocal2

Use RotationPlaneLocal2
Use Rotation macros ending with 2

VERICUT Macros
RotationPlaneXPoint

ACTIVE

RotationPlaneYPoint

ACTIVE

RotationPlaneZPoint

ACTIVE

WorkingPlane2Abc

ACTIVE

WorkingPlane2AbcType

ACTIVE

WorkingPlane2AbcSolution

ACTIVE

Added V6.1

SHIFT OFFSETS
MACRO

STATUS

AbsoluteShift

ACTIVE

AbsoluteShiftModal

ACTIVE

AbsoluteShiftNum

ACTIVE

CancelShiftOffsets

ACTIVE

ChangeWorkCoord

SPECIAL

IncrementalShift

ACTIVE

IncrementalShiftRotationDynamic

ACTIVE

OkumaCancelShiftRotate

ACTIVE

SiemensShiftOffsetA

ACTIVE

SiemensShiftOffsetB

ACTIVE

COMMENTS

SHIFT WORK PZ
MACRO

STATUS

DisableWorkShiftOffsets

ACTIVE

DynamicWorkOffsets

ACTIVE

DynamicWorkOffsetsContour

ACTIVE

DynamicWorkOffsetsLocalCoord

ACTIVE

DynamicWorkOffsetsTypes

ACTIVE

DynamicWorkOffsetsWithMotion

ACTIVE

EnableWorkShiftOffsets

ACTIVE

ResetWorkCoordParms

ACTIVE

RpcpOff

ACTIVE

RpcpOn

ACTIVE

UpdateRotaryOffsets

ACTIVE

COMMENTS

VERICUT Macros

SIEMENS CMD
MACRO

STATUS

Siemens3CmdBranch

ACTIVE

Siemens3CmdIfEqual

ACTIVE

Siemens3CmdIfGreater

ACTIVE

Siemens3CmdIfGreaterEqual

ACTIVE

Siemens3LoadAddress

ACTIVE

Siemens3SetAddressParm

ACTIVE

Siemens3TAddressAxis

ACTIVE

SiemensCmd300

ACTIVE

SiemensCmd302

ACTIVE

SiemensCmd303

ACTIVE

SiemensCmd305

ACTIVE

SiemensCmd306

ACTIVE

SiemensCmd308

ACTIVE

SiemensCmd330

ACTIVE

SiemensCmd331

ACTIVE

SiemensCmd360

ACTIVE

SiemensCmd383

ACTIVE

SiemensCmd400

ACTIVE

SiemensCmd403

ACTIVE

SiemensCmd404

ACTIVE

SiemensCmd430

ACTIVE

SiemensCmdAbs

ACTIVE

SiemensCmdAngle

ACTIVE

SiemensCmdASin

ACTIVE

SiemensCmdATan

ACTIVE

SiemensCmdBranch

ACTIVE

SiemensCmdCase

ACTIVE

SiemensCmdCos

ACTIVE

SiemensCmdDec

ACTIVE

SiemensCmdGetChannel

ACTIVE

SiemensCmdGetGCode

ACTIVE

SiemensCmdHypot

ACTIVE

SiemensCmdIfEqual

ACTIVE

SiemensCmdIfGreater

ACTIVE

SiemensCmdIfGreaterEqual

ACTIVE

SiemensCmdIfLess

ACTIVE

COMMENTS

VERICUT Macros
SiemensCmdIfLessEqual

ACTIVE

SiemensCmdIfNotEqual

ACTIVE

SiemensCmdInc

ACTIVE

SiemensCmdIntegral

ACTIVE

SiemensCmdPopVarGroup

ACTIVE

SiemensCmdPushVarGroup

ACTIVE

SiemensCmdSin

ACTIVE

SiemensCmdSquareRoot

ACTIVE

SiemensCmdTan

ACTIVE

SPEEDS & FEEDS


MACRO

STATUS

ActiveSpindleActiveTool

ACTIVE

ActiveSpindleCompName

ACTIVE

ActiveSpindleDir

ACTIVE

ActiveSpindleMaxSpeed

ACTIVE

ActiveSpindleMinSpeed

ACTIVE

ActiveSpindleOnOff

ACTIVE

ActiveSpindleSpeed

ACTIVE

ConstantSurfaceSpeed

ACTIVE

ConstantSurfaceSpeedMode

ACTIVE

FeedInvTime

ACTIVE

FeedInvTimeModalMultiplier

ACTIVE

FeedInvTimeMultiplier

ACTIVE

FeedInvTimeSec

ACTIVE

FeedModeMinute

ACTIVE

FeedModeRevolution

ACTIVE

FeedModeTime

ACTIVE

FeedPerMinute

ACTIVE

FeedPerMinuteType

ACTIVE

FeedPerRev

ACTIVE

FeedRate

ACTIVE

MaxTableRPM

ACTIVE

MazakSpindleRotation

ACTIVE

OkumaFeedrate2
OkumaFeedrate3

ACTIVE

RPMMode

ACTIVE

ACTIVE

COMMENTS

Added V6.0
Added V6.0
Added V6.0
Added V6.0
Added V6.0
Added V6.0

Added V6.0.1
Added V6.0.1

VERICUT Macros
RPMSpeed
SetActiveSpindleName
SetActiveStockName

ACTIVE
ALTERNATE
ACTIVE

SiemensActualSpindle

ACTIVE

SiemensEndlessFeedLinkOnOff

ACTIVE

SiemensEndlessFeedMode

ACTIVE

SiemensEndlessFeedRate

ACTIVE

SiemensSpecifiedSpindle

ACTIVE

SiemensSpindleSpeed

ACTIVE

SpindleMotionCCW

ACTIVE

SpindleMotionCW

ACTIVE

SpindleMotionOff

ACTIVE

SpindleSpeed

ACTIVE

SubSpindleTransform

ACTIVE

SurfaceSpeed

ACTIVE

Use SetActiveStockName

SUBROUTINES
MACRO

STATUS

CallNCMacro

ACTIVE

CallNCMacroBlock

ACTIVE

CallNCMacroCancel

ACTIVE

CallNCMacroMotion

ACTIVE

CallSub

ACTIVE

CallSubCurrent

ACTIVE

CallSubName

ACTIVE

CallTextSubName

ACTIVE

CycleSubroutineOff

ACTIVE

CycleSubroutineOn

ACTIVE

CycleSubroutineOnNoMotion

ACTIVE

EndProgram

ACTIVE

EndProgramRewind

ACTIVE

EndProgramRewindSpecial

ACTIVE

EndSub

ACTIVE

FadalLcode

ACTIVE

G65ResetVarsOnLoop

ACTIVE

Heid_CallLbl

ACTIVE

Heid_CallSubName

ACTIVE

COMMENTS

Added V6.0

Added V6.0

VERICUT Macros
Heid_CallTextSubName

ACTIVE

Heid_EndSub

ACTIVE

Heid_LabelMacro

ACTIVE

HeidIso_SubDefCallEnd

ACTIVE

HeidMPlus_SubroutineSequence

ACTIVE

IndexCallMainSub

ACTIVE

IndexChannel1Subroutine

ACTIVE

IndexChannel2Subroutine

ACTIVE

MacroVar

ACTIVE

NcodeSeqSub

OBSOLETE

NumSubroutineSequence

ACTIVE

NumSubSequenceLoop

ACTIVE

Okuma_CallSubName

ACTIVE

ReturnFromSub

ACTIVE

ReturnFromSubCall

ACTIVE

SequenceOrSubroutine

ACTIVE

Siemens840DProc

ACTIVE

Siemens840DProcCall

ACTIVE

Siemens840DSubroutineSequence

ACTIVE

SiemensSubroutineCallDefine

ACTIVE

SubEndingSeq

ACTIVE

SubroutineBlock

ACTIVE

SubroutineName

ACTIVE

SubroutineSequence

ACTIVE

SubroutineSequenceEnd

ACTIVE

SubStartingSeq

ACTIVE

UpdateModalMacroVar

ACTIVE

VarsUpdateMacroVars

ACTIVE

Added V6.0

Use SubroutineSequence

Added V6.0

Added V6.0
Added V6.0

SYNC
MACRO

STATUS

SyncCode

ACTIVE

SyncId

ACTIVE

SyncIds

ACTIVE

SyncMacro

ACTIVE

SyncMismatchHandling

ACTIVE

SyncTransfer

ACTIVE

SyncValue

ACTIVE

COMMENTS
Added V6.0
Added V6.0
Added V.6.0.1
Added V6.0

VERICUT Macros

THREAD MILL CYCLES


MACRO
CycleMillCenterAbscissa
CycleMillCenterOrdinate
CycleMillThread
CycleMillThreadDir
CycleMillThreadFeed
CycleMillThreadID
CycleMillThreadOD
CycleMillThreadPitch
CycleMillThreadToolTeeth

STATUS
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE

COMMENTS
Added V6.1
Added V6.1
Added V6.1
Added V6.1
Added V6.1
Added V6.1
Added V6.1
Added V6.1
Added V6.1

TABLES
MACRO

STATUS

SetTableCoord

ACTIVE

SetTableValues

ACTIVE

TableIndex

ACTIVE

TableValues

ACTIVE

COMMENTS

TAPE LAYING
MACRO
EI_RetractRadius
TapeCacheCheck
TapeCachePoint
TapeCacheTows
TapeDensity
TapeHead
TapeHeadService
TapeInitial Length
TapeLayer
TapePath
Tape Ply
TapeReloadAllTows

STATUS
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE

COMMENTS
Added V6.1
Added V6.1
Added V6.1
Added V6.1
Added V6.1
Added V6.1
Added V6.1
Added V6.1
Added V6.1
Added V6.1
Added V6.1
Added V6.1

VERICUT Macros
TapeReloadTow
TapeThickness
TapeTotalTows
TapeTowOff
TapeTowOn
TapeTows
TapeTowSwitches
TapeTowWidth

ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE

Added V6.1
Added V6.1
Added V6.1
Added V6.1
Added V6.1
Added V6.1
Added V6.1
Added V6.1

TOOL OFFSETS
MACRO

STATUS

ApplyGageOffset
ApplyGagePivotOffset
ApplyGagePivotOffsetCurrent

OBSOLETE
OBSOLETE
OBSOLETE

ApplyPivotOffset

ALTERNATE

ApplyTurretOffset

ALTERNATE

Cinci_5axisToolLengthComp

ALTERNATE

FanucToolLengthComp

ALTERNATE

FanucToolLengthCompAxisOn

ALTERNATE

GageOffsetAttributes

ACTIVE

GageOffsetDrivenPoint

ACTIVE

GageOffsetFirstDrivenPoint

ALTERNATE

NumLengthCompX

ALTERNATE

NumLengthCompY

ALTERNATE

NumLengthCompZ

ALTERNATE

PivotOffsetCompName

ACTIVE

PivotOffsetCompNameB

ACTIVE

RotaryControlPointOnOff

ACTIVE

RtcpContour

ACTIVE

RtcpOff

ACTIVE

RtcpOn

ACTIVE

RtcpWithMotion

ACTIVE

SetGageOffset

OBSOLETE

COMMENTS
Use TurnOnOffGageOffset
Use TurnOnOffGagePivotOffset
Use TurnOnOffGagePivotOffset
This macro is associated with the
older RTCP method
Use TurnOnOffGagePivotOffset
Try using standard RTCP with
Contour off and With Motion on.
Use TurnOnOffGageOffset
Try using standard RTCP with
Contour off and With Motion on, and
new Gage Offset logic.

Added V6.0
Added V6.0
Use GageOffsetDrivenPoint and
GageOffsetAttributes
Added V6.0
Uses a shift offset to apply tool offset.
Non-Standard. Alternatives Unknown.
Uses a shift offset to apply tool offset.
Non-Standard. Alternatives Unknown.
Uses a shift offset to apply tool offset.
Non-Standard. Alternatives Unknown.

Use GageOffsetDrivenPoint

VERICUT Macros
SetGageOffsetSubValue

OBSOLETE

SetMatchingGageOffset

OBSOLETE

SetPivotOffset

ALTERNATE

ToolLengthCompNeg

ALTERNATE

ToolLengthCompOff

ALTERNATE

ToolLengthCompPos

ALTERNATE

ToolLengthCompToolNum

ALTERNATE

ToolLengthCompToolNumSubValue

ALTERNATE

ToolLengthCompUpdate

ALTERNATE

ToolLengthCompValue

ALTERNATE

ToolLengthCompValueDirect
ToolLengthOffsetValue
ToolNoseCompApply

ACTIVE
OBSOLETE
ACTIVE

ToolNoseCompToolNum

ACTIVE

ToolNoseCompToolNumSubValue

ACTIVE

ToolOffsetIndex
ToolOffsetUpdate
ToolSideOffsetMultiplier
TurnOnOffGageOffset

This macro is associated with the old


style RTCP

See also GageOffsetDrivenPoint


See also GageOffsetDrivenPoint
See also GageOffsetDrivenPoint
See also GageOffsetDrivenPoint
See also GageOffsetDrivenPoint
See also GageOffsetDrivenPoint
See also GageOffsetDrivenPoint
Added V6.0

SPECIAL

ToolNoseCompCancel

ToolNoseCompValue
ToolOffsetAptAdj

Use GageOffsetDrivenPoint
Use GageOffsetDrivenPoint

ACTIVE
OBSOLETE
Not
Recommended
Not
Recommended
ACTIVE
ACTIVE

TurnOnOffGagePivotOffset

ACTIVE

TurretRotationOffset

ACTIVE

XToolOffsetCompName

ACTIVE

YToolOffsetCompName

ACTIVE

ZToolOffsetCompName

ACTIVE

No longer needed as of V6.0

Use GageOffsetDrivenPoint
Use GageOffsetDrivenPoint
Use GageOffsetDrivenPoint
Added V6.0.3

TOOLING
MACRO
GangToolChange
Hcode_Tool

STATUS
ACTIVE
ALTERNATE

LoadNextTool

ACTIVE

MountTool

ACTIVE

MountToolIndex

ACTIVE

COMMENTS
Added V6.0.2
Use ToolCode, Toolchange, and
GageOffsetDrivenPoint

VERICUT Macros
PreToolCompSelect

ACTIVE

SetVcMultiTools

ACTIVE

SiemensLoadToolRegister

ACTIVE

ToolChainExchange

ACTIVE

ToolChainFromCompName

ACTIVE

ToolChainMotion

ACTIVE

ToolChainToCompName

ACTIVE

ToolChange

ACTIVE

ToolChangeAlpha

ACTIVE

ToolChangeByToolNum

ACTIVE

ToolChangeIfDifferent

ACTIVE

ToolChangeNoRetract

ACTIVE

ToolChangeSave

ACTIVE

ToolCode

ACTIVE

ToolCodeAlpha

ACTIVE

ToolCodeSave

ACTIVE

ToolRetract

ACTIVE

ToolRetractDistance

ACTIVE

TurretActivateTool

OBSOLETE

TurretIndex

OBSOLETE

TurretLoadTool

OBSOLETE

TurretRetract

OBSOLETE

TurretToolChange

ACTIVE

TurretToolChangeAlpha

ACTIVE

TurretToolChangeByToolNum

ACTIVE

UnloadTool

ACTIVE

UnloadToolNoRetract

ACTIVE

UnloadToolToCompName

ACTIVE

UnMountTool

ACTIVE

UnMountToolIndex

ACTIVE

Use TurretToolChange
Use TurretToolChange
Use TurretToolChange
Use TurretToolChange
Added V6.0

TURNING CYCLES
MACRO
CycleTurnAdjustEndPoint

STATUS
TURNING_CYCLES Added V6.1

CycleTurnAllowanceX

ACTIVE

CycleTurnAllowanceZ

ACTIVE

CycleTurnCutDepth

ACTIVE

COMMENTS

VERICUT Macros
CycleTurnEndSeq

ACTIVE

CycleTurnFeed

ACTIVE

CycleTurnFinalX

ACTIVE

CycleTurnFinalZ

ACTIVE

CycleTurnFinish

ACTIVE

CycleTurnGroove

ACTIVE

CycleTurnGrooveAngle

ACTIVE

CycleTurnGrooveDepth

ACTIVE

CycleTurnGrooveEnd

ACTIVE

CycleTurnGrooveEscape

ACTIVE

CycleTurnGrooveFace

ACTIVE

CycleTurnGrooveRelief

ACTIVE

CycleTurnGrooveStep

ACTIVE

CycleTurnLoopCount

ACTIVE

CycleTurnRetractX

ACTIVE

CycleTurnRetractZ

ACTIVE

CycleTurnRoughCut

ACTIVE

CycleTurnRoughFace

ACTIVE

CycleTurnRoughLoop

ACTIVE

CycleTurnSpeed

ACTIVE

CycleTurnStartBlank

ACTIVE

CycleTurnStartSeq

ACTIVE

CycleTurnStockX

ACTIVE

CycleTurnStockZ

ACTIVE

CycleTurnThread

ACTIVE

CycleTurnThreadAngleTaper

ACTIVE

CycleTurnThreadFinish

ACTIVE

CycleTurnThreadFirstCut

ACTIVE

CycleTurnThreadHeight

ACTIVE

CycleTurnThreadLead

ACTIVE

CycleTurnThreadMinCut

ACTIVE

CycleTurnThreadTaper

ACTIVE

NumEndBlankContour

ACTIVE

NumTurnCycle

ACTIVE

OkumaEndContour

ACTIVE

OkumaStartBlankContour

ACTIVE

OkumaStartContour

ACTIVE

OkumaTurnCycle

ACTIVE

SiemensCycle95

ACTIVE

SiemensCycle95Type

ACTIVE

SiemensCycle97

ACTIVE

VERICUT Macros
SiemensCycle97ArcIn

ACTIVE

SiemensCycle97ArcOut

ACTIVE

SiemensCycle97FinalAllowance

ACTIVE

SiemensCycle97FinishCuts

ACTIVE

SiemensCycle97RoughCuts

ACTIVE

SiemensCycle97ThreadStart

ACTIVE

SiemensCycle97Type

ACTIVE

SiemensCycle97Xend

ACTIVE

SiemensCycle97Xstart

ACTIVE

SiemensCycle97Zend

ACTIVE

SiemensCycle97Zstart

ACTIVE

TYPE2
MACRO

STATUS

ABType2CLS

ACTIVE

BoschType2CYCLE

ACTIVE

GLType2Begin

ACTIVE

GLType2CLS

ACTIVE

GLType2DFS

ACTIVE

GLType2End

ACTIVE

GLType2FXZ

ACTIVE

GLType2FXZArg

ACTIVE

GLType2PDO

ACTIVE

GLType2PdoId

ACTIVE

GLType2PGM

ACTIVE

GLType2PRB

ACTIVE

GLType2RPT

ACTIVE

GLType2RTA

ACTIVE

GLType2UPD

ACTIVE

KtType2CLS

ACTIVE

OliType2EPP

ACTIVE

Type2Begin

ACTIVE

Type2BEQLabel

ACTIVE

Type2BGELabel

ACTIVE

Type2BGTLabel

ACTIVE

Type2BLELabel

ACTIVE

Type2BLTLabel

ACTIVE

COMMENTS

VERICUT Macros
Type2BNELabel

ACTIVE

Type2CLS

ACTIVE

Type2CommentAllArgs

ACTIVE

Type2DFS

ACTIVE

Type2End

ACTIVE

Type2Goto

ACTIVE

Type2GotoLabelCond

ACTIVE

Type2GotoLabelFunction

ACTIVE

Type2If

ACTIVE

Type2IfBlock

ACTIVE

Type2Label

ACTIVE

Type2OpMsg

ACTIVE

Type2OpMsgAllArgs

ACTIVE

Type2OpMsgStop

ACTIVE

Added V6.0

Added V6.0

VARIABLES
MACRO

STATUS

AutosetCutterCompVars

ACTIVE

AutosetTableAxisVars

ACTIVE

AutosetToolLengthCompVars

ACTIVE

BiDirVarsAvsIncr

ACTIVE

BiDirVarsApply

ACTIVE

BiDirVarsModeOnOff

ACTIVE

CGTechVarDefMacro

ACTIVE

NCVarDefaultValue

ACTIVE

NCVarWarnMessage

ACTIVE

SetDynamicVars

ACTIVE

SetLocalVariableCount

ACTIVE

SetMaxSubsystemVar

ACTIVE

SetMinSubsystemVar

ACTIVE

SetToolNumVar

ACTIVE

COMMENTS

Added V6.1
Added V6.1
Added V6.1
Added V6.0

VERICUT Macros

WIRE EDM
MACRO

STATUS

CutWire

ACTIVE

DefaultWire

ACTIVE

EDMCalcUpperGuideHeight

ACTIVE

EDMCalcUpperGuideLocation

ACTIVE

EDMGuide2Guide

ACTIVE

EDMLower2Reference

ACTIVE

EDMLowerGuideHeight

ACTIVE

EDMReference2Upper

ACTIVE

EDMUpperGuideHeight

ACTIVE

ThreadWire

ACTIVE

VoltageOff

ACTIVE

VoltageOn

ACTIVE

COMMENTS

WORK OFFSETS
MACRO

STATUS

AdditionalWorkCoord

ACTIVE

BaseWorkOffsetValues

ACTIVE

CancelAllWorkOffsets

ACTIVE

CancelWorkOffsets

ACTIVE

ChangeWorkCoordinateZWTracking

ACTIVE

FadalWorkCoord

ACTIVE

SecondaryRefWorkCoord

ACTIVE

SecondaryWorkCoord

ACTIVE

SetAbsWorkCoord

ACTIVE

SetAdditionalWorkCoord

ACTIVE

SetAdditionalWorkCoordNonModal

ACTIVE

SetBaseWorkOffset

ACTIVE

SetIncWorkCoord

ACTIVE

SetWorkCoord

ACTIVE

WorkCoord

ACTIVE

WorkCoordA2Value

ACTIVE

COMMENTS

Added V6.0

VERICUT Macros
WorkCoordAValue

ACTIVE

WorkCoordB2Value

ACTIVE

WorkCoordBValue

ACTIVE

WorkCoordC2Value

ACTIVE

WorkCoordCValue

ACTIVE

WorkCoordIndex

ACTIVE

WorkCoordUValue

ACTIVE

WorkCoordVValue

ACTIVE

WorkCoordWithMotion

ACTIVE

WorkCoordWValue

ACTIVE

WorkCoordXValue

ACTIVE

WorkCoordYValue

ACTIVE

WorkCoordZValue

ACTIVE

VERICUT Macros

Macros Sorted by Status


NOTE: For information on special keywords CGTECH_MACRO and
CGTECH_VAR REAL, see About Simulating Subroutines in the Using VERICUT
section.

ACTIVE
MACRO

MACRO FUNCTION STATUS

A2AxisIncreMotion

MOTION

ACTIVE

A2AxisMachineMotion

MOTION

ACTIVE

A2AxisMachineRefMotion

MOTION

ACTIVE

A2AxisMotion

MOTION

ACTIVE

AAxisIncreMotion

MOTION

ACTIVE

AAxisMachineMotion

MOTION

ACTIVE

AAxisMachineRefMotion

MOTION

ACTIVE

AAxisMotion

MOTION

ACTIVE

AbBlockInit

EVENTS

ACTIVE

AbsoluteShift

SHIFT_OFFSETS

ACTIVE

AbsoluteShiftModal

SHIFT_OFFSETS

ACTIVE

AbsoluteShiftNum

SHIFT_OFFSETS

ACTIVE

TYPE2

ACTIVE

ACCEL_DECEL

ACTIVE

ACTIVATION
ACTIVATION

ACTIVE

ABType2CLS
AccelTakeoffFactor
ActivateAxis
ActivatePreToolSubsystem

COMMENTS

ACTIVE

ActivateToolSubsystem
ActiveSpindleActiveTool
ActiveSpindleCompName

FEEDS_SPEEDS

ActiveSpindleDir

FEEDS_SPEEDS

ActiveSpindleMaxSpeed

FEEDS_SPEEDS

ActiveSpindleMinSpeed

FEEDS_SPEEDS

ActiveSpindleOnOff

FEEDS_SPEEDS

ActiveSpindleSpeed

FEEDS_SPEEDS

ACTIVE Added V6.0


ACTIVE Added V6.0

AdditionalWorkCoord

WORK_OFFSETS

ACTIVE

MISC

ACTIVE

AlarmSignal
ApplyRotationPlaneWithIjk2Abc
ArcAccelFeedrateFactor
AutoScanOff
AutosetCutterCompVars

ACTIVATION
FEEDS_SPEEDS

ACTIVE
ACTIVE
ACTIVE Added V6.0
ACTIVE Added V6.0
ACTIVE Added V6.0
ACTIVE Added V6.0

ROTATION_PLANE ACTIVE
ACTIVE
ACCEL_DECEL
MISC

ACTIVE

VARIABLES

ACTIVE

VERICUT Macros
AutosetTableAxisVars

VARIABLES

ACTIVE

AutosetToolLengthCompVars

VARIABLES

ACTIVE

AxisMappingXtoU

MISC

ACTIVE

AxisPriorityOnOff

MOTION

B2AxisIncreMotion

MOTION

ACTIVE Added V6.0


ACTIVE

B2AxisMachineMotion

MOTION

ACTIVE

B2AxisMachineRefMotion

MOTION

ACTIVE

B2AxisMotion

MOTION

ACTIVE

WORK_OFFSETS

ACTIVE

BAxisIncreMotion

MOTION

ACTIVE

BAxisMachineMotion

MOTION

ACTIVE

BAxisMachineRefMotion

MOTION

ACTIVE
ACTIVE

BiDirVarsAvsIncr

MOTION
VARIABLES

BiDirVarsApply

VARIABLES

BiDirVarsModeOnOff

VARIABLES

BaseWorkOffsetValues

BAxisMotion

ACTIVE Added V6.1


ACTIVE Added V6.1

BlockFinish

EVENTS

ACTIVE Added V6.1


ACTIVE

BlockInit

EVENTS

ACTIVE

BlockSkipSwitch1

BLOCK_SKIP

ACTIVE

BlockSkipSwitchOff

BLOCK_SKIP

ACTIVE

BlockSkipSwitchOn

BLOCK_SKIP

ACTIVE

BoschType2CYCLE

TYPE2

ACTIVE

C2AxisIncreMotion

MOTION

ACTIVE

C2AxisMachineMotion

MOTION

ACTIVE

C2AxisMachineRefMotion

MOTION

ACTIVE

C2AxisMotion

MOTION

ACTIVE

CallNCMacro

SUBROUTINES

ACTIVE

CallNCMacroBlock

SUBROUTINES

ACTIVE

CallNCMacroCancel

SUBROUTINES

ACTIVE

CallNCMacroMotion

SUBROUTINES

ACTIVE

CallSub

SUBROUTINES

ACTIVE

CallSubCurrent

SUBROUTINES

CallSubName

SUBROUTINES

ACTIVE Added V6.0


ACTIVE

CallTextSubName

SUBROUTINES

ACTIVE

Cancel3dToolOffset

CUTTER_COMP

ACTIVE

CancelAllWorkOffsets

WORK_OFFSETS

ACTIVE

CancelShiftOffsets

SHIFT_OFFSETS

ACTIVE

CancelWorkOffsets

WORK_OFFSETS

ACTIVE

CAxisIncreMotion

MOTION

ACTIVE

CAxisMachineMotion

MOTION

ACTIVE

CAxisMachineRefMotion

MOTION

ACTIVE

VERICUT Macros
CAxisMotion
CGTechVarDefMacro

MOTION
VARIABLES

ChangeSubsystemID

MISC
ChangeWorkCoordinateZWTracking WORK_OFFSETS
CheckForLooseMaterial

ACTIVE
ACTIVE Added V6.0
ACTIVE Added V6.0
ACTIVE Added V6.0

MISC

ACTIVE

EVENTS

ACTIVE

CinciGotoLabelName

BRANCHING

ACTIVE

CinciRotateCenterCalc

ROTATE_2D

ACTIVE

CinciRotateXYZMode

ROTATE_2D

ACTIVE

CircleCenterReset

CIRCLES

ACTIVE

CircleCenterX

CIRCLES

ACTIVE

CircleCenterY

CIRCLES

ACTIVE

CircleCenterZ

CIRCLES

ACTIVE

CircleCenterZWTracking

CIRCLES

ACTIVE

CircleCurveFitQuadrants

CURVE_FIT

ACTIVE

CinciBlockInit

CircleDirectDrive

CIRCLES

CircleIntermediatePoint

CIRCLES

ACTIVE Added V6.0


ACTIVE Added V6.0

CirclePresentAxis

CIRCLES

ACTIVE

CircleRadius

CIRCLES

ACTIVE

CircleRadiusLarge

CIRCLES

ACTIVE

ClampCompName

MISC

ACTIVE

ClampOnOff

MISC

ACTIVE

CollisionDiagonalSize

MISC

ACTIVE Added V6.0


ACTIVE Added V6.0

ConditionalEndOfBlock

BRANCHING

ConnectCompName

MISC

ACTIVE

ConnectToCompName

MISC

ACTIVE

ConstantSurfaceSpeed

FEEDS_SPEEDS

ACTIVE

ConstantSurfaceSpeedMode

FEEDS_SPEEDS

ACTIVE

ConversionFinish

EVENTS

ACTIVE

ConversionInit

EVENTS

ACTIVE

CoolantFlood

COOLANT

ACTIVE

CoolantMist

COOLANT

ACTIVE

CoolantOff

COOLANT

ACTIVE

CoolantOn

COOLANT

ACTIVE

CornerMode

CHAMFER_RND

ACTIVE

CornerValue

CHAMFER_RND

ACTIVE

CoupleAxisOff

MISC

ACTIVE

CoupleAxisOn

MISC

ACTIVE

CurveFitOnOff

CURVE_FIT

ACTIVE

CutterComp3d

CUTTER_COMP

ACTIVE

CutterCompDoubleLong

CUTTER_COMP

ACTIVE

VERICUT Macros
CutterCompDoubleShort

CUTTER_COMP

ACTIVE

CutterCompLeft

CUTTER_COMP

ACTIVE

CutterCompLong

CUTTER_COMP

ACTIVE

CutterCompOff

CUTTER_COMP

ACTIVE

CutterCompOffLookAheadX

CUTTER_COMP

ACTIVE

CutterCompOffLookAheadY

CUTTER_COMP

ACTIVE

CutterCompOffLookAheadZ

CUTTER_COMP

ACTIVE

CutterCompOffsetValue

CUTTER_COMP

ACTIVE

CutterCompRight

CUTTER_COMP

ACTIVE

CutterCompShort

CUTTER_COMP

ACTIVE

CutterCompSuspend

CUTTER_COMP

ACTIVE

CutterCompValueDirect

CUTTER_COMP

ACTIVE

WIRE_EDM

ACTIVE

CycleBoreShiftFlags

DRILL_CYCLES

ACTIVE

CycleBoreShiftValue

DRILL_CYCLES

ACTIVE

CycleBoreSpindleOnOffFlags

DRILL_CYCLES

ACTIVE

CycleClearanceDistance

DRILL_CYCLES

ACTIVE

CycleDepth

DRILL_CYCLES

ACTIVE

CycleDepthInv

DRILL_CYCLES

ACTIVE

CycleDepthType

DRILL_CYCLES

ACTIVE

CycleDwellTime

DRILL_CYCLES

ACTIVE

CycleIgnore

DRILL_CYCLES

ACTIVE

CycleIncDepthType

DRILL_CYCLES

ACTIVE

CycleIncRapidType

DRILL_CYCLES

ACTIVE

CycleInitialOnMotion

DRILL_CYCLES

ACTIVE

CutWire

CycleMillCenterAbscissa

THREAD_MILL_CYCLES

CycleMillCenterOrdinate

THREAD_MILL_CYCLES

ACTIVE Added V6.1


ACTIVE Added V6.1

CycleMillPocketAngle

POCKET_CYCLES

ACTIVE

CycleMillPocketBottomAllowance

POCKET_CYCLES

ACTIVE

CycleMillPocketBottomZ

POCKET_CYCLES

ACTIVE

CycleMillPocketBoundarySub

POCKET_CYCLES

ACTIVE

CycleMillPocketCenterX

POCKET_CYCLES

ACTIVE

CycleMillPocketCenterY

POCKET_CYCLES

ACTIVE

CycleMillPocketCornerRadius

POCKET_CYCLES

ACTIVE

CycleMillPocketCutDirection

POCKET_CYCLES

ACTIVE

CycleMillPocketCutType

POCKET_CYCLES

ACTIVE

CycleMillPocketDepth

POCKET_CYCLES

ACTIVE

CycleMillPocketFinishFeed

POCKET_CYCLES

ACTIVE

CycleMillPocketFinishStepover

POCKET_CYCLES

ACTIVE

CycleMillPocketInsideRadius

POCKET_CYCLES

ACTIVE

CycleMillPocketLength

POCKET_CYCLES

ACTIVE

VERICUT Macros
CycleMillPocketMaxCutDepth

POCKET_CYCLES

ACTIVE

CycleMillPocketPlungeFeed

POCKET_CYCLES

ACTIVE

CycleMillPocketRefPlane

POCKET_CYCLES

ACTIVE

CycleMillPocketRetractPlane

POCKET_CYCLES

ACTIVE

CycleMillPocketRoughFeed

POCKET_CYCLES

ACTIVE

CycleMillPocketSafeDistance

POCKET_CYCLES

ACTIVE

CycleMillPocketSideAllowance

POCKET_CYCLES

ACTIVE

CycleMillPocketSpeed

POCKET_CYCLES

ACTIVE

CycleMillPocketStepover

POCKET_CYCLES

ACTIVE

CycleMillPocketType

POCKET_CYCLES

ACTIVE

POCKET_CYCLES

ACTIVE

CycleMillPocketWidth

CycleMillThread
CycleMillThreadDir
CycleMillThreadFeed
CycleMillThreadID
CycleMillThreadOD
CycleMillThreadPitch
CycleMillThreadToolTeeth

THREAD_MILL_CYCLES

CycleMotionPlaneCheckOnOff

DRILL_CYCLES

ACTIVE

CyclePresentAxis

DRILL_CYCLES

ACTIVE

CycleRapidLevelInitial

DRILL_CYCLES

ACTIVE

CycleRapidLevelInv

DRILL_CYCLES

ACTIVE

CycleRapidLevelKeep

DRILL_CYCLES

ACTIVE

CycleRapidLevelValue

DRILL_CYCLES

ACTIVE

CycleRapidLevelValueMult

DRILL_CYCLES

ACTIVE

CycleRapidLevelZeroTracking

DRILL_CYCLES

ACTIVE

CycleRapidType

DRILL_CYCLES

ACTIVE

CycleRetractInitial

DRILL_CYCLES

ACTIVE

CycleRetraction

DRILL_CYCLES

ACTIVE

CycleRetractSpecifiedpoint

DRILL_CYCLES

ACTIVE

CycleRetractSpecifiedZT

DRILL_CYCLES

ACTIVE

CyclesBore

DRILL_CYCLES

ACTIVE

CyclesBoreDrag

DRILL_CYCLES

ACTIVE

CyclesBoreOrient

DRILL_CYCLES

ACTIVE

CyclesCancel

DRILL_CYCLES

ACTIVE

CyclesDeep

DRILL_CYCLES

ACTIVE

CyclesDrill

DRILL_CYCLES

ACTIVE

CyclesExecute

DRILL_CYCLES

ACTIVE

CyclesExecuteModal

DRILL_CYCLES

ACTIVE

CyclesExecuteOnMotionOnOff

DRILL_CYCLES

ACTIVE

CyclesFace

DRILL_CYCLES

ACTIVE

THREAD_MILL_CYCLES

ACTIVE Added V6.1


ACTIVE Added V6.1

THREAD_MILL_CYCLES

ACTIVE Added V6.1

THREAD_MILL_CYCLES

ACTIVE Added V6.1

THREAD_MILL_CYCLES

ACTIVE Added V6.1

THREAD_MILL_CYCLES

ACTIVE Added V6.1

THREAD_MILL_CYCLES

ACTIVE Added V6.1

VERICUT Macros
CyclesMill

DRILL_CYCLES

ACTIVE

CyclesTap

DRILL_CYCLES

ACTIVE

CycleStepUpValue

DRILL_CYCLES

ACTIVE

CycleStepValue

DRILL_CYCLES

ACTIVE

CyclesThru

DRILL_CYCLES

ACTIVE

CycleSubroutineOff

SUBROUTINES

ACTIVE

CycleSubroutineOn

SUBROUTINES

ACTIVE

CycleSubroutineOnNoMotion

SUBROUTINES

ACTIVE

CycleTurnAdjustEndPoint
CycleTurnAllowanceX
CycleTurnAllowanceZ
CycleTurnCutDepth
CycleTurnEndSeq
CycleTurnFeed
CycleTurnFinalX
CycleTurnFinalZ
CycleTurnFinish
CycleTurnGroove
CycleTurnGrooveAngle
CycleTurnGrooveDepth
CycleTurnGrooveEnd
CycleTurnGrooveEscape
CycleTurnGrooveFace
CycleTurnGrooveRelief
CycleTurnGrooveStep
CycleTurnLoopCount
CycleTurnRetractX
CycleTurnRetractZ
CycleTurnRoughCut
CycleTurnRoughFace
CycleTurnRoughLoop
CycleTurnSpeed
CycleTurnStartBlank
CycleTurnStartSeq
CycleTurnStockX
CycleTurnStockZ
CycleTurnThread
CycleTurnThreadAngleTaper
CycleTurnThreadFinish

TURNING_CYCLES ACTIVE Added V6.1


TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE

CycleTurnThreadFirstCut

TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE

CycleTurnThreadHeight

TURNING_CYCLES ACTIVE

VERICUT Macros
CycleTurnThreadLead
CycleTurnThreadMinCut
CycleTurnThreadTaper
CycleUvDepth

TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
ACTIVE
DRILL_CYCLES

CycleXyzDepth

DRILL_CYCLES

ACTIVE

CycleZeroTrackingAdjOnOff

DRILL_CYCLES

ACTIVE

CylindricalDiameter

CYLIN_POLAR

ACTIVE

CylindricalInterpolation

CYLIN_POLAR

ACTIVE

CylindricalLinearAxis

CYLIN_POLAR

ACTIVE

CylindricalRotationalAxis

CYLIN_POLAR

ACTIVE

DebugMacro

MISC

ACTIVE

DefaultWire

WIRE_EDM

ACTIVE

DefineCsys

MISC

ACTIVE

DefineDashAsAlphaNumeric

MISC

ACTIVE

SHIFT_WORK_PZ

ACTIVE

BRANCHING

ACTIVE

DwellMacro

DWELL

ACTIVE

DwellRevolutions

DWELL

ACTIVE

DwellSeconds

DWELL

ACTIVE

DwellTime

DWELL

ACTIVE

DynamicWorkOffsets

SHIFT_WORK_PZ

ACTIVE

DynamicWorkOffsetsContour

SHIFT_WORK_PZ

ACTIVE

DynamicWorkOffsetsLocalCoord

SHIFT_WORK_PZ

ACTIVE

DynamicWorkOffsetsTypes

SHIFT_WORK_PZ

ACTIVE

DynamicWorkOffsetsWithMotion

SHIFT_WORK_PZ

ACTIVE

EDMCalcUpperGuideHeight

WIRE_EDM

ACTIVE

EDMCalcUpperGuideLocation

WIRE_EDM

ACTIVE

EDMGuide2Guide

WIRE_EDM

ACTIVE

EDMLower2Reference

WIRE_EDM

ACTIVE

EDMLowerGuideHeight

WIRE_EDM

ACTIVE

EDMReference2Upper

WIRE_EDM

ACTIVE

EDMUpperGuideHeight

WIRE_EDM

ACTIVE

DisableWorkShiftOffsets
DoLoop

EI_RetractRadius
ElseBlock
EnableWorkShiftOffsets

TAPE_LAYING
BRANCHING

ACTIVE Added V6.1


ACTIVE

SHIFT_WORK_PZ

ACTIVE

EndIfBlock

BRANCHING

ACTIVE

EndLoop

BRANCHING

ACTIVE

EndProgram

SUBROUTINES

ACTIVE

EndProgramRewind

SUBROUTINES

ACTIVE

EndProgramRewindSpecial

SUBROUTINES

ACTIVE

VERICUT Macros
EndSub

SUBROUTINES

ACTIVE

ErrorMacro

MISC

ACTIVE

FadalLcode

SUBROUTINES

ACTIVE

FadalWorkCoord

WORK_OFFSETS

ACTIVE

FeedInvTime

FEEDS_SPEEDS

ACTIVE

FeedInvTimeModalMultiplier

FEEDS_SPEEDS

ACTIVE

FeedInvTimeMultiplier

FEEDS_SPEEDS

ACTIVE

FeedInvTimeSec

FEEDS_SPEEDS

ACTIVE

FeedModeMinute

FEEDS_SPEEDS

ACTIVE

FeedModeRevolution

FEEDS_SPEEDS

ACTIVE

FeedModeTime

FEEDS_SPEEDS

ACTIVE

FeedPerMinute

FEEDS_SPEEDS

ACTIVE

FeedPerMinuteType

FEEDS_SPEEDS

ACTIVE

FeedPerRev

FEEDS_SPEEDS

ACTIVE

FeedRate

FEEDS_SPEEDS

ACTIVE

EVENTS

ACTIVE

ForEndLoop

BRANCHING

ACTIVE

ForLoop

BRANCHING

ACTIVE

ForToValue

BRANCHING

ACTIVE

SUBROUTINES

ACTIVE

Fidia_ConvInit

G65ResetVarsOnLoop
GageOffsetAttributes

TOOL_OFFSETS

GageOffsetDrivenPoint

TOOL_OFFSETS

GangToolChange
GetCurrentDate
GLSameAngle360OnOff

TOOLING
MISC

ACTIVE Added V6.0


ACTIVE Added V6.0
ACTIVE Added V6.0.2
ACTIVE

PROGRAM_ZERO

ACTIVE

MOTION

ACTIVE

GLType2Begin

TYPE2

ACTIVE

GLType2CLS

TYPE2

ACTIVE

GLType2DFS

TYPE2

ACTIVE

GLType2End

TYPE2

ACTIVE

GLType2FXZ

TYPE2

ACTIVE

GLType2FXZArg

TYPE2

ACTIVE

GLType2PDO

TYPE2

ACTIVE

GLType2PdoId

TYPE2

ACTIVE

GLType2PGM

TYPE2

ACTIVE

GLType2PRB

TYPE2

ACTIVE

GLType2RPT

TYPE2

ACTIVE

GLType2RTA

TYPE2

ACTIVE

GLType2UPD

TYPE2

ACTIVE

GotoJump

BRANCHING

ACTIVE

GotoJumpForwardBackward

BRANCHING

ACTIVE

GLSetCurrentZeroTrackingPos

VERICUT Macros
GotoJumpForwardBackwardStart

BRANCHING

ACTIVE

GotoLabel

BRANCHING

ACTIVE

GotoLabelForwardBackward

BRANCHING

ACTIVE

EVENTS

ACTIVE

Heid_BlockInit
Heid_CallLbl

SUBROUTINES

Heid_CallSubName

SUBROUTINES

ACTIVE Added V6.0


ACTIVE

Heid_CallTextSubName

SUBROUTINES

ACTIVE

HeidCmdAdd

HEID_CMD

HeidCmdAssign

HEID_CMD

HeidCmdCos

HEID_CMD

HeidCmdDivide

HEID_CMD

HeidCmdHypot

HEID_CMD

HeidCmcIfEqual

HEID_CMD

HeidCmdIfGreater

HEID_CMD

HeidCmdIfLess

HEID_CMD

HeidCmdIfNotEqual

HEID_CMD

HeidCmdMultiply

HEID_CMD

HeidCmdSin

HEID_CMD

HeidCmdSquareRoot

HEID_CMD

HeidCmdSubtract

HEID_CMD

ACTIVE Added V6.0.3


ACTIVE Added V6.0.3
ACTIVE Added V6.0.3
ACTIVE Added V6.0.3
ACTIVE Added V6.0.3
ACTIVE Added V6.0.3
ACTIVE Added V6.0.3
ACTIVE Added V6.0.3
ACTIVE Added V6.0.3
ACTIVE Added V6.0.3
ACTIVE Added V6.0.3
ACTIVE Added V6.0.3

Heid_CircleCenterIncX

CIRCLES

ACTIVE Added V6.0.3


ACTIVE

Heid_CircleCenterIncY

CIRCLES

ACTIVE

Heid_CircleCenterIncZ

CIRCLES

ACTIVE

Heid_CircleCenterX

CIRCLES

ACTIVE

Heid_CircleCenterY

CIRCLES

ACTIVE

Heid_CircleCenterZ

CIRCLES

ACTIVE

SUBROUTINES

ACTIVE

POCKET_CYCLES

ACTIVE

Heid_EndSub
Heid_GetPocketContours
Heid_GotoLabel
Heid_InitializePocketContours

BRANCHING
POCKET_CYCLES

ACTIVE Added V6.0


ACTIVE

Heid_JumpDecrement

BRANCHING

ACTIVE

Heid_JumpDecrementValue

BRANCHING

ACTIVE

Heid_JumpDecrementVar

BRANCHING

ACTIVE

Heid_LabelMacro

SUBROUTINES

ACTIVE

Heid_MotionLinear

MOTION

ACTIVE

Heid_PocketSub

POCKET_CYCLES

ACTIVE

Heid_PolarAngle

CYLIN_POLAR

ACTIVE

Heid_PolarIncAngle

CYLIN_POLAR

ACTIVE

Heid_PolarIncRadius

CYLIN_POLAR

ACTIVE

Heid_PolarMotionCCW

CYLIN_POLAR

ACTIVE

Heid_PolarMotionCW

CYLIN_POLAR

ACTIVE

VERICUT Macros
Heid_PolarMotionLinear

CYLIN_POLAR

ACTIVE

Heid_PolarRadius

CYLIN_POLAR

ACTIVE

CHAMFER_RND

ACTIVE

Heid_RepeatCount

BRANCHING

ACTIVE

Heid_XaxisMotion

MOTION

ACTIVE

Heid_YaxisMotion

MOTION

ACTIVE

HeidIso_Polar

CYLIN_POLAR

ACTIVE

HeidIso_PolarAngle

CYLIN_POLAR

ACTIVE

HeidIso_PolarRadius

CYLIN_POLAR

ACTIVE

HeidIso_SubDefCallEnd

SUBROUTINES

ACTIVE

HeidMPlus_SubroutineSequence

SUBROUTINES

ACTIVE Added V6.0


ACTIVE

Heid_ProcessRNDorCHF

HelicalFullLoops

CIRCLES

IfBlock

BRANCHING

ACTIVE

IfCheck

BRANCHING

ACTIVE

IfCheckAllMacros

BRANCHING

ACTIVE

MISC

ACTIVE

IgnoreMacro
Ijk2AbcType
IjkAAxisMotion
IjkBAxisMotion
IjkCAxisMotion
InActivateAxis

ROTATION_PLANE ACTIVE
ROTATION_PLANE ACTIVE
ROTATION_PLANE ACTIVE
ROTATION_PLANE ACTIVE
ACTIVATION

ACTIVE

IncrementalShift

SHIFT_OFFSETS

ACTIVE

IncrementalShiftRotationDynamic

SHIFT_OFFSETS

ACTIVE

IndexCallMainSub

SUBROUTINES

ACTIVE

IndexChannel1Subroutine

SUBROUTINES

ACTIVE

IndexChannel2Subroutine

SUBROUTINES

ACTIVE

InputMacro

MISC

ACTIVE

InverseWordValue

MISC

ACTIVE

IVector
JVector
KtBlockInit
KtType2CLS
KVector
LabelMacro

ROTATION_PLANE ACTIVE
ROTATION_PLANE ACTIVE
EVENTS

ACTIVE

TYPE2

ACTIVE

ROTATION_PLANE ACTIVE
ACTIVE
BRANCHING

LabelName

BRANCHING

ACTIVE

LabelNameValue

BRANCHING

ACTIVE

LinkAxisId

MISC

LinkCompName

MISC

LinkFormula

MISC

LinkOffset

MISC

LoadNextTool

TOOLING

ACTIVE Added V6.0


ACTIVE Added V6.0
ACTIVE Added V6.0
ACTIVE Added V6.0
ACTIVE

VERICUT Macros
LoadStocks

MISC

ACTIVE

LoopCount

BRANCHING

ACTIVE

MacroNotFoundMsgOnOff
MacroVar

MISC
SUBROUTINES

ACTIVE Added V6.0


ACTIVE

MahoSequence

BRANCHING

ACTIVE

MaxTableRPM

FEEDS_SPEEDS

ACTIVE

MazakMillingInterpolationOff

MISC

ACTIVE

MazakMillingInterpolationOn

MISC

ACTIVE

FEEDS_SPEEDS

ACTIVE

MISC

ACTIVE

PROGRAM_ZERO

ACTIVE

MirrorA

MIRROR

ACTIVE

MirrorA2

MIRROR

ACTIVE

MirrorA2Cancel

MIRROR

ACTIVE

MirrorA2Value

MIRROR

ACTIVE

MirrorACancel

MIRROR

ACTIVE

MirrorAValue

MIRROR

ACTIVE

MirrorB

MIRROR

ACTIVE

MirrorB2

MIRROR

ACTIVE

MirrorB2Cancel

MIRROR

ACTIVE

MirrorB2Value

MIRROR

ACTIVE

MirrorBCancel

MIRROR

ACTIVE

MirrorBValue

MIRROR

ACTIVE

MirrorC

MIRROR

ACTIVE

MirrorC2

MIRROR

ACTIVE

MirrorC2Cancel

MIRROR

ACTIVE

MirrorC2Value

MIRROR

ACTIVE

MirrorCancel

MIRROR

ACTIVE

MirrorCCancel

MIRROR

ACTIVE

MirrorCValue

MIRROR

ACTIVE

MirrorX

MIRROR

ACTIVE

MirrorXCancel

MIRROR

ACTIVE

MirrorXValue

MIRROR

ACTIVE

MirrorY

MIRROR

ACTIVE

MirrorYCancel

MIRROR

ACTIVE

MirrorYValue

MIRROR

ACTIVE

MirrorZ

MIRROR

ACTIVE

MirrorZCancel

MIRROR

ACTIVE

MirrorZValue

MIRROR

ACTIVE

ModeAbsolute

MOTION

ACTIVE

MISC

ACTIVE

MazakSpindleRotation
MessageMacro
MinTesselationPoints

ModeAsymTurningOnOff

VERICUT Macros
ModeIncremental

MOTION

ACTIVE

Motion3DCircle

MOTION

ACTIVE Added V6.0


ACTIVE

MotionBlockSyncOnOff

MISC

MotionCCW

MOTION

ACTIVE

MotionCW

MOTION

ACTIVE

MotionLinear

MOTION

ACTIVE

MotionNurbs

MOTION

ACTIVE

MotionPlaneXY

MOTION

ACTIVE

MotionPlaneYZ

MOTION

ACTIVE

MotionPlaneZX

MOTION

ACTIVE

MotionPoly

MOTION

ACTIVE

MotionRapid

MOTION

ACTIVE

MotionThread

MOTION

ACTIVE

MotionToolOffsetNeg

CUTTER_COMP

ACTIVE

MotionToolOffsetOnMotion

CUTTER_COMP

ACTIVE

MotionToolOffsetPos

CUTTER_COMP

ACTIVE

MountTool

TOOLING

ACTIVE

MountToolIndex

TOOLING

ACTIVE

MoveCutStockCompName

MISC

ACTIVE

MoveCutStockFromCsys

MISC

ACTIVE

MoveCutStockToCsys

MISC

ACTIVE

MoveDesignWithStock

MISC

ACTIVE

NCVarDefaultValue

VARIABLES

ACTIVE

NCVarWarnMessage

VARIABLES

ACTIVE

MISC

ACTIVE

NullMacro
NumEndBlankContour
NumSequence

TURNING_CYCLES ACTIVE
ACTIVE
BRANCHING

NumSubroutineSequence

SUBROUTINES

ACTIVE

NumSubSequenceLoop

SUBROUTINES

ACTIVE

NumTurnCycle
NurbsDegree

TURNING_CYCLES ACTIVE
ACTIVE
NURBS_POLY

NurbsInitialControl

NURBS_POLY

ACTIVE

NurbsKnot

NURBS_POLY

ACTIVE

NurbsOrder

NURBS_POLY

ACTIVE

NurbsWeight

NURBS_POLY

ACTIVE

Okuma_CallSubName

SUBROUTINES

ACTIVE

SHIFT_OFFSETS

ACTIVE

MISC

ACTIVE

OkumaCopyEnd

ROTATE_2D

ACTIVE

OkumaCopyLoopCount

ROTATE_2D

ACTIVE

OkumaCopyStart

ROTATE_2D

ACTIVE

OkumaCancelShiftRotate
OkumaControllingHead

VERICUT Macros
OkumaCutDepth2
OkumaCutDepth3
OkumaEndContour

OkumaFeedrate2
OkumaFeedrate3

MISC
MISC

ACTIVE Added V6.0


ACTIVE Added V6.0

TURNING_CYCLES ACTIVE
FEEDS_SPEEDS ACTIVE Added V6.0.1
FEEDS_SPEEDS ACTIVE Added V6.0.1

OkumaGotoJump

BRANCHING

ACTIVE

OkumaGotoLabel

BRANCHING

ACTIVE

OkumaShiftRotate

ROTATE_2D

ACTIVE

OkumaStartBlankContour
OkumaStartContour

OkumaStartCutDepth2
OkumaStartCutDepth3
OkumaTurnCycle
OliConvInit
OliLabel

TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
MISC
MISC

ACTIVE Added V6.0


ACTIVE Added V6.0

TURNING_CYCLES ACTIVE
ACTIVE
EVENTS
BRANCHING

ACTIVE

TYPE2

ACTIVE

Optimizable

OPTIPATH

ACTIVE

OptiMWordLast

OPTIPATH

ACTIVE

OptipathExpandSubs

OPTIPATH

ACTIVE

OptiPathOptimizeCDC

OPTIPATH

ACTIVE

OptiPathOptimizeSubs

OPTIPATH

ACTIVE

OptiRestoreAdditionalCuts

OPTIPATH

ACTIVE

OptiSettings

OPTIPATH

ACTIVE

OptiSuppressAdditionalCuts

OPTIPATH

ACTIVE

OptiXYZFormat

OPTIPATH

ACTIVE

PartNormalX

CUTTER_COMP

ACTIVE

PartNormalY

CUTTER_COMP

ACTIVE

PartNormalZ

CUTTER_COMP

ACTIVE

CIRCLES

ACTIVE

PivotOffsetCompName

TOOL_OFFSETS

ACTIVE

PivotOffsetCompNameB

TOOL_OFFSETS

ACTIVE

MOTION

ACTIVE

OliType2EPP

PitchForcesHelical

PlaneAxisMapping
PlaneAxisVectorX
PlaneAxisVectorY
PlaneAxisVectorZ
PlaySoundFile
PolarAngle

ROTATION_PLANE ACTIVE
ROTATION_PLANE ACTIVE
ROTATION_PLANE ACTIVE
ACTIVE Added V6.0.1
MISC
ACTIVE
CYLIN_POLAR

PolarInterpolation

CYLIN_POLAR

ACTIVE

PolarLinearAxis

CYLIN_POLAR

ACTIVE

PolarRotationalAxis

CYLIN_POLAR

ACTIVE

PolarXValue

CYLIN_POLAR

ACTIVE

VERICUT Macros
PolarYValue

CYLIN_POLAR

ACTIVE

PolarZValue

CYLIN_POLAR

ACTIVE

TOOLING

ACTIVE

MISC

ACTIVE

ProcessCompNameValue

MOTION

ACTIVE

ProcessMotion

EVENTS

ACTIVE

ProcessTimeOnOff

MISC

ACTIVE

ProgramStartNextLine

MISC

ACTIVE

RapidPlanePriorityType

MISC

ACTIVE

ReferencePoint

MISC

ACTIVE

ReferencePointCancelOffsets

MISC

ACTIVE

ReferencePointIndex

MISC

ACTIVE

PreToolCompSelect
Probe

ResetIfCheck
ResetWorkCoordParms
RestoreMotionType

BRANCHING
SHIFT_WORK_PZ

ACTIVE Added V6.0


ACTIVE

MOTION

ACTIVE

RestoreSubsystemID

MISC

ACTIVE

RestoreUnits

MISC

ACTIVE

RetractLevelClearanceRetract

DRILL_CYCLES

ACTIVE

RetractLevelInitial

DRILL_CYCLES

ACTIVE

RetractLevelRpoint

DRILL_CYCLES

ACTIVE

RetractLevelSpecifiedpoint

DRILL_CYCLES

ACTIVE

ReturnFromSub

SUBROUTINES

ACTIVE

ReturnFromSubCall

SUBROUTINES

RotaryAxisLinearRewind

PROGRAM_ZERO

ACTIVE Added V6.0


ACTIVE

RotaryAxisLinearRewind360_360

PROGRAM_ZERO

ACTIVE

TOOL_OFFSETS

ACTIVE

RotaryDirCCW

PROGRAM_ZERO

ACTIVE

RotaryDirCW

PROGRAM_ZERO

ACTIVE

RotaryDirLinear

PROGRAM_ZERO

ACTIVE

RotaryDirPosCCW

PROGRAM_ZERO

ACTIVE

RotaryDirPosCW

PROGRAM_ZERO

ACTIVE

RotaryDirShortestDist

PROGRAM_ZERO

ACTIVE

RotaryLinearRewind

PROGRAM_ZERO

ACTIVE

RotaryLinearRewind360_360

PROGRAM_ZERO

ACTIVE

RotaryTypeAbsolute

PROGRAM_ZERO

ACTIVE

RotaryTypeLinear

PROGRAM_ZERO

ACTIVE

RotateCancel

ROTATE_2D

ACTIVE

RotateOrigin

ROTATE_2D

ACTIVE

RotateXValue

ROTATE_2D

ACTIVE

RotateXYZ

ROTATE_2D

ACTIVE

RotateYValue

ROTATE_2D

ACTIVE

RotaryControlPointOnOff

VERICUT Macros
RotateZValue

ROTATE_2D

ACTIVE

RotationAbsAngle

ROTATE_2D

ACTIVE

RotationAngle

ROTATE_2D

ACTIVE

RotationIncAngle

ROTATE_2D

ACTIVE

RotationPlane2
RotationPlaneAngle1
RotationPlaneAngle2
RotationPlaneAngle3
RotationPlaneCancel2
RotationPlaneCancelReset

RotationPlaneEnable2
RotationPlaneIncXPoint
RotationPlaneIncYPoint
RotationPlaneIncZPoint
RotationPlaneLocal2
RotationPlaneSpecialOffset
RotationPlaneXPoint
RotationPlaneYPoint
RotationPlaneZPoint
RpcpOff

ROTATION_PLANE ACTIVE
ROTATION_PLANE ACTIVE
ROTATION_PLANE ACTIVE
ROTATION_PLANE ACTIVE
ROTATION_PLANE
Use
ACTIVE
RotationPlaneCancelReset
ROTATION_PLANE ACTIVE Added V6.0
ROTATION_PLANE ACTIVE Added V6.0
ROTATION_PLANE ACTIVE
ROTATION_PLANE ACTIVE
ROTATION_PLANE ACTIVE
ROTATION_PLANE ACTIVE
ROTATION_PLANE ACTIVE
ROTATION_PLANE ACTIVE
ROTATION_PLANE ACTIVE
ROTATION_PLANE ACTIVE
SHIFT_WORK_PZ ACTIVE

RpcpOn

SHIFT_WORK_PZ

ACTIVE

RPMMode

FEEDS_SPEEDS

ACTIVE

RPMSpeed

FEEDS_SPEEDS

ACTIVE

RtcpContour

TOOL_OFFSETS

ACTIVE

RtcpOff

TOOL_OFFSETS

ACTIVE

RtcpOn

TOOL_OFFSETS

ACTIVE

RtcpWithMotion

TOOL_OFFSETS

ACTIVE

MISC

ACTIVE

SecondaryRefWorkCoord

WORK_OFFSETS

ACTIVE

SecondaryWorkCoord

WORK_OFFSETS

ACTIVE

Sequence

BRANCHING

ACTIVE

SequenceEnd

BRANCHING

ACTIVE

SequenceLoop

BRANCHING

ACTIVE

SequenceLoopCount

BRANCHING

ACTIVE

SUBROUTINES

ACTIVE

SequenceStart

BRANCHING

ACTIVE

SequenceStartEnd

BRANCHING

ACTIVE

SetAbsWorkCoord

WORK_OFFSETS

ACTIVE

SetActiveStockName

FEEDS_SPEEDS

ACTIVE

SetAdditionalWorkCoord

WORK_OFFSETS

ACTIVE

SaveUnits

SequenceOrSubroutine

VERICUT Macros
SetAdditionalWorkCoordNonModal
SetAxisCompLink
SetBaseWorkOffset
SetCircle360Tolearance

WORK_OFFSETS
MISC
WORK_OFFSETS

ACTIVE
ACTIVE Added V6.0
ACTIVE

CIRCLES

ACTIVE

SetComponentColor

MISC

ACTIVE

SetComponentVisibility

MISC

ACTIVE

SetCycleSquareOffType

DRILL_CYCLES

ACTIVE

SetDynamicVars

VARIABLES

ACTIVE

SetIncWorkCoord

WORK_OFFSETS

ACTIVE

SetLocalVariableCount

VARIABLES

ACTIVE

SetMathOperatorPriority

MISC

SetMaxSubsystemVar

VARIABLES

ACTIVE Added V6.0.2


ACTIVE

SetMinSubsystemVar

VARIABLES

ACTIVE

SetProgrammingMethod

MISC

ACTIVE

SetSubsystemID

MISC

ACTIVE

SetTableCoord

TABLES

ACTIVE

SetTableValues

TABLES

ACTIVE

SetToolNumVar

VARIABLES

ACTIVE

SetVCMultiTools

TOOLING

ACTIVE

SetVNCKOption

MISC

SetWorkCoord

WORK_OFFSETS

ACTIVE Added V6.0


ACTIVE

ShortLongOffsetReset

CUTTER_COMP

ACTIVE

Siemens3CmdBranch

SIEMENS_CMD

ACTIVE

Siemens3CmdIfEqual

SIEMENS_CMD

ACTIVE

Siemens3CmdIfGreater

SIEMENS_CMD

ACTIVE

Siemens3CmdIfGreaterEqual

SIEMENS_CMD

ACTIVE

Siemens3LoadAddress

SIEMENS_CMD

ACTIVE

Siemens3PreProcessor

MISC

ACTIVE

Siemens3SetAddressParm

SIEMENS_CMD

ACTIVE

Siemens3TAddressAxis

SIEMENS_CMD

ACTIVE

Siemens840DProc

SUBROUTINES

ACTIVE

Siemens840DProcCall

SUBROUTINES

ACTIVE

Siemens840DSubroutineSequence

SUBROUTINES

ACTIVE

FEEDS_SPEEDS

ACTIVE

SiemensCmd300

SIEMENS_CMD

ACTIVE

SiemensCmd302

SIEMENS_CMD

ACTIVE

SiemensCmd303

SIEMENS_CMD

ACTIVE

SiemensCmd305

SIEMENS_CMD

ACTIVE

SiemensCmd306

SIEMENS_CMD

ACTIVE

SiemensCmd308

SIEMENS_CMD

ACTIVE

SiemensCmd330

SIEMENS_CMD

ACTIVE

SiemensActualSpindle

VERICUT Macros
SiemensCmd331

SIEMENS_CMD

ACTIVE

SiemensCmd360

SIEMENS_CMD

ACTIVE

SiemensCmd383

SIEMENS_CMD

ACTIVE

SiemensCmd400

SIEMENS_CMD

ACTIVE

SiemensCmd403

SIEMENS_CMD

ACTIVE

SiemensCmd404

SIEMENS_CMD

ACTIVE

SiemensCmd430

SIEMENS_CMD

ACTIVE

SiemensCmdAbs

SIEMENS_CMD

ACTIVE

SiemensCmdAngle

SIEMENS_CMD

ACTIVE

SiemensCmdASin

SIEMENS_CMD

ACTIVE

SiemensCmdATan

SIEMENS_CMD

ACTIVE

SiemensCmdBranch

SIEMENS_CMD

ACTIVE

SiemensCmdCase

SIEMENS_CMD

ACTIVE

SiemensCmdCos

SIEMENS_CMD

ACTIVE

SiemensCmdDec

SIEMENS_CMD

ACTIVE

SiemensCmdGetChannel

SIEMENS_CMD

ACTIVE

SiemensCmdGetGCode

SIEMENS_CMD

ACTIVE

SiemensCmdHypot

SIEMENS_CMD

ACTIVE

SiemensCmdIfEqual

SIEMENS_CMD

ACTIVE

SiemensCmdIfGreater

SIEMENS_CMD

ACTIVE

SiemensCmdIfGreaterEqual

SIEMENS_CMD

ACTIVE

SiemensCmdIfLess

SIEMENS_CMD

ACTIVE

SiemensCmdIfLessEqual

SIEMENS_CMD

ACTIVE

SiemensCmdIfNotEqual

SIEMENS_CMD

ACTIVE

SiemensCmdInc

SIEMENS_CMD

ACTIVE

SiemensCmdIntegral

SIEMENS_CMD

ACTIVE

SiemensCmdPopVarGroup

SIEMENS_CMD

ACTIVE

SiemensCmdPushVarGroup

SIEMENS_CMD

ACTIVE

SiemensCmdSin

SIEMENS_CMD

ACTIVE

SiemensCmdSquareRoot

SIEMENS_CMD

ACTIVE

SiemensCmdTan

SIEMENS_CMD

ACTIVE

SiemensCornerVaue

CHAMFER_RND

ACTIVE

SiemensCycle95
SiemensCycle95Type
SiemensCycle97
SiemensCycle97ArcIn
SiemensCycle97ArcOut
SiemensCycle97FinalAllowance
SiemensCycle97FinishCuts
SiemensCycle97RoughCuts

TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE

VERICUT Macros
SiemensCycle97ThreadStart
SiemensCycle97Type
SiemensCycle97Xend
SiemensCycle97Xstart
SiemensCycle97Zend

TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE

SiemensCycle97Zstart

TURNING_CYCLES ACTIVE
TURNING_CYCLES ACTIVE

SiemensCycleMillPocketCutType

POCKET_CYCLES

ACTIVE

SiemensEndlessFeedLinkOnOff

FEEDS_SPEEDS

ACTIVE

SiemensEndlessFeedMode

FEEDS_SPEEDS

ACTIVE

SiemensEndlessFeedRate

FEEDS_SPEEDS

ACTIVE

SiemensEndlessOnOffDir

MISC

ACTIVE

SiemensL137COffset

CYLIN_POLAR

ACTIVE

SiemensL137COffsetCancel

CYLIN_POLAR

ACTIVE

SiemensLoadToolRegister

TOOLING

ACTIVE

SiemensNurbsKnot

NURBS_POLY

ACTIVE

SiemensNurbsProcess

NURBS_POLY

ACTIVE

SiemensPlaneOverrideArg

MOTION

ACTIVE

SiemensPlaneSelection

MOTION

ACTIVE

SiemensPlaneSelectionArg

MOTION

ACTIVE

SiemensPolarAngle

CYLIN_POLAR

SiemensPolyT

NURBS_POLY

ACTIVE Added V6.0


ACTIVE

SiemensPolyx

NURBS_POLY

ACTIVE

SiemensPolyy

NURBS_POLY

ACTIVE

SiemensPolyz

NURBS_POLY

ACTIVE

SiemensShiftAngleA

ROTATE_2D

ACTIVE

SiemensShiftAngleB

ROTATE_2D

ACTIVE

SiemensShiftOffsetA

SHIFT_OFFSETS

ACTIVE

SiemensShiftOffsetB

SHIFT_OFFSETS

ACTIVE

SiemensSpecifiedSpindle

FEEDS_SPEEDS

ACTIVE

SiemensSpindleSpeed

FEEDS_SPEEDS

ACTIVE

SUBROUTINES

ACTIVE

BRANCHING

ACTIVE

OPTIPATH

ACTIVE

SpindleMotionCCW

FEEDS_SPEEDS

ACTIVE

SpindleMotionCW

FEEDS_SPEEDS

ACTIVE

SpindleMotionOff

FEEDS_SPEEDS

ACTIVE

SpindleSpeed

FEEDS_SPEEDS

ACTIVE

StopOptional

MISC

ACTIVE

StopProgram

MISC

ACTIVE

StopUnconditional

MISC

ACTIVE

SUBROUTINES

ACTIVE

SiemensSubroutineCallDefine
SimpleForLoop
SkipWordIsOptimizable

SubEndingSeq

VERICUT Macros
SubroutineBlock

SUBROUTINES

ACTIVE

SubroutineName

SUBROUTINES

ACTIVE

SubroutineSequence

SUBROUTINES

ACTIVE

SubroutineSequenceEnd

SUBROUTINES

ACTIVE

FEEDS_SPEEDS

ACTIVE

SUBROUTINES

ACTIVE

FEEDS_SPEEDS

ACTIVE

SuspendCutting

MISC

ACTIVE

SyncCode

SYNC

SyncId

SYNC

ACTIVE Added V6.0


ACTIVE Added V6.0

SyncIds

SYNC

SyncMacro

SYNC

SyncMismatchHandling

SYNC

SyncTransfer

SYNC

ACTIVE Added V6.0


ACTIVE

SyncValue

SYNC

ACTIVE

TableIndex

TABLES

ACTIVE
ACTIVE

TapeCacheCheck

TABLES
TAPE_LAYING

TapeCachePoint

TAPE_LAYING

ACTIVE Added V6.1


ACTIVE Added V6.1

TapeCacheTows

TAPE_LAYING

ACTIVE Added V6.1

TapeDensity

TAPE_LAYING

ACTIVE Added V6.1

TapeHead

TAPE_LAYING

ACTIVE Added V6.1

TapeHeadService

TAPE_LAYING

ACTIVE Added V6.1

TapeInitial Length

TAPE_LAYING

ACTIVE Added V6.1

TapeLayer

TAPE_LAYING

ACTIVE Added V6.1

TapePath

TAPE_LAYING

ACTIVE Added V6.1

Tape Ply

TAPE_LAYING

ACTIVE Added V6.1

TapeReloadAllTows

TAPE_LAYING

ACTIVE Added V6.1

TapeReloadTow

TAPE_LAYING

ACTIVE Added V6.1

TapeThickness

TAPE_LAYING

ACTIVE Added V6.1

TapeTotalTows

TAPE_LAYING

ACTIVE Added V6.1

TapeTowOff

TAPE_LAYING

ACTIVE Added V6.1

TapeTowOn

TAPE_LAYING

ACTIVE Added V6.1

TapeTows

TAPE_LAYING

ACTIVE Added V6.1

TapeTowSwitches

TAPE_LAYING

ACTIVE Added V6.1

TapeTowWidth

TAPE_LAYING

ACTIVE Added V6.1

SubSpindleTransform
SubStartingSeq
SurfaceSpeed

TableValues

ACTIVE Added V6.0.1


ACTIVE

ToolChange

TOOLING

ACTIVE

ToolChangeAlpha

TOOLING

ACTIVE

ToolChangeByToolNum

TOOLING

ACTIVE

ToolChangeIfDifferent

TOOLING

ACTIVE

ToolChangeNoRetract

TOOLING

ACTIVE

VERICUT Macros
ToolChangeSave

TOOLING

ACTIVE

ToolCode

TOOLING

ACTIVE

ToolCodeAlpha

TOOLING

ACTIVE

ToolCodeSave

TOOLING

ACTIVE

ToolCutterComp

CUTTER_COMP

ToolLengthCompValueDirect

TOOL_OFFSETS

ACTIVE Added V6.0


ACTIVE Added V6.0

ToolNoseCompApply

TOOL_OFFSETS

ACTIVE

ToolNoseCompCancel

TOOL_OFFSETS

ACTIVE

ToolNoseCompToolNum

TOOL_OFFSETS

ACTIVE

ToolNoseCompToolNumSubValue

TOOL_OFFSETS

ACTIVE

ToolNoseCompValue

TOOL_OFFSETS

ACTIVE

ToolRetract

TOOLING

ACTIVE

ToolRetractDistance

TOOLING

ACTIVE

ToolSideOffsetMultiplier

TOOL_OFFSETS

ToolVectorX

CUTTER_COMP

ACTIVE Added V6.0.3


ACTIVE

ToolVectorY

CUTTER_COMP

ACTIVE

ToolVectorZ

CUTTER_COMP

ACTIVE

Touch

MISC

ACTIVE

TouchComponentName

MISC

ACTIVE

TurnOnOffGageOffset

TOOL_OFFSETS

ACTIVE

TurnOnOffGagePivotOffset

TOOL_OFFSETS

ACTIVE

TurnOnOffMessage

MISC

TurnOnOffRealTimeClock

MISC

ACTIVE Added V6.0.2


ACTIVE

TurnOnOffTravelLimits

MISC

ACTIVE

TOOL_OFFSETS

ACTIVE

TurretToolChange

TOOLING

ACTIVE

TurretToolChangeAlpha

TOOLING

TurretToolChangeByToolNum

TOOLING

ACTIVE Added V6.0


ACTIVE

TurretRotationOffset

Type2Begin

TYPE2

ACTIVE

Type2BEQLabel

TYPE2

ACTIVE

Type2BGELabel

TYPE2

ACTIVE

Type2BGTLabel

TYPE2

ACTIVE

Type2BLELabel

TYPE2

ACTIVE

Type2BLTLabel

TYPE2

ACTIVE

Type2BNELabel

TYPE2

ACTIVE

Type2CLS

TYPE2

ACTIVE

Type2CommentAllArgs

TYPE2

ACTIVE

Type2DFS

TYPE2

ACTIVE

Type2End

TYPE2

ACTIVE

Type2Goto

TYPE2

ACTIVE

Type2GotoLabelCond

TYPE2

ACTIVE Added V6.0

VERICUT Macros
Type2GotoLabelFunction

TYPE2

ACTIVE

Type2If

TYPE2

ACTIVE

Type2IfBlock

TYPE2

Type2Label

TYPE2

ACTIVE Added V6.0


ACTIVE

Type2OpMsg

TYPE2

ACTIVE

Type2OpMsgAllArgs

TYPE2

ACTIVE

Type2OpMsgStop

TYPE2

ACTIVE

UAxisIncreMotion

MOTION

ACTIVE

UAxisMachineMotion

MOTION

ACTIVE

UAxisMachineRefMotion

MOTION

ACTIVE

UAxisMotion

MOTION

ACTIVE

CUTTER_COMP

ACTIVE

UnitsInch

MISC

ACTIVE

UnitsMetric

MISC

ACTIVE

UnloadTool

TOOLING

ACTIVE

UnloadToolNoRetract

TOOLING

ACTIVE

UnloadToolToCompName

TOOLING

ACTIVE

UnMountTool

TOOLING

ACTIVE

UnMountToolIndex

TOOLING

ACTIVE

MISC

ACTIVE

BRANCHING

ACTIVE

MISC

ACTIVE

Unitize3DVector

Unsupported
UntilLoop
UpdateAxisValues
UpdateModalMacroVar
UpdateRotaryOffsets
UvwAxis

SUBROUTINES
SHIFT_WORK_PZ

ACTIVE Added V6.0


ACTIVE

CUTTER_COMP

ACTIVE

ValueArgument

MISC

ACTIVE

VariableArgument

MISC

ACTIVE

VarsUpdateMacroVars
VAxisIncreMotion

MOTION

ACTIVE Added V6.0


ACTIVE

VAxisMachineMotion

MOTION

ACTIVE

VAxisMachineRefMotion

MOTION

ACTIVE

VAxisMotion

MOTION

ACTIVE

VC_LoadFix

MISC

ACTIVE

VC_ModeMilling

MISC

ACTIVE

VC_ModeMillingComp

MISC

ACTIVE

VC_ModeTurning

MISC

ACTIVE

VC_ModeTurningComp

MISC

ACTIVE

VC_UnloadFix

MISC

ACTIVE

VirtualXAxis

MISC

ACTIVE

VirtualYAxis

MISC

ACTIVE

WIRE_EDM

ACTIVE

VoltageOff

SUBROUTINES

VERICUT Macros
VoltageOn
WarningMacro

WIRE_EDM

ACTIVE

WAxisIncreMotion

MOTION

ACTIVE Added V6.0.1


ACTIVE

WAxisMachineMotion

MOTION

ACTIVE

WAxisMachineRefMotion

MOTION

ACTIVE

WAxisMotion

MOTION

ACTIVE

WAxisMotionNoCycle

MOTION

ACTIVE

WAxisZeroTracking

MOTION

ACTIVE

WhileLoop

BRANCHING

ACTIVE

WorkCoord

WORK_OFFSETS

ACTIVE

WorkCoordA2Value

WORK_OFFSETS

ACTIVE

WorkCoordAValue

WORK_OFFSETS

ACTIVE

WorkCoordB2Value

WORK_OFFSETS

ACTIVE

WorkCoordBValue

WORK_OFFSETS

ACTIVE

WorkCoordC2Value

WORK_OFFSETS

ACTIVE

WorkCoordCValue

WORK_OFFSETS

ACTIVE

WorkCoordIndex

WORK_OFFSETS

ACTIVE

WorkCoordUValue

WORK_OFFSETS

ACTIVE

WorkCoordVValue

WORK_OFFSETS

ACTIVE

WorkCoordWithMotion

WORK_OFFSETS

ACTIVE

WorkCoordWValue

WORK_OFFSETS

ACTIVE

WorkCoordXValue

WORK_OFFSETS

ACTIVE

WorkCoordYValue

WORK_OFFSETS

ACTIVE

WorkCoordZValue

WORK_OFFSETS

ACTIVE

WorkingPlane2Abc
WorkingPlane2AbcType
WorkingPlane2AbcSolution
WPrimaryTrackingAxis

MISC

ROTATION_PLANE ACTIVE
ROTATION_PLANE ACTIVE
ROTATION_PLANE ACTIVE Added V6.1
ACTIVE
MOTION

XAxisIncreMotion

MOTION

ACTIVE

XAxisMachineMotion

MOTION

ACTIVE

XAxisMachineRefMotion

MOTION

ACTIVE

XAxisMotion

MOTION

ACTIVE

XRetractSpecifiedpoint

DRILL_CYCLES

ACTIVE

XToolOffsetCompName

TOOL_OFFSETS

ACTIVE

XyzAxis

CUTTER_COMP

ACTIVE

YAxisIncreMotion

MOTION

ACTIVE

YAxisMachineMotion

MOTION

ACTIVE

YAxisMachineRefMotion

MOTION

ACTIVE

YAxisMotion

MOTION

ACTIVE

YRetractSpecifiedpoint

DRILL_CYCLES

ACTIVE

YToolOffsetCompName

TOOL_OFFSETS

ACTIVE

VERICUT Macros
ZAxisIncreMotion

MOTION

ACTIVE

ZAxisMachineMotion

MOTION

ACTIVE

ZAxisMachineRefMotion

MOTION

ACTIVE

ZAxisMotion

MOTION

ACTIVE

ZAxisMotionNoCycle

MOTION

ACTIVE

ZAxisZeroTracking

MOTION

ACTIVE

ZPrimaryTrackingAxis

MOTION

ACTIVE

ZRetractSpecifiedpoint

DRILL_CYCLES

ACTIVE

ZToolOffsetCompName

TOOL_OFFSETS

ACTIVE

ALTERNATE
MACRO

MACRO
FUNCTION

STATUS

COMMENTS
This macro is associated

ApplyPivotOffset

TOOL_OFFSETS

ALTERNATE with the older RTCP

ApplyTurretOffset

TOOL_OFFSETS

method
Use
ALTERNATE

Cinci_5axisToolLengthComp

TOOL_OFFSETS

ALTERNATE with Contour off and With

FanucRotationPlaneLocal2

Motion on.
Use
ROTATION_PLANE ALTERNATE TurnOnOffGageOffset

TurnOnOffGagePivotOffset

Try using standard RTCP

Added V6.0
FanucToolLengthComp

TOOL_OFFSETS

ALTERNATE

FanucToolLengthCompAxisOn

TOOL_OFFSETS

ALTERNATE

Fidia_Rotate

ROTATION_PLANE

ALTERNATE

Fidia_Rotate2

ROTATION_PLANE

ALTERNATE

Fidia_RotateCancel

ROTATION_PLANE

ALTERNATE

Fidia_RotateCancel2

ROTATION_PLANE

ALTERNATE

Fidia_RotateXAxis

ROTATION_PLANE

ALTERNATE

Fidia_RotateXPoint

ROTATION_PLANE

ALTERNATE

Fidia_RotateYAxis

ROTATION_PLANE

ALTERNATE

Fidia_RotateYPoint

ROTATION_PLANE

ALTERNATE

Use
TurnOnOffGageOffset
Try using standard RTCP
with Contour off and With
Motion on, and new Gage
Offset logic.
Use standard rotation
plane macros
Use standard rotation
plane macros
Use standard rotation
plane macros
Use standard rotation
plane macros
Use standard rotation
plane macros
Use standard rotation
plane macros
Use standard rotation
plane macros
Use standard rotation
plane macros

VERICUT Macros

Fidia_RotateZAxis
Fidia_RotateZPoint

GageOffsetFirstDrivenPoint

Hcode_Tool
Heid_MotionCCW

Use standard rotation


plane macros
Use standard rotation
ROTATION_PLANE ALTERNATE
plane macros
Use
GageOffsetDrivenPoint
TOOL_OFFSETS ALTERNATE
and GageOffsetAttributes
Added V6.0
Use ToolCode,
ALTERNATE Toolchange, and
TOOLING
GageOffsetDrivenPoint
ALTERNATE Use MotionCCW
MOTION
ROTATION_PLANE

ALTERNATE

Heid_MotionCW

MOTION

ALTERNATE Use MotionCW

Icode

CIRCLES

ALTERNATE

Jcode

CIRCLES

Kcode

CIRCLES

MahoVertical2Rest
MahoVertical2Work
NumIfCheck

Use Conditionals to call


macros directly
UseConditionals to call
ALTERNATE
macros directly
Use Conditionals to call
ALTERNATE
macros directly

PROGRAM_ZERO ALTERNATE Drive axis directly


PROGRAM_ZERO ALTERNATE Drive axis directly
BRANCHING

ALTERNATE Use IfCheck

Uses a shift offset to apply


NumLengthCompX

TOOL_OFFSETS

ALTERNATE tool offset. Non-Standard.

NumLengthCompY

TOOL_OFFSETS

ALTERNATE

NumLengthCompZ

TOOL_OFFSETS

ALTERNATE

NumPlane

ROTATION_PLANE

ALTERNATE

NumPlaneA

ROTATION_PLANE

ALTERNATE

NumPlaneB

ROTATION_PLANE

ALTERNATE

NumPlaneC

ROTATION_PLANE

ALTERNATE

NumPlaneU

ROTATION_PLANE

ALTERNATE

NumPlaneV

ROTATION_PLANE

ALTERNATE

NumPlaneW

ROTATION_PLANE

ALTERNATE

ProcessCompRegValue

MOTION

ALTERNATE

Rcode

CIRCLES

ALTERNATE

Alternatives Unknown.
Uses a shift offset to apply
tool offset. Non-Standard.
Alternatives Unknown.
Uses a shift offset to apply
tool offset. Non-Standard.
Alternatives Unknown.
Use standard rotation
plane macros
Use standard rotation
plane macros
Use standard rotation
plane macros
Use standard rotation
plane macros
Use standard rotation
plane macros
Use standard rotation
plane macros
Use standard rotation
plane macros
Use
ProcessCompNameValue

Use Conditionals to call


macros directly

RotationPlane

ROTATION_PLANE

ALTERNATE Use RotationPlane2

RotationPlaneCancel

ROTATION_PLANE

ALTERNATE

RotationPlaneLocal

ROTATION_PLANE

ALTERNATE Use RotationPlaneLocal2

Use
RotationPlaneCancelReset

VERICUT Macros
SetActiveSpindleName

FEEDS_SPEEDS

ALTERNATE Use SetActiveStockName

SetPivotOffset

TOOL_OFFSETS

ALTERNATE

SubsystemActivateTool

ACTIVATION

This macro is associated


with the old style RTCP
Use
ALTERNATE
ActivateToolSubsystem

ToolLengthCompNeg

TOOL_OFFSETS

ALTERNATE

ToolLengthCompOff

TOOL_OFFSETS

ALTERNATE

ToolLengthCompPos

TOOL_OFFSETS

ALTERNATE

ToolLengthCompToolNum

TOOL_OFFSETS

ALTERNATE

ToolLengthCompToolNumSubValue TOOL_OFFSETS

ALTERNATE

ToolLengthCompUpdate

TOOL_OFFSETS

ALTERNATE

ToolLengthCompValue

TOOL_OFFSETS

ALTERNATE

XLeadRate

MOTION

ALTERNATE

YLeadRate

MOTION

ALTERNATE

ZLeadRate

MOTION

ALTERNATE

See also
GageOffsetDrivenPoint
See also
GageOffsetDrivenPoint
See also
GageOffsetDrivenPoint
See also
GageOffsetDrivenPoint
See also
GageOffsetDrivenPoint
See also
GageOffsetDrivenPoint
See also
GageOffsetDrivenPoint
See also
Turning Thread Cycles
See also
Turning Thread Cycles
See also
Turning Thread Cycles

NOT RECOMMENDED
MACRO
FUNCTION

STATUS

ActivateSpindle

ACTIVATION

NOT
RECOMMENDED

ActiveTool

ACTIVATION

NOT
RECOMMENDED

PROGRAM_ZERO

NOT
RECOMMENDED

MISC

NOT
RECOMMENDED

MACRO

AutoUpdatePZ
CollisionOnCutPart

RotationPlaneRestoreAxis ROTATION_PLANE

NOT
RECOMMENDED

SetAxisRegisterName

MISC

NOT
RECOMMENDED

ToolOffsetIndex

TOOL_OFFSETS

ToolOffsetUpdate

TOOL_OFFSETS

NOT
RECOMMENDED
NOT
RECOMMENDED

COMMENTS
Use
ActivateToolSubsystem
Use
ActivateToolSubsystem
Try using Gage and Gage
Pivot Offsets
It is not recommended that
this feature be turned off.
Use Rotation macros ending
with 2
Concept is being tested
Added V6.0
Use GageOffsetDrivenPoint
Use GageOffsetDrivenPoint

VERICUT Macros

SPECIAL
MACRO
BlockSkipAnywhere
ChangeWorkCoord
CollisionCheckOnOff
CollisionSpecialComp
EndLabelLoop
Enhanced5AxisLogicOnOff

MACRO
FUNCTION

STATUS

BLOCK_SKIP
SHIFT_OFFSETS
MISC
MISC
BRANCHING

SPECIAL
SPECIAL
SPECIAL
SPECIAL
SPECIAL

MISC

SPECIAL

PROGRAM_ZERO
MOTION
ROTATE_2D
MOTION
MISC
MISC
MISC

SPECIAL
SPECIAL
SPECIAL
SPECIAL
SPECIAL
SPECIAL
SPECIAL

COMMENTS

Use only if there is a


problem

Added V6.0
MaxTesselationAngle
MotionOnOff
RotateMacro
SetMotionFlag
SpecialRotoTrans
SpecialRotoTransComp
SpindleChanger
SpindleValue
ToolLengthOffsetValue
TriceptDriveCenterpost
TripodArmLength
TripodRodLength
UpdatePZ
ZWBTiltTableLength

ACTIVATION

SPECIAL

TOOL_OFFSETS
MISC
MISC
MISC
PROGRAM_ZERO
MISC

SPECIAL
SPECIAL
SPECIAL
SPECIAL
SPECIAL
SPECIAL

Should only be used with


SpindleChanger. See
also
ActivateToolSubsystem

Added V6.1
Added V6.1
Added V6.1

OBSOLETE
MACRO

MACRO
FUNCTION

ActiveTool1

ACTIVATION

ActiveTool2

ACTIVATION

ActiveTool3

ACTIVATION

ActiveTool4

ACTIVATION

STATUS

COMMENTS
Use

OBSOLETE ActivateToolSubsystem
Use
OBSOLETE ActivateToolSubsystem
Use

OBSOLETE ActivateToolSubsystem
Use
OBSOLETE ActivateToolSubsystem

VERICUT Macros

ActiveTool5

ACTIVATION

ApplyGageOffset

TOOL_OFFSETS

ApplyGagePivotOffset

TOOL_OFFSETS

ApplyGagePivotOffsetCurrent

TOOL_OFFSETS

AutoUpdateIPZ
CutterCompToolNum
CutterCompToolNumSubValue
CutterCompValue

PROGRAM_ZERO
CUTTER_COMP
CUTTER_COMP
CUTTER_COMP

Use

OBSOLETE ActivateToolSubsystem
OBSOLETE Use TurnOnOffGageOffset
Use

OBSOLETE TurnOnOffGagePivotOffset
Use
OBSOLETE TurnOnOffGagePivotOffset
OBSOLETE
OBSOLETE
OBSOLETE
OBSOLETE

MazakPartLoader

MISC

OBSOLETE

MotionOnOffSide

MOTION

OBSOLETE

MotionOnSide

MOTION

OBSOLETE

NcodeSeqSub

SUBROUTINES

OBSOLETE

MISC

OBSOLETE

PartTransformation
RotationPlaneIncAngle1
RotationPlaneIncAngle2
RotationPlaneIncAngle3

ROTATION_PLANE
TOOL_OFFSETS

SetGageOffsetSubValue

TOOL_OFFSETS

SetMatchingGageOffset

TOOL_OFFSETS

ToolNoseCompApply

TOOL_OFFSETS

TurretActivateTool
TurretIndex
TurretLoadTool
TurretRetract
UpdateIPZ

Use
VC_LoadFix,
VC_UnloadFix,
MoveCutStock macros
Used only for the intial
implementation of 4 axis
sync. No longer needed.
Used only for the intial
implementation of 4 axis
sync. No longer needed.
Use SubroutineSequence
Use the MoveCutStock
macros
Use non incremental angles

OBSOLETE and RotatonPlaneLocal2


Use non incremental angles
ROTATION_PLANE OBSOLETE
and RotatonPlaneLocal2
ROTATION_PLANE

SetGageOffset

ToolOffsetAptAdj

Use AutoUpdatePZ
Use ToolCutterComp
Use ToolCutterComp
Use ToolCutterComp

Use non incremental angles

OBSOLETE and RotatonPlaneLocal2


Use
OBSOLETE
GageOffsetDrivenPoint
Use
OBSOLETE
GageOffsetDrivenPoint
Use
OBSOLETE
GageOffsetDrivenPoint
OBSOLETE No longer needed as of

TOOL_OFFSETS

OBSOLETE

TOOLING
TOOLING
TOOLING
TOOLING

OBSOLETE
OBSOLETE
OBSOLETE
OBSOLETE

PROGRAM_ZERO

ZTranslateStockComp
MISC

V6.0
Use
GageOffsetDrivenPoint

Use TurretToolChange
Use TurretToolChange
Use TurretToolChange
Use TurretToolChange
Use the Program Zero
OBSOLETE
tables and UpdatePZ
No longer needed with
OBSOLETE new Pickoff Spindle
capabilities

VERICUT Macros
ZTranslateValue
MISC

No longer needed with


OBSOLETE new Pickoff Spindle
capabilities