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: 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.
8/19/2019 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).
8/19/2019 Vericut Macros
http://slidepdf.com/reader/full/vericut-macros 3/246
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
8/19/2019 Vericut Macros
http://slidepdf.com/reader/full/vericut-macros 4/246
VERICUT Macros
4 = A axis 5 = B axis 6 = C axis 7 = U axis 8 = V axis
9 = W axis10 = 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.
8/19/2019 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
http://slidepdf.com/reader/full/vericut-macros 6/246
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.
http://slidepdf.com/reader/full/vericut-macros 7/246
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
8/19/2019 Vericut Macros
http://slidepdf.com/reader/full/vericut-macros 8/246
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.
8/19/2019 Vericut Macros
http://slidepdf.com/reader/full/vericut-macros 9/246
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 IJKvector 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.
8/19/2019 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.
8/19/2019 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 auto- calculated 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 auto- calculated 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.
8/19/2019 Vericut Macros
http://slidepdf.com/reader/full/vericut-macros 12/246
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.
8/19/2019 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). Bi- directional 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.
8/19/2019 Vericut Macros
http://slidepdf.com/reader/full/vericut-macros 14/246
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 GUIsettings.
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.
8/19/2019 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
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.
8/19/2019 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
Also see: Tool3dOffset.
CancelAllWorkOffsets
Cancels the shift offset (Fanuc G92), the work coordinate offset
(G54-59), and the Base offset (MAHO).
CancelShiftOffsets
CancelWorkOffsets
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
8/19/2019 Vericut Macros
http://slidepdf.com/reader/full/vericut-macros 17/246
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.
8/19/2019 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.
8/19/2019 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
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.
8/19/2019 Vericut Macros
http://slidepdf.com/reader/full/vericut-macros 20/246
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 atreset 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 colinearaxes and perform circular motions.
Examples follow:
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.
8/19/2019 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".
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.
8/19/2019 Vericut Macros
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
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.
8/19/2019 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
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:
1 - for CHAMFER2 - 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.
8/19/2019 Vericut Macros
http://slidepdf.com/reader/full/vericut-macros 25/246
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
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
8/19/2019 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
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
8/19/2019 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.
8/19/2019 Vericut Macros
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 3
position
plane
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.
8/19/2019 Vericut Macros
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
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
8/19/2019 Vericut Macros
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
8/19/2019 Vericut Macros
http://slidepdf.com/reader/full/vericut-macros 31/246
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.
8/19/2019 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
8/19/2019 Vericut Macros
http://slidepdf.com/reader/full/vericut-macros 33/246
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
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
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.
8/19/2019 Vericut Macros
http://slidepdf.com/reader/full/vericut-macros 34/246
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
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
CycleRapidType
Specifies how the Cycle Rapid value is to be interpreted.
8/19/2019 Vericut Macros
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
CyclesBore
CyclesBoreDrag
CyclesBoreOrient
CyclesCancel
CyclesDrill
8/19/2019 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
CyclesMill
CyclesTap
8/19/2019 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
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.
8/19/2019 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 groovingcycles 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
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.
8/19/2019 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
CycleTurnGrooveRelief
Retract distance after each cutting peck motion during groove
cycles. Some NC controlsdefine 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
http://slidepdf.com/reader/full/vericut-macros 40/246
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.
8/19/2019 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
CycleTurnThreadFinish
Specifies the quantity of finish passes. If not specified, default
is to make one pass.
CycleTurnThreadFirstCut
CycleTurnThreadHeight
CycleTurnThreadLead
When used on a threading block the feed value defines the thread
lead distance.
8/19/2019 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.
8/19/2019 Vericut Macros
http://slidepdf.com/reader/full/vericut-macros 43/246
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
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.
8/19/2019 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 do-
loops 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
8/19/2019 Vericut Macros
http://slidepdf.com/reader/full/vericut-macros 45/246
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 asillustrated below:
Dwell
DwellMacro
Causes a dwell to occur. Typically called by G04, this macro must
be called after theDwellTime 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
8/19/2019 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.
8/19/2019 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 non- contouring mode. The default is 1.
NOTE: Th