Special Macros

<< Click to Display Table of Contents >>

Navigation:  Reference Section > Machines > Advanced Post Processor Settings >

Special Macros

Some posts require special processing to provide machine-specific functionality.

 

$FEED_STD$

Substitutes feed word into the program, using a material lookup feedrate for the current cutting/marking/beveling process, converted into the current code units (mm/min or ipm) and scaled by the Speed Scale Factor.  See Machine Feed Settings

 

$BEVEL_FEED_STD$

Similar to $FEED_STD$ above but used on bevel tools, it instead uses the bevel angle adjusted speed.  Each Bevel tool has its own setting to select a Bevel Feedrate Multiplier Type (Currently two models are supported Generic for older plasmas, and HPR for HPR and XPR style High definition plasma). See Time Estimation: Bevel

 

$KERF_MODE:<mode>[:<int/ext>]$

Writes a kerf word.  Requires a parameter<mode> which can be one of the following:

NONE        Inserts a Kerf None Code, Typically G40
LEFT        Inserts a Kerf Left Code, Typically G41
RIGHT        Inserts a Kerf Right Code, Typically G42
RESTOREInserts a Kerf Code for the mode expected by the program.

Also can take and additional parameter of INT or EXT to specify an internal or external kerf type.

eg

$KERF_MODE:LEFT:INT$  sets a left internal kerf

Also can take an additional parameter of FORCE_ADD to always add the kerf code even if it is unchanged, as required for some post processors.

eg

$KERF_MODE:NONE:FORCE_ADD$ always adds a kerf none, even if a kerf none was used previously

 

$PIERCE_METHOD_STR$

see Pierce Method

 

$PROC_CODE_OF_FIRST_PROC_IN_SET:<Process IDs>:<Process Code Num>$

e.g. $PROC_CODE_OF_FIRST_PROC_IN_SET:5100,5101:1$ Looks through the sequence for the first process with Process ID 5100 or 5101, and returns the $PROC_CODE_1$ value for that process, (The proc code number is the one given after the last ':'). If no process can be found then the default process for the first process ID in the set is used. If nothing is returned, there may not be process data for that processID for the chosen material thickness.

 

$KERF_CONTOUR_TYPE$

This is substituted for by the active tools internal or external kerf indicator.  The default for these  (for historical reasons) is D21 and D22, but they can be replaced on the tool to be anything, eg INNER_CONTOUR, STANDARD_CONTOUR etc.

 

$PLATE_HEAT$ , $PLATE_SERIAL$, $PLATE_TESTCERT$

Plate heat and serial number and test certificate reference. See Label Parts.

$PROGRAM_PARAM:,param name>$

Inserts

Spindle Macros

spindle Macros

$SPIN_RPM_1$

Used to insert the spindle speed in RPM, eg for some Farley controllers we might use:

G75S$SPINDLE_RPM_1$

$SPIN_DIA_1$

Diameter of the current tool in active units (mm or inches)

$SPIN_FEED_1$

Feed per revolution of the selected spindle tool in active units (mm or inches)

$SPIN_FEED_SPEED_1$

Nett Feedrate in mm/min or ipm of the current tool.

$SPIN_PECK$, $SPIN_PECK_TYPE$

Peck Parameters for the current spindle tool, SPINDLE_PECK is the peck depth increment, SPINDLE_PECK_TYPE is usually encoded as an integer.

$SPIN_TOTAL_DEPTH$

Effective tip Depth of the spindle process in active units (mm or inches) (equal to the depth, or if drilling through the plate, the plate local thickness + overshoot)

 

$PATH_TYPE$

This will substitute either the Internal Path Marker or the External Path Marker codes depending on whether a path is internal or external; open paths will get the External Path Marker.

$TOOL_COUNT$

The current tool process number (numbering is defined in the post  by ToolCount Start Number and Tool Count Number Increment under Program General

see also $RAPID_NUM$

$TOTAL_TOOL_COUNT$

The total number of processes in the program (or in the current  subroutine).  

$RAPID_NUM$

The current rapid number.  Rapid numbers are defined in the  post by Rapid Start Number and Rapid Number Increment under Rapids.

Very similar to $TOOL_COUNT$ above, but in some applications rapids may increment more frequently.  Using both also allows two different numbering schemes.


Custom Machine Macros

Custom machine macros usually begin with "$*"

 

$*LVD_END_CONTOUR$

This uses LVD documented logic to determine whether to retract the head or keep itr lowered at the end of a cut, it is usually in the LVD Laser End Tool Codes):

 

BEAM_OFF

$_LVD_END_CONTOUR$

 

Its output is of the form:

ENDCONTOUR("DOWN", 75.221)

or

ENDCONTOUR("UP", 75.221)

 

 

The second numeric parameter is the distance to the next start, and is 0 in the final cut of a subroutine (which always retracts , ie at the end of a part subroutine this will be ENDCONTOUR("UP", 0) )

 

$*LVD_ENGRAVING_LOOKAHEAD$

 

Typical usage:

 

engraving =$*LVD_ENGRAVING_LOOKAHEAD$

 

The Engraving Override Program Parameter (defaults to AUTO DETECT see below) allows you to force the engraving mode:

engraving Override parameter

 

 

Auto Detect : Looks ahead to find engraving and cutting processes. if no engraving found returns '0' else looks up process code 4 (gas and nozzle) looks at first character assumes O or N and sets it to '1' for O2 cutting or '2' for N2 cutting.

 

Otherwise if the Engraving Override is set to a non zero value it wll be as follows:

engraving=0 no engraving

engraving=1 O2 engraving

engraving=2 N2 engraving

engraving=3 Air engraving

engraving=4 O2 Heavy engraving

engraving=5 N2 Heavy engraving

 

 

$*OAB_AWORD$  and $*OAB_CWORD$

 

These macros are for use in the OAB Bevel system.  They allow the initial A and C axis positions for a bevel cut to be accessed as strings.

eg

$*OAB_AWORD$ could be replaced with A45

$*OAB_CWORD$ could be replaced with C90

$*FARLEY_CAROUSEL$

Inserts a Farley Carousel block, eg :

(CAROUSEL CONFIGURATION)
(STATION 7  DRILL 12Ø)
(STATION 13  DRILL 18Ø)

 

Deprecated: if no spindle config has been written or the current one does not contain the next drill, the spindle subsystem will write a carousel configuration automatically.

 

$*FARLEY_NEXT_DRILL$, $*FARLEY_THIS_DRILL$

These reference which Drill is to be used, using the carousel station IDs, packed with a leading zero if necessary.  eg, in the tool select:

 

T60=$*FARLEY_NEXT_DRILL$$*FARLEY_THIS_DRILL$ (%s)

might resolve to (using the carousel example above, station 13 next, station 7 now, using Drill 18):  

T60=1307 (Drill 12Ø)

 

$*FARLEY_SUBAXIS_COORDS*

Use with a Farley Fabricator XRP within a spindle with subaxis tool.  Outputs spindle XY coordinates in absolute coordinates relative to the spindle clamp position (the origin of the spindle subaxis)

$*HSFDB_CAROUSEL$

Inserts a list of drills (basically just comments) to suit a Peddinghaus HSFDB machine, eg

;Tooling

#1   1/2

#2   1*1/4

#3   3/4

#4

#5

#6

#7

#8

The first 8 drills are loaded into the toolchanger, tools 9-18 are manually loaded.  Only supports a single "carousel" setup at the start of the program.

$*HSFDB_THIS_DRILL*

Selects the current drill number to load for a Peddinghaus HSFDB machine.

$*PENTA_NEXT_START$

For Penta lasers, looks ahead to the start of the next process to write a line like M26 ZX<-10.000> ZY<0.000>

XY2AXISBEVEL

For bevels with two pivot axis aligned with X and Y, whose axis intercept / whose torch tip position from rotation is offset already by the machine, e.g. for a Pentalaser Bevel an XY2AXISBEVEL is appropriate. AXIS 1 is the first axis and AXIS 2 is the second axis in the spherical coordinate system. The first axis direction (X or Y) is set with 'XY 2-Axis Bevel First Axis Direction'

$*XY2AXISBEVEL_ANGLES$

 Returns the two axis bevel angles word in the post processor field 'XY 2-Axis Bevel Angles Word' which should refer to $*XY2AXISBEVEL_AXIS_1$ and $*XY2AXISBEVEL_AXIS_1$ in the format expected.

$*XY2AXIS_BEVEL_PIERCE_ANGLES$

 Returns the two axis bevel angles word in the post processor field 'XY 2-Axis Bevel Angles Word' which should refer to $*XY2AXISBEVEL_AXIS_1$ and $*XY2AXISBEVEL_AXIS_1$ in the format expected using the pierce angle and rotation of the process not the current position of the torch.

$*XY2AXISBEVEL_AXIS_1$

 Returns whatever is in 'XY 2-Axis Bevel First Axis Code', with the first axis angle inserted at the %s

$*XY2AXISBEVEL_AXIS_2$

 Returns whatever is in 'XY 2-Axis Bevel Second Axis Code', with the second axis angle inserted at the %s