User Guide

2D Design and Management

The 2D View is used to design and manage the layout of your finished part. Different entities are used to allow the user to control items that are either strictly 2D or are 2D representations of objects in the 3D View. A list of these 2D View entities are described briefly below and more fully in later sections of this manual.

Ultimately the point of all these different types of objects is to allow you to create the toolpaths you need to cut the part you want on your CNC. This may mean that they help you to create the basis for the 3D model or that they are more directly related to the toolpath such as describing its boundary shape. The different applications and uses for these 2D items mean that organization of them is very important. For this reason Cut2D Desktop has a Layer function for managing 2D data. The Layers are a way of associating different 2D entities together to allow the user to manage them more effectively. Layers will be described in detail later in the relevant section of this manual. If you are working with a 2 Sided project you can switch between the 'Top' and 'Bottom' sides in the same session, enabling you to create and edit data on each side, and using the 'Multi Sided View' option you can view the vectors on the opposite side. 2 Sided Setup will be described in detail later in the relevant section of this manual.

Vectors

Vectors are lines, arcs and curves which can be as simple as a straight line or can make up complex 2D designs. They have many uses in Cut2D Desktop, such as describing a shape for a toolpath to follow or creating designs. Cut2D Desktop contains a number of vector creation and editing tools which are covered in this manual.

As well as creating vectors within the software many users will also import vectors from other design software such as Corel Draw or AutoCAD. Cut2D Desktop supports the following vector formats for import: *.dxf, *.eps, *.ai, *.pdf, *skp and *svg. Once imported, the data can be edited and combined using the Vector Editing tools within the software.

Bitmaps

Although bitmap is a standard computer term for a pixel based image (such as a photo) in *.bmp, *.jpg, *.gif, *.tif, *.png and *.jpeg. These file types are images made up of tiny squares (pixels) which represent a scanned picture, digital photo or perhaps an image taken from the internet.

Interface Overview

  1. The Main Menu Bar (the Drop Down Menus) along the top of the screen (File, Edit, Model, Toolpaths, View, Gadgets, Help) provides access to most of the commands available in the software, grouped by function. Click on any of the choices to show a Drop-Down list of the available commands.
  2. The Design Panel is on the left side of the screen. This is where the design tabs can be accessed and the icons within the tabs to create a design.
  3. The Toolpath Tab is on the right side of the screen. The Top section of the toolpaths tab houses all of the icons to create, edit and preview toolpaths. The bottom half shows you toolpaths that you have already created.
  4. The 2D Design window is where the design is drawn, edited and selected ready for machining. Designs can be imported or created directly in the software. This occupies the same area as the 3D View and the display can be toggled between the two using F2 and F3 or the tabs at the top of the window.
  5. The 3D View is where the composite model, toolpaths and the toolpath preview are displayed.
  6. If you wish to see the 2D and 3D views simultaneously, or you wish to switch your focus to the Toolpaths tab at a later stage of your design process, you can use the interface layout buttons (accessible in the 2D View Control section on the Drawing Tab) to toggle between the different preset interface layouts.

Managing the Interface

The tool pages have Auto-Hide / Show behavior which allows them to automatically close when not being used, thus maximizing your working screen area.

The software includes two default layouts, one for designing and one for machining, which can automatically and conveniently set the appropriate auto-hide behavior for each of the tools pages. Toggle layout buttons on each of the tools pages allow you to switch the interface as your focus naturally shifts from the design stage to the toolpathing stage of your project.

Accessing Auto-hidden tabs

If a tools page is auto-hidden (because it is currently unpinned, see pinning and unpinning tools pages, below), then it will only appear as a tab at the side of your screen. Move your mouse over these tabs to show the page temporarily. Once you have selected a tool from the page, it will automatically hide itself again.

Pinning and unpinning tools pages

The auto-hide behavior of each tools page can be controlled using the push-pin icons at the top right of the title area of each page.

Default layout for Design and Toolpaths

Aspire has two default tool page layouts that are designed to assist the usual workflow of design, followed by toolpath creation.

In all three of the tools tabs there are 'Switch Layout' buttons. In the Drawing and Modeling tabs, these buttons will shift the interface's focus to toolpath tasks by 'pinning-out' the Toolpaths tools tab, and 'unpinning' the Drawing and Modeling tools tabs. In the toolpaths tab, the button reverses the layout - unpinning the toolpaths page, and pinning-out the Drawing and Modeling pages.You can toggle between these two modes using the F11 and F12 shortcut keys.

2D Design and Management

The 2D View is used to design and manage the layout of your finished part. Different entities are used to allow the user to control items that are either strictly 2D or are 2D representations of objects in the 3D View. A list of these 2D View entities are described briefly below and more fully in later sections of this manual.

Ultimately the point of all these different types of objects is to allow you to create the toolpaths you need to cut the part you want on your CNC. This may mean that they help you to create the basis for the 3D model or that they are more directly related to the toolpath such as describing its boundary shape. The different applications and uses for these 2D items mean that organization of them is very important. For this reason Cut2D Desktop has a Layer function for managing 2D data. The Layers are a way of associating different 2D entities together to allow the user to manage them more effectively. Layers will be described in detail later in the relevant section of this manual. If you are working with a 2 Sided project you can switch between the 'Top' and 'Bottom' sides in the same session, enabling you to create and edit data on each side, and using the 'Multi Sided View' option you can view the vectors on the opposite side. 2 Sided Setup will be described in detail later in the relevant section of this manual.

Vectors

Vectors are lines, arcs and curves which can be as simple as a straight line or can make up complex 2D designs. They have many uses in Cut2D Desktop, such as describing a shape for a toolpath to follow or creating designs. Cut2D Desktop contains a number of vector creation and editing tools which are covered in this manual.

As well as creating vectors within the software many users will also import vectors from other design software such as Corel Draw or AutoCAD. Cut2D Desktop supports the following vector formats for import: *.dxf, *.eps, *.ai, *.pdf, *skp and *svg. Once imported, the data can be edited and combined using the Vector Editing tools within the software.

Bitmaps

Although bitmap is a standard computer term for a pixel based image (such as a photo) in *.bmp, *.jpg, *.gif, *.tif, *.png and *.jpeg. These file types are images made up of tiny squares (pixels) which represent a scanned picture, digital photo or perhaps an image taken from the internet.

Rotary Machining and Wrapping

Cut2D Desktop can 'wrap' flat toolpaths around a cylinder to provide output to CNC machines which are configured with a rotary axis / indexer. The image below shows a flat toolpath wrapped around part of a cylinder.

Note

It is important to note that wrapping works in conjunction with specially configured post-processors which take the XYZ 'flat' toolpaths and wrap them around a rotary axis, replacing either the X or Y moves with angular moves.

The toolpaths can be visualized wrapped within the program when the Auto Wrapping mode is on.

Cut2D Desktop can also visualize a wrapped model within the program by drawing the shaded composite model wrapped.

test
Wrapped toolpaths
test
Cross section of a table leg modeled flat
test
Toolpath wrapping switched on

Cut2D Desktop also has the ability to draw the toolpath simulation wrapped. Although this is very useful for getting a feel for how the finished product will look, it is important to realize that the wrapped simulation may not be a 100% accurate representation of how the finished product will look. An example of potential difference would be if you drilled holes in your rotary job. In the actual work piece these will obviously just be round holes, in the wrapped simulation these may appear as distorted ovals due to the 'stretching' process which takes place when we wrap the flat simulation model for display.

Note

If your rotary axis is aligned along your Y axis you would choose the Orientation Along Y Axis option during job setup. All the examples in this document will assume that the rotary axis is aligned along X.

It is important to realize that there are a huge number of possible combinations of machine controller and axis orientations for rotary axis / indexers. This means it is impractical for Vectric to supply a pre-configured post-processor for every possible combination as standard. We include some wrapping post-processors in the software that can be configured when you setup your Machine Configuration.

If you need to select a new post, you can do so by accessing the Save Toolpaths menu. To do so, click the 'Manage machine configuration' button as seen in the image below:

test

This will now open a menu where you can press the button under 'Associated Post-Processors' to access all of the available post-processors within the software and choose the appropriate wrapped post-processor for your machine configuration.

test

You can also right click the post in this menu and select 'view' to view the contents of the post, should you need to edit it later.

Examining these posts may be helpful if you need to configure a post of your own. If Vectric have not supplied a standard a post for your machine configuration please refer to the Post Processor Editing Guide accessible from the Help menu of the program for information on how to configure a post-processor and also look at the standard rotary posts Vectric supply.

You should also look at the Vectric forum to see if anyone else has already configured a post for your configuration or one similar. If, after looking at these resources you are still unsure of what needs to be done for your machine, please feel free to contact support@vectric.com for help. However, please note that we cannot guarantee to write a custom rotary post-processor for every individual requirement.

Creating a Rotary Job

Z Origin

You have the choice of specifying if the tool is being zeroed on the center of the cylinder or the surface. When you are rounding a blank, you cannot set the Z on the surface of the cylinder, as the surface it is referring to is the surface of the finished blank. We would strongly recommend for consistency and accuracy that you always choose 'Center of Cylinder' when outputting wrapped toolpaths as this should always remain constant irrespective of irregularities in the diameter of the piece you are machining or errors in getting your blank centered in your chuck.

Tip:

A useful tip for doing this is to accurately measure the distance between the center of your chuck and a convenient point such as the top of the chuck or part of your rotary axis mounting bracket. Write down this z-offset somewhere, and zero future tools at this point and enter your z-offset to get the position of the rotary axis center. Another reason for choosing 'Center of Cylinder' is that some controls will be able to work out the correct rotation speed for the rotary axis based on the distance from the center of rotation. If the Z value is relative to the surface, the control would need to know the diameter or radius of the cylinder at Z zero.

XY Origin

XY Drawing Origin - Here you can specify where the XY zero origin will be placed on your job. These options correspond to the same fields on the normal 'Job Setup' form within the program. Most people would use the default Bottom Left Corner, but for some jobs you may prefer to have the XY origin in the Center.

  • In a job with horizontal orientation (Along X Axis), the X offset will correspond to the length of the cylinder, and the Y offset will be a point along its circumference.
  • In a job with vertical orientation (Along Y Axis), it's the opposite. The Y offset will correspond to the length of the cylinder, and the X offset will be a point along its circumference.

Orientation

Cylinder Orientation Along - This section is used to tell the program how you have your rotary axis aligned on your machine. If you've already made your design, but just want to change the job for a different machine, then you could flip your design with the material so that all the vectors and components stay the same relative to the job.

Z Origin On - This section determines whether the Z Origin is set to the surface of the material or the base (center of cylinder). These settings can be over-ridden when the toolpath is actually saved, but we would strongly recommend the 'Cylinder Axis' is selected for rotary machining. The reasons for this are detailed in the note below.

Vector Layout

As well as creating a job at a suitable size for wrapping toolpaths, when creating the job, it will create a number of vectors which can be very useful when creating your wrapped job.

The vectors are created on their own individual layers and by default these layers are switched off to avoid cluttering up your work area. To switch on the layers, display the 'Layer Control' dialog (Ctrl+ L is the shortcut to show / hide this). To show / hide the layer simply click on the check box next to the layer name.

2Rail Sweep Rails - This layer contains two straight line vectors which can be used to sweep a profile along if you are creating a shaped column.

Bounding Box - This layer contains a rectangular vector covering the entire job area. This vector is useful if you are going to machine the complete surface of the cylinder.


Choosing stock material

When setting-up rotary project, software assumes a perfect cylinder with an exact diameter. In practice the stock material may be uneven, or only blank with square profile may be available. In those cases blank needs to be machined into cylinder of desired size, before running toolpaths associated with the actual design.


Another consideration is length of the stock material. Typically, part of the blank will be placed within the chuck. It is also important that during machining, the cutting tool is always in safe distance from both chuck and tailstock. For those reasons, the blank has to be longer than the actual design. When setting-up the machine for cutting, one has to pay extra attention to ensure that origin is set accordingly to avoid the tool running into chuck or tailstock!

If the design was created without those considerations in mind, the blank size can always be adjusted in the Job Setup form.

The picture below presents an example of a rotary project layout. As explained above, the actual blank is longer than job defined in Aspire to allow for the chuck and sufficient gaps. The actual design is shorter than job defined in Aspire, to leave some space for tabs, that can be machined with the profile toolpath prior to removing the finished part from the chuck.

When machining 3D shapes with varying thicknesses like on the example shown below, it is a good idea to place the thicker end of the model on the side closest to the driving motor. This way torsional twisting will mostly affect the stronger end of the machined part and help to avoid bending or breaking of the part during machining.

Simple Rotary Modelling using 2D Toolpaths

Creating vectors for a basic column

This section will show how to create a simple column, using the profile and fluting toolpaths.

Start by creating a new rotary job. Please note that settings shown here are only an example and should be adapted to match your machine setup and available material.

In this example the blank will rotate around X axis. We will refer to it as the rotation axis. The axis that will be wrapped is the Y axis. We will refer to it as the wrapped axis. That means that the top and bottom boundaries of the 2D workspace will actually coincide. We will refer to them as the wrapped boundaries.

First, create the cove vectors using Draw Line/Polyline tool. Those will run along the wrapped axis at both ends of the design. Snapping may be useful to ensure that the created line starts and ends at the wrapped boundaries.

In this example the coves were placed 1 inch from the job boundaries, leaving 10 inches in the middle for the flutes. The flutes will run along rotation axis. Assuming 0.5 inch gap between the cove and the beginning of the flute, the flutes will have the length of 9 inches. This example will use 8 flutes.

To start, create a line parallel to rotation axis that is 9 inches long. Now select the created flute vector and then select one of the cove vectors while holding down Shift. Then use Copy Along Vectors tool to create 9 copies. The original flute vector may now be removed as it is no longer necessary. Note that first and last copy are both created on wrapped boundaries. That means they will coincide, so one of them can be removed. As the last step select all flute vectors and press F9 to place them in the center of design.

Creating rotary toolpaths

The process of creating 2D rotary toolpaths is very similar to creating toolpaths for Single - and Double - models. This example will use the profile toolpath on the cove vectors. To create the toolpath, select the cove vectors and click on the Profile Toolpath from

To create the toolpath for the flutes, select the flute vectors and click on the Fluting Toolpath. This Example used a 1 inch 90deg V-Bit set to Flute Depth 0.2 and using the Ramp at Start and End and Ramp Type Smooth options. Ramp length was set to 0.25 inches. Both toolpaths can be seen below.

test
Toolpath for coves of the column
test
Toolpath for flutes of the column

Simulating and saving toolpaths

It is time to simulate toolpaths using Preview Toolpaths. If the option to animate the preview is selected, the simulation will be visualized in flat mode. Once the simulation is complete, the wrapped rotary view will be turned back on automatically.

Contrary to single - and double - sided simulation, rotary simulation is not 100% accurate. For example round holes will appear in rotary view as oval ones, but obviously will be round when part is actually machined.

Although the design can be considered to be finished, in practice it is useful to be able to cut-out the remaining stock. This can be realized by making the design slightly longer and adding profile cuts. In this example the blank length was extended by 2 inches using the Job Setup . Existing vectors can be recentered using F9After that the existing toolpaths have to be recalculated.

The cut-out vectors can be created in the same way as cove vectors. Two extra profiling toolpaths can be created using the suitable End Mill. In this example we used a tab with a 0.5 inch diameter. In order to achieve that, the user can type the following in the Cut Depth box: z-0.25 and then press = and the software will substitute the result of the calculation. Variable 'z' used in the formula will be substituted by the radius of the blank automatically by software. It is also important to specify Machine Vectors Outside/Right or Machine Vectors Inside/Left as appropriate. The cut-out toolpaths and the resulting simulation can been shown below.

test
Cut-out toolpaths in 2D view
test
Finished part after adding cut-out toolpaths

The final step is to save the toolpaths in a format acceptable by your machine. Use the Save Toolpaths and select the wrapped post-processor matching your machine.

Note

Tools and values presented in this example are for illustrative purposes only. Size of tools, feed rate, tabs diameter etc. have to be adapted to the material and machine used to ensure safe and accurate machining.

Spiral toolpaths

This section will explain how to create and simulate spiral toolpaths.

One way of thinking about spiral toolpaths is to imagine a long, narrow strip of fabric. Such a strip can be wrapped around a roll at a certain angle. In order to create a toolpath that wraps around the blank multiple times, one can create a long vector at a certain angle. Such a vector is an equivalent to the strip of fabric when it is unwrapped from the roll.

Although such a toolpath will exceed the 2D workspace of the rotary job, thanks to the wrapping process during both simulation and machining the toolpath will actually stay within material boundaries.

The most crucial part of designing spiral vectors is to determine the right angle and length of the line that would result in a given number of wraps. Suppose one would like to modify a simple column design to use spiral flutes, rather than parallel to rotation axis. The following example will use flutes wrapping 3 times each, but the method can be adapted to any other number.

All but one of the existing flute vectors can be removed. Select the Draw Line/Polyline and start a new line by clicking at one end of the existing flute. This line needs to be made along the wrapped axis with the length being 3 times the circumference of the job. In this example that means typing 90 into the Angle box and typing y * 3 into the Length box and pressing =. If the wrapped axis is not the Y axis, but rather the X axis, then the above formula should be x * 3.

Now one can simply draw a line connecting to the other end of the original flute vector and the newly created one. Using Copy Along Vectors tool this single flute may be copied in the way described earlier. In this example 4 spiral flutes were created, as can be seen below.

test
Vectors used to create spiral flutes
test
Spiral toolpaths in flat view

Once the flute vectors are ready, the toolpath can be created again using the Fluting Toolpath. An important thing to note, is the difference between the appearance of spiral toolpaths in the wrapped and flat view. By clicking on Auto Wrapping one can switch from wrapped rotary view to flat view and back again.

As can be seen above, in the flat view the toolpaths will follow the vectors and extend beyond the job boundaries. On the other hand the wrapped view, presented below, will display the toolpaths spiralling around the blank.

This was just a brief overview of general 2D workflow for rotary machining. Remember to also take a look at video tutorials dedicated to rotary machining, which are accessible from the Tutorial Video Browser link when the application first starts.

Post-Processor Editing

What does the Post Processor Do?

The post processor is the section of the program that converts the XYZ coordinates for the tool moves into a format that is suitable for a particular router or machine tool. This document details how to create and edit the configuration files that customize the output from the program to suit a particular machine control.

Below are sections of a typical program that has been post processed into both G-Code and HPGL

G-Code Output

T1 M6

G17

G0 Z4.5000

G0 X0.0000 Y0.0000 S12000 M3

G0 X2.4567 Y7.8342 Z0.2500

G1 Z-0.0500 F5.0

G3 X3.3784 Y8.7559 I0.0000 J0.9218 F66.0

G3 X2.4567 Y9.6777 I-0.9218 J0.0000

G3 X1.5349 Y8.7559 I0.0000 J-0.9218

HPGL Output

IN;PA;

PU2496,7960;

PD2496,7960;

AA2496,8896,90.000

AA2496,8896,90.000

AA2496,8896,90.000

AA2496,8896,90.000

PU2496,7960;

PU2496,6096;

Machine controller manufacturers will often customize the file format required for programs to run on a particular machine in order to optimize the control to suit the individual characteristics of that machine.

The Vectric post processor uses simple text based configuration files, to enable the user to tailor a configuration file, should they wish to do so.

Post Processor Sections

Vectric post processors are broken down into sections to aid clarity, try to write your post processors in a similar style to aid debugging.

File Comments

A section where you can describe the post processor and record any changes to the post processor, each line is a comment and starts with a ‘+’ character or a ‘|’ character.

+ History

+ Who When What

+ ======== ========== ===========================

+ Tony 14/07/2006 Written

+ Mark 26/08/2008 Combined ATC commands, stop spindle on TC

+================================================

Global File Statements

Statements are items that are either used only once, or have static values throughout the file. Write statement names in upper case letters for clarity.

Statement

Result

POST_NAME="Text Output Arcs(mm)(*.txt)

The name that will appear in the post processor list

FILE_EXTENSION="txt"

The file extension that the file will be given

UNITS="MM"

The units that the file outputs (INCHES or MM)

PRINT_DIRECT="YES"

The machine tool manufacturer has supplied a driver (usually a printer driver) thatn can directly accept the NC file output (For example see Generic HPCL_Arcs.pp)

RAPID_PLUNGE_TO_STARTZ="YES"

Indicates that plunge moves to Plunge (Z2) height (that is set on the material setup form) are rapid moves

DIRECT_OUTPUT="Display Name|Manufacturers.Document"

The control software uses a document interface that can directly accept the NC file output.

ROTARY_WRAP_Y=A

The moves in the Y axis are to be wrapped around a cylinder of the specified diameter. The "Y" values will be output as "A"

ROTARY_WRAP_X=B

The moves in the X axis are to be wrapped around a cylinder of the specified diameter. The "X" values will be output as "B"

SPINDLE_SPEED_RANGE = 1 15 4500 15000

Spindle speed for this machine is output as a range of integer numbers between 1 and 15 representing the actual speed in RPM of the spindle, (between 4500 and 15000 RPM in the quoted example). For an example, see the file: Roland_MDX-40_mm.pp

SUBSTITUTE = "O1 S1 O2 S2 On Sn"

This command allows you to substitute a character output within the variables (such as [TOOL_NAME]) and substitute that character, with another. This feature can be useful for those cases where particular characters cause errors on an NC control.

The characters are entered in pairs, Original - Subsititued.

For example MACH 3 control software uses parentheses as comment delimiters, and does not allow nested comments. Most tools within the Vectric Tool Database have parentheses within the “Name” section; if these names are output, this would cause an error within Mach3. The command SUBSTITUTE = "({)} " would convert the () characters to {} characters, and avoid this error. For an example, see the file: Mach2_3_ATC_Arcs_inch.pp

INVERSE_TIME_MODE="YES"

Rotary: Enables / Disables output of the feedrate F in Inverse Time Feed Mode. In this mode, we're expected to complete a move in one divided by the F number of minutes.

In GCode, this would usually be a G93 to switch on Inverse Time Mode, or a G94 to set Units per Minutes mode.

LASER_SUPPORT = "YES"

Indicates that this post-processor supports laser toolpaths (if the Laser Module is installed).

MIN_ARC_RADIUS = 0.01

Optional minimum arc radius. Arcs which have a radius smaller than this value will be replaced with a single straight line move.

MAX_ARC_RADIUS = 1000.0

Optional maximum arc radius. Arcs which have a radius greater than this value will be polygonized.

POST_BASE

This is a no longer supported way of inheriting the content of another post-processor. See the POST_BASE Migration page for more details.

Tape Splitting Support

A section that describes how a long toolpath output will be split:

TAPE_SPLITTING=MAX_NUM_LINES LINE_TOL "FILENAME_FORMAT" START_INDEX INDEX_ON_FIRST_FILE

For example a command of:

TAPLE_SPLITTING=1000 100 "%s_%d.tap" 1 "YES"

would lead to...

Output will be split into multiple files of a maximum of 1000 lines (+ however many lines in there are within the footer section of the post processor), if a retract move exists after line 900 (1000 – 100), the file will be split at that move. If the file was called "toolpath" the split files would be named toolpath_1.tap, toolpath_2.tap etc. The first toolpath output will be "toolpath_ 1.tap" there will be no file named "toolpath" without an index number, (as INDEX_ON_FIRST_FILE= YES is used), unless the file was less than 1000 lines long, in which case the file would not be split.

Note

Some controllers that require NC files to be split, also have limitations on the number of characters within a filename. For example they may require the file to be named with the MSDOS style 8.3 filename format. This should be considered when naming the output file.

Line Terminating Characters

LINE_ENDING="[13][12]"

Decimal values of the characters appended to each separate line of the post processed file. (Will usually be [13][10]) (Carriage return, line feed) for any controller that can read a windows or MSDOS format text file.

Block Numbering

If you wish to add line numbers to the output file, the current line number is added with the variable [N]. The behaviour of this line number variable is controlled by the following variables:

Statement

Result

LINE_NUMBER=0

Value at which the line numbering should start

LINE_NUMBER_INCREMENT=10

Incremental value between line numbers

LINE_NUMBER_MAXIMUM=99999

The maximum line number to output, before cycling to the LINE_NUMBER_START value again.

Important - Some controllers have a limit to the number of lines that can be displayed on the control

Variables

Variable Name

Output using

Value

Example File

FEED_RATE

[F]

Current Feed Rate.

Mach2_3_ATC_Arcs_inch.pp

CUT_RATE

[FC]

Current Cut Feed Rate.

CNCShark-USB_Arcs_inch.pp

PLUNGE_RATE

[FP]

Current Plunge Feed Rate.

CNCShark-USB_Arcs_inch.pp

SPINDLE_SPEED

[S]

Current Spindle Speed in R.P.M.

GCode_arc_inch.pp

POWER

[P]

Current power setting for jet-based tools (e.g. lasers)

grbl_mm.pp

TOOL_NUMBER

[T]

Current Tool Number.

Mach2_3_ATC_Arcs_inch.pp

PREVIOUS_TOOL_NUMBER

[TP]

Previous Tool Number.

NC-Easy.pp

LINE_NUMBER

[N]

Line Number.

Mach2_3_ATC_Arcs_inch.pp

TOOL_NAME

[TOOLNAME]

Name of Current Tool.

MaxNC_inch.pp

TOOL_NOTES

[TOOL_NOTES]

Text from Note field in ToolDB for current tool

Busellato_Jet3006_arc_inch.pp

TOOLPATH_NAME

[TOOLPATH_NAME]

Name of Current Toolpath.

Viccam_ATC_Arcs_inch.pp

TOOLPATH_FILENAME

[TP_FILENAME]

Filename (Produced by “Save Toolpath(s)”).

ez-Router_inch.pp

TOOLPATH_DIR

[TP_DIR]

Folder Toolpath File was saved to.

Woodp_arc_mm.pp

TOOLPATH_EXTENSION

[TP_EXT]

Toolpath File Extension.

TekcelE_Arc_ATC_3D.pp

TOOLPATH_PATHNAME

[PATHNAME]

Toolpath Folder Pathname.

WinPC-NC_ATC_Arcs_mm.pp

X_POSITION

[X]

Current coordinate of tool position in X axis.

GCode_arc_inch.pp

Y_POSITION

[Y]

Current coordinate of tool position in Y axis.

GCode_arc_inch.pp

Z_POSITION

[Z]

Current coordinate of tool position in Z axis.

GCode_arc_inch.pp

A_POSITION

[A]

Current coordinate of tool position in A axis.

ARC_CENTRE_I_INC_POSITION

[I]

Arc centre in X Axis (relative to last X,Y position).

Mach2_3_ATC_Arcs_inch.pp

ARC_CENTRE_J_INC_POSITION

[J]

Arc centre in Y Axis (relative to last X,Y position).

Mach2_3_ATC_Arcs_inch.pp

ARC_CENTRE_I_ABS_POSITION

[IA]

Arc centre in X Axis (absolute coordinates).

Isel_arc_mm.pp

ARC_CENTRE_J_ABS_POSITION

[JA]

Arc centre in Y Axis (absolute coordinates).

Isel_arc_mm.pp

ARC_START_X_POSITION

[ArcStartX]

Start position of an arc in X axis.

TextOutput_Arcs_mm.pp

ARC_START_Y_POSITION

[ArcStartY]

Start position of an arc in Y axis.

TextOutput_Arcs_mm.pp

ARC_MID_X_POSITION

[ArcMidX]

Mid-point of arc in X (absolute coordinates).

TextOutput_Arcs_mm.pp

ARC_MID_Y_POSITION

[ArcMidY]

Mid-point of arc in Y (absolute coordinates).

TextOutput_Arcs_mm.pp

ARC_MID_X_INC_POSITION

[ArcMidXI]

Mid-point of arc in X (incremental coordinates).

TextOutput_Arcs_mm.pp

ARC_MID_Y_INC_POSITION

[ArcMidYI]

Mid-point of arc in Y (incremental coordinates).

TextOutput_Arcs_mm.pp

ARC_RADIUS

[Radius]

The radius of an arc.

Bosch_ATC_Arcs_mm.pp

ARC_ANGLE

[Angle]

The angle of an arc.

Generic HPGL_Arcs.pp

X_HOME_POSITION

[XH]

Home tool position for X axis.

CAMTech_CMC3_mm.pp

Y_HOME_POSITION

[YH]

Home tool position for Y axis.

CAMTech_CMC3_mm.pp

Z_HOME_POSITION

[ZH]

Home tool position for Z axis.

CAMTech_CMC3_mm.pp

SAFE_Z_HEIGHT

[SAFEZ]

Safe Z Height / Rapid Clearance Gap.

EMC2 Arcs(inch)(*.ngc)

WRAP_DIAMETER

[WRAP_DIA]

Diameter of cylinder that axis is wrapped around.

Mach2_3_WrapY2A_ATC_Arcs_mm.pp

X_LENGTH

[XLENGTH]

Length of material in X.

Mach2_3_ATC_Arcs_inch.pp

Y_LENGTH

[YLENGTH]

Length of material in Y.

Mach2_3_ATC_Arcs_inch.pp

Z_LENGTH

[ZLENGTH]

Length of material in Z.

Mach2_3_ATC_Arcs_inch.pp

X_MIN

[XMIN]

Minimum value of material in X.

MaxNC_inch.pp

Y_MIN

[YMIN]

Minimum value of material in Y.

MaxNC_inch.pp

Z_MIN

[ZMIN]

Minimum value of material in Z.

MaxNC_inch.pp

X_MAX

[XMAX]

Maximum value of material in X.

MaxNC_inch.pp

Y_MAX

[YMAX]

Maximum value of material in Y.

MaxNC_inch.pp

Z_MAX

[ZMAX]

Maximum value of material in Z.

MaxNC_inch.pp

X_ORIGIN_POS

[X_ORIGIN_POS]

Origin Position in X.

TextOutput_Arcs_mm.pp

Y_ORIGIN_POS

[Y_ORIGIN_POS]

Origin Position in Y.

TextOutput_Arcs_mm.pp

Z_ORIGIN

[Z_ORIGIN]

Z Zero Position, Table or Material Surface.

TextOutput_Arcs_mm.pp

XY_ORIGIN

[XY_ORIGIN]

X, Y Origin.

TextOutput_Arcs_mm.pp

TOOLS_USED

[TOOLS_USED]

List of tools used (In order of use).

Mach2_3_ATC_Arcs_inch.pp

TOOLPATHS_OUTPUT

[TOOLPATHS_OUTPUT]

List of toolpaths used in file (in order of use).

Mach2_3_ATC_Arcs_inch.pp

TOOLPATH_NOTES

[TOOLPATH_NOTES]

Toolpath Notes (Toolpath Control form).

Mach2_3_ATC_Arcs_inch.pp

FILE_NOTES

[FILE_NOTES]

File Notes (Edit > Notes).

Mach2_3_ATC_Arcs_inch.pp

TIME

[TIME]

File creation time.

Mach2_3_ATC_Arcs_inch.pp

DATE

[DATE]

File creation date.

Mach2_3_ATC_Arcs_inch.pp

DWELL_TIME

[DWELL]

Dwell time in seconds when drilling.

Mach2_3_Arcs_inch.pp

PRODUCT

[PRODUCT]

Name of the product used to output file, including version number.

TOOL_DIAMETER

[TDIA]

Tool diameter.

INVERSE_TIME

[FI]

Rotary: Current Inverse Time Rate

AvidCNC_WrapX2A_G93_inch.pp

Format of Variables

Values for tool position, feed rates, spindle speeds etc. are inserted into the file using variables. Variables are used throughout the file; the variables are replaced with the current value for that item when the file is post processed. For example, the current X, Y and Z tool positions at any time, are inserted into the file by using the variable output, [X], [Y] and [Z] respectively.

Write variable names in upper case letters for clarity.

A Variable is formatted as follows:

VAR VARIABLE = [VO|WO|CS|VF|MX]

where

  • VO = Variable output for example X, XF or F.
  • WO = When output, A=Always, C=Only when changed.
  • CS = Character string output before value .
  • VF = Value format, determines the format that the value is output with.
  • MX = Multiplier Value.

A typical variable

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

VAR

Z_HOME_POSITION

=

[

ZH

|

A

|

Z

|

F

1.0

|

-1

]

  1. VAR - This line is a Variable.
  2. Variable Name.
  3. Equals Sign.
  4. Open Square bracket - (start of variable formatting parameters).
  5. Variable label - i.e. label that is substituted with the variable value.
  6. Vertical Bar - Parameter separator.
  7. A = Always output value, C = Only output value when it changes
  8. Vertical Bar - Parameter separator.
  9. Character string to print before variable value.
  10. Vertical Bar - Parameter separator.
  11. Optional Format Flags - for details see below.
  12. Value Format - units and number of decimal places to output.
  13. Vertical Bar - Parameter separator.
  14. Output multiplier - for details see below.
  15. Close Square Bracket - End of formatting parameters.

Formatting the Output Value

The values format string should be formatted as follows:

FORMAT_FLAGS FIELD_WIDTH DECIMAL_SEPARATOR DECIMAL_PLACES

The format flags are optional and only needed by a small number of controllers they will be described shortly.

Field Width The Field width represents the minimum number of characters that are output. The field width is usually set to “1” a value greater than 1 is typically only required if a controller expects to see a fixed number of characters for the value. If this is the case, a number greater than 1 can be entered. The number entered will ensure that that number of characters is output. The number that represents the field width includes the full floating-point number for the output value, (including the decimal separator character).

Decimal Separator The decimal separator character is almost always just a period character, but there are some controllers that expect to see a comma character. (For an example of a post processor that does not use a period character, see the file: Heidenhain_inch.pp)

Decimal Places The number of decimal places output following the decimal separator. The values are often set at 3 for controllers operating in Metric, or 4 for controllers operating in Inches.

Optional Format Flags

The output values can be further modified by using the optional format flags:

Flag

Function

Default (without flag)

-

Left Justify the output

Values are right justified

+

Prefix the value with '+' or '-'

Only negative values are prefixed

0

If value has fewer characters than the set minimum, the value is prefixed with zeroes

Values is prefixed with blanks spaces

#

Values is always output with a separator character ( in practice this would only change the output value if the value is set to output integer values only)

When output is set to integer only, separator charactor is not appended to value.

Default Formatting For Variables

Most variables have a default format; (shown below) to set a different format for a variable, enter the line below in your post processor and alter the parameters to suit your controller.

Default

Example

VAR LINE_NUMBER = [N|A||1.0]

VAR LINE_NUMBER = [N|A|N|1.0]

The line number will always be output. An 'N' character will be inserted before the line number. It will be output as an integer number

VAR SPINDLE_SPEED = [S|A||1.0]

VAR SPINDLE_SPEED = [S|A|S|1.0]

The spindle speed will always be output. An 'S' character will be inserted before the value and it will be output as an integer number.

VAR FEED_RATE = [F|A||1.0]

VAR FEED_RATE = [F|C|F|1.1|0.01666]

The feed rate will be output with an F character before the value, and will only be output when it changes. The value will be output to 1 decimal place

Note

In this format string there is an option extra parameter. This is the value multiplier.

VAR PLUNGE_RATE = [FP|A||1.0]

VAR PLUNGE_RATE = [FP|C|F|1.1|0.01666]

The plunge rate will be output with an F character before the value, and will only be output when it changes. The value will be output to 1 decimal place.

Note

In this format string there is an option extra parameter. This is the value multiplier.

VAR CUT_RATE = [FC|A||1.0]

VAR CUT_RATE = [FC|C|F|1.1|0.01666]

The cut rate will be output with an F character before the value, and will only be output when it changes. The value will be output to 1 decimal place.

Note

In this format string there is an option extra parameter. This is the value multiplier.

VAR X_POSITION = [X|A||1.0]

VAR Y_POSITION = [Y|A||1.0]

VAR Z_POSITION = [Z|A||1.0]

VAR X_POSITION = [X|A|X|1.3]

The position value will be output with an ‘X’ character before the value, the position will Always be output, and will be output to 3 decimal places, this would typically be suitable for a control that requires metric output.

If you wished to output the values to 4 decimal places as would be more typical for a controller operating in inches. You would format the line as follows.

VAR X_POSITION = [X|A|X|1.4]

VAR X_HOME_POSITION = [XH|A||1.0]

VAR Y_HOME_POSITION = [YH|A||1.0]

VAR Z_HOME_POSITION = [ZH|A||1.0]

VAR X_HOME_POSITION = [XH|A|X|1.3]

The home position value will be output with an ‘X’ character before the value, the position will Always be output, and will be output to 3 decimal places, this would typically be suitable for a control that requires metric output.

If you wished to output the values to 4 decimal places as would be more typical for a controller operating in inches. You would format the line as follows.

VAR X_HOME_POSITION = [XH|A|X|1.4]

VAR SAFE_Z_HEIGHT = [SAFEZ|A||1.3]

VAR SAFE_Z_HEIGHT = [SAFEZ|A|X|1.3|-1]

The value will be output with an ‘X’ character before the value, the position will Always be output, and will be output to 3 decimal places, this would typically be suitable for a control that requires metric output.

If you wished to output the values to 4 decimal places as would be more typical for a controller operating in inches. You would format the line as follows.

VAR SAFE_Z_HEIGHT = [SAFEZ|A|X|1.4|-1]

Note

In this format string there is an option extra parameter. This is the value multiplier.

VAR ARC_START_X_POSITION = [ArcStartX|A||1.3]

VAR ARC_START_Y_POSITION = [ArcStartY|A||1.3]

VAR ARC_START_Y_POSITION = [ArcStartY|A|Y|1.3]

The value will be output with an ‘Y’ character before the value, the value will Always be output, and will be output to 3 decimal places, this would typically be suitable for a control that requires metric output.

If you wished to output the values to 4 decimal places as would be more typical for a controller operating in inches. You would format the line as follows.

VAR ARC_START_Y_POSITION = [ArcStartY|A|Y|1.4]

VAR ARC_CENTRE_I_INC_POSITION = [I|A||1.3]

VAR ARC_CENTRE_J_INC_POSITION = [J|A||1.3]

VAR ARC_CENTRE_J_INC_POSITION = [J|A|J|1.3]

The value will be output with a ‘J’ character before the value, the value will Always be output, and will be output to 3 decimal places, this would typically be suitable for a control that requires metric output.

If you wished to output the values to 4 decimal places as would be more typical for a controller operating in inches. You would format the line as follows.

VAR ARC_START_Y_POSITION = [J|A|J|1.4]

VAR ARC_CENTRE_I_ABS_POSITION = [IA|A||1.3]

VAR ARC_CENTRE_J_ABS_POSITION = [JA|A||1.3]

VAR ARC_CENTRE_J_ABS_POSITION = [JA|A|J|1.3|-1]

The value will be output with a ‘J’ character before the value, the value will Always be output, and will be output to 3 decimal places, this would typically be suitable for a control that requires metric output.

If you wished to output the values to 4 decimal places as would be more typical for a controller operating in inches. You would format the line as follows.

VAR ARC_CENTRE_J_ABS_POSITION = [JA|A|J|1.4|-1]

Note

In this format string there is an option extra parameter. This is the value multiplier.

VAR ARC_MID_X_POSITION = [ArcMidX|A||1.3]

VAR ARC_MID_Y_POSITION = [ArcMidY|A||1.3]

VAR ARC_MID_X_POSITION = [ArcMidX|A|X|1.3]

The value will be output with a ‘X’ character before the value, the value will Always be output, and will be output to 3 decimal places, this would typically be suitable for a control that requires metric output.

If you wished to output the values to 4 decimal places as would be more typical for a controller operating in inches. You would format the line as follows.

VAR ARC_MID_X_POSITION = [ArcMidX|A|X|1.4]

VAR ARC_MID_X_INC_POSITION = [ArcMidXI|A||1.3]

VAR ARC_MID_Y_INC_POSITION = [ArcMidYI|A||1.3]

VAR ARC_MID_X_INC_POSITION = [ArcMidXI|A|X|1.3]

The value will be output with a ‘X’ character before the value, the value will Always be output, and will be output to 3 decimal places, this would typically be suitable for a control that requires metric output.

If you wished to output the values to 4 decimal places as would be more typical for a controller operating in inches. You would format the line as follows.

VAR ARC_MID_X_INC_POSITION = [ArcMidXI|A|X|1.4]

VAR ARC_RADIUS = [Radius|A||1.3]


VAR ARC_RADIUS = [Radius|A|R|1.3]

The value will be output with a ‘R’ character before the value, the value will Always be output, and will be output to 3 decimal places, this would typically be suitable for a control that requires metric output.

If you wished to output the values to 4 decimal places as would be more typical for a controller operating in inches. You would format the line as follows.

VAR ARC_RADIUS = [Radius|A|R|1.4]

VAR ARC_ANGLE = [Angle|A||1.3]

VAR ARC_ANGLE = [Angle|A|A|1.3]

The value will be output with a ‘A’ character before the value, the value will Always be output, and will be output to 3 decimal places, this would typically be suitable for a control that requires metric output.

If you wished to output the values to 4 decimal places as would be more typical for a controller operating in inches. You would format the line as follows.

VAR ARC_ANGLE = [Angle|A|A|1.4]

VAR X_LENGTH = [XLENGTH|A||1.3]

VAR Y_LENGTH = [XLENGTH|A||1.3]

VAR Z_LENGTH = [XLENGTH|A||1.3]

VAR X_MIN = [XMIN|A||1.3]

VAR Y_MIN = [YMIN|A||1.3]

VAR Z_MIN = [ZMIN|A||1.3]

VAR X_MAX = [XMAX|A||1.3]

VAR Y_MAX = [YMAX|A||1.3]

VAR Z_MAX = [ZMAX|A||1.3]

VAR X_MIN = [XMIN|A|X|1.3]

The value will be output with an ‘X’ character before the value, the value will Always be output, and will be output to 3 decimal places.

Multiplier Value

The multiplier value is used to multiply the value to output a different value. Common reasons for wishing to do this are:

To convert the default output of an Inch post processor, from inches per minute to inches per second, (Multiply by 0.01666).

To convert the default output of a Metric post processor, from mm per minute to mm per second, (Multiply by 0.0166).

To make positive values negative (and vice versa), (Multiply by -1).

To convert the output of an arc angle from radians to degrees, (Multiply by 57.2957795).

To multiply or divide by a fixed factor (I.E. produce 1:4 scale model, Multiply by 0.25)

Post Processor Blocks

HEADER

+---------------------------------------------------

+ Commands output at the start of the file

+---------------------------------------------------

begin HEADER

"Commands"

The header is the location for the instructions that are output once, at the start of the file, these generally setup modal commands for the controller.

For example, the Header might contain a command to display the filename on the controller and a series of “G-Codes” to set the machine up, for instance G20 to tell the control that the moves are in inches, or G21 to tell the control that the moves are in millimetres.

Variables that you might wish to be within the header section, could include:

Information about the Material Block

  • Minimum extent in X = [XMIN]
  • Minimum extent in Y = [YMIN]
  • Minimum extent in Z = [ZMIN]
  • Maximum extent in X = [XMAX]
  • Maximum extent in Y = [YMAX]
  • Maximum extent in Z = [ZMAX]
  • Length of material in X = [XLENGTH]"
  • Length of material in Y = [YLENGTH]"
  • Depth of material in Z = [ZLENGTH]"

Home Position Information

  • Home X = [XH]
  • Home Y = [YH]
  • Home Z = [ZH]
  • Rapid clearance gap or Safe Z = [SAFEZ]

Details of the first tool to be used.

  • Tool Number = [T]
  • Tool name = [TOOLNAME]

Initial cutting speeds

  • Feed Rate used for cutting and plunging into the material = [F]
  • Feed Rate whilst tool is Cutting the material = [FC]
  • Feed Rate whilst tool is plunging into the material = [FP]

Actual values depend on the UNITS set (see Global File Settings) Defaults are either MM/Minute or Inches/Minute, but the output can be changed to suit by setting the appropriate “VAR FEED_RATE” formatting.

Spindle Speed

  • Spindle Speed = [S] R.P.M.

SPINDLE_ON

+---------------------------------------------------

+ Commands output at when the Spindle first turns on.

+---------------------------------------------------

begin SPINDLE_ON

"Commands"

The Spindle On section was added to allow for Spindle and Laser operations in the same Post Processor instead of having the Spindle on command as part of the header.

Typically this will just have the Spindle on command (M03 for example) but can also include a Spindle speed command [S]

TOOLCHANGE

+---------------------------------------------------

+ Commands output at toolchange

+---------------------------------------------------

begin TOOLCHANGE

"Commands"

Commands that are output when a change of tool is required. Variables and commands that might be used include:

  • Previous Tool Number = [TP]
  • Tool Number = [T]
  • Tool name = [TOOLNAME]
  • Toolpath Name = [TOOLPATH_NAME]
  • Toolpath Pathname = [PATHNAME]
  • Toolpath File Name = [TP_FILENAME]
  • Toolpath File Directory = [TP_DIR]
  • Toolpath Extension = [TP_EXT]
  • Spindle Speed = [S] R.P.M.
  • M3 M Code often used to turn spindle on (Clockwise rotation).
  • M5 M Code often used to turn spindle off.

NEW_SEGMENT

+---------------------------------------------------

+ Commands output for a new segment ( new toolpath with current toolnumber)

+---------------------------------------------------

begin NEW_SEGMENT

"Commands"

For an example of a NEW_SEGMENT section, see the file: Mach2_3_ATC_Arcs_inch.pp

Commands that are output when a new toolpath uses the currently selected tool, but perhaps a different spindle speed is required or the machine requires additional instructions.

Any commands that are used in the NEW_SEGMENT section should not need to be included within the TOOLCHANGE section as a tool-change will also automatically call the instructions in the NEW_SEGMENT section.

Variables that are commonly used include.

  • Spindle Speed = [S] R.P.M.
  • M3 M Code often used to turn spindle on (Clockwise rotation).
  • M5 M Code often used to turn spindle off.

INITIAL_RAPID_MOVE

+---------------------------------------------------

+ Commands output for Initial rapid move

+---------------------------------------------------

begin INITIAL_RAPID_MOVE

"Commands"

For an example of a INITIAL_RAPID_MOVE section, see the file: Saom_OSAI_Arc_inch.pp

Commands that are output when the very first rapid move is made following the header or a tool change. A Section not used for most posts, but useful if the very first rapid move, needs to output different information to subsequent rapid moves. This section is sometimes required for HPGL variants.

RAPID_MOVE

+---------------------------------------------------

+ Commands output for rapid moves.

+---------------------------------------------------

begin RAPID_MOVE

"Commands"

Commands that are output when rapid moves are required.

FIRST_FEED_MOVE

+---------------------------------------------------

+ Commands output for first feed rate move in a series of feed moves.

+---------------------------------------------------

begin FIRST_FEED_MOVE

"Commands"

This section is commonly used where controllers require that the Feed Rate is set at the first feed move, this rate would then be used for subsequent cut moves.

For an example of a FIRST_FEED_MOVE section, see the file: Axyz_Arcs_ATC_inch.pp

FEED_MOVE

+---------------------------------------------------

+ Commands output for feed rate moves

+---------------------------------------------------

begin FEED_MOVE

"Commands"

Used to output information required at every move, or all feed moves except for the First Feed Move, if a FIRST_FEED_MOVE section is present within the post processor.

FIRST_CW_ARC_MOVE

+---------------------------------------------------

+ Commands output for the first clockwise arc move in a series of cw arc moves

+---------------------------------------------------

begin FIRST_CW_ARC_MOVE

"Commands"

Similar to the FIRST_FEED_MOVE section, but for clockwise arc segments. This section is commonly used where controllers require that the Feed Rate is set for the first arc segment, this rate would then be used for subsequent arc moves in the same direction.

For an example of a FIRST_CW_ARC_MOVE section, see the file: Centroid_Arcs_inch.pp

FIRST_CW_HELICAL_ARC_PLUNGE_MOVE

+---------------------------------------------------

+ Commands output for clockwise helical arc plunge move in a series of moves.

+---------------------------------------------------

begin FIRST_CW _HELICAL_ARC_MOVE

"Commands"

Similar to the FIRST_CW_ARC_MOVE section, but for moves that also move in Z. Feed rates output are from Plunge rate set for the tool.

For an example of a CW_HELICAL_ARC_PLUNGE_MOVE section, see the file: Mach2_3_ATC_Arcs_inch.pp

FIRST_CW_HELICAL_ARC_MOVE

+---------------------------------------------------

+ Commands output for clockwise helical arc move in a series of moves.

+---------------------------------------------------

begin FIRST_CW_HELICAL_ARC_MOVE

"Commands"

Similar to the FIRST_CW_ARC_MOVE section, but for moves that also move in Z.

For an example of a CW_HELICAL_ARC_MOVE section, see the file: Mach2_3_ATC_Arcs_inch.pp

CW_ARC_MOVE

+---------------------------------------------------

+ Commands output for clockwise arc moves.

+---------------------------------------------------

begin CW_ARC_MOVE

"Commands"

Similar to the FEED_MOVE section, but for clockwise arc segments.

For an example of a CW_ARC_MOVE section, see the file: Centroid_Arcs_inch.pp

CW_HELICAL_ARC_MOVE

+---------------------------------------------------

+ Commands output for clockwise helical arc moves

+---------------------------------------------------

begin CW_HELICAL_ARC_MOVE

"Commands"

Similar to the CW_ARC_MOVE section, but for moves that also move in Z.

For an example of a CW_HELICAL_ARC_MOVE section, see the file: Mach2_3_ATC_Arcs_inch.pp

FIRST_CCW_ARC_MOVE

+---------------------------------------------------

+ Commands output for the first counter-clockwise arc move in a series of ccw arc moves.

+---------------------------------------------------

begin FIRST_CCW_ARC_MOVE

"Commands"

Similar to the FIRST_FEED_MOVE section, but for counter-clockwise arc segments. This section is commonly used where controllers require that the Feed Rate is set for the first arc segment, this rate would then be used for subsequent arc moves in the same direction.

For an example of a FIRST_CCW_ARC_MOVE section, see the file: Centroid_Arcs_inch.pp

FIRST_CCW_HELICAL_ARC_PLUNGE_MOVE

+---------------------------------------------------

+ Commands output for counter- clockwise helical arc plunge move in a series of moves.

+---------------------------------------------------

begin FIRST_CCW_HELICAL_ARC_MOVE

"Commands"

Similar to the FIRST_CCW_ARC_MOVE section, but for moves that also move in Z. Feed rates output are from Plunge rate set for the tool.

For an example of a CCW_HELICAL_ARC_PLUNGE_MOVE section, see the file: Mach2_3_ATC_Arcs_inch.pp

FIRST_CCW_HELICAL_ARC_MOVE

+---------------------------------------------------

+ Commands output for first counter-clockwise helical arc move in a series of moves.

+---------------------------------------------------

begin FIRST_CCW_HELICAL_ARC_MOVE

"Commands"

Similar to the FIRST_CCW_ARC_MOVE section, but for moves that also move in Z.

For an example of a CCW_HELICAL_ARC_MOVE section, see the file: Mach2_3_ATC_Arcs_inch

CCW_ARC_MOVE

+---------------------------------------------------

+ Commands output for counter-clockwise arc moves.

+---------------------------------------------------

begin CCW_ARC_MOVE

"Commands"

Similar to the FEED_MOVE section, but for counter-clockwise arc segments.

For an example of a CCW_ARC_MOVE section, see the file: Centroid_Arcs_inch.pp

CCW_HELICAL_ARC_MOVE

+---------------------------------------------------

+ Commands output for counter-clockwise helical arc moves

+---------------------------------------------------

begin CCW_HELICAL_ARC_MOVE

"Commands"

Similar to the CCW_ARC_MOVE section, but for moves that also move in Z.

For an example of a CCW_HELICAL_ARC_MOVE section, see the file: Mach2_3_ATC_Arcs_inch.pp

FOOTER

The footer is the section of the post processor for instructions that are sent to the controller at the end of a file. These might be instructions to return the tool to the home position, switch the spindle off or switch the power off to the drives.

+---------------------------------------------------

+ Commands output at the end of the file

+---------------------------------------------------

begin FOOTER

"Commands"

Variables that are commonly used include.

  • G00 [XH] [YH] [ZH] Rapid to X,Y,Z Home position.
  • M05 M Code often used to turn spindle off.
  • M30 M Code often used to signify the end of the file.

Jet Support Sections

These sections are for supporting jet-based cutting tools such as lasers, plasmas and waterjets.

JET_TOOL_POWER

+---------------------------------------------------

+ Commands output when the cutter's power is set

+---------------------------------------------------

begin JET_TOOL_POWER

"Commands"

For an example of a JET_TOOL_POWER section, see the file: Grbl.pp

Commands that are output when the power setting associated with a laser 'tool' is issued.

JET_TOOL_ON

+---------------------------------------------------

+ Commands output when the cutter's power is turned ON

+---------------------------------------------------

begin JET_TOOL_ON

"Commands"

For an example of a JET_TOOL_ON section, see the file: Grbl.pp

Commands that are output when the jet tool is powered on. This is broadly equivalent to SPINDLE_ON, but is typically issued a the end of a plunge move when the jet cutter is already at the intended cutting height, instead of before the plunge move as required by a spindle based cutter.

JET_TOOL_OFF

+---------------------------------------------------

+ Commands output when the cutter's power is turned OFF

+---------------------------------------------------

begin JET_TOOL_OFF

"Commands"

For an example of a JET_TOOL_OFF section, see the file: Grbl.pp

Commands that are output when the jet tool is powered off.

Other Less Frequently Used Sections

FEED_RATE_CHANGE

+---------------------------------------------------

+ Commands output when feed rate changes

+---------------------------------------------------

begin FEED_RATE_CHANGE

"Commands"

For an example of a FEED_RATE_CHANGE section, see the file: Gravograph_IS200.pp

Commands that are output when the feed rate is changed. This section is not often used as many controllers will accept feed rate changes appended to other instructions, but sometimes used with HPGL variants.

FIRST_PLUNGE_MOVE

+---------------------------------------------------

+ Commands output for the First Plunge Move, in a series of plunge moves.

+---------------------------------------------------

begin FIRST_PLUNGE_MOVE

"Commands"

For an example of a FIRST_PLUNGE_MOVE section, see the file: Holz-Her_7123_ATC_Arcs_mm.pp

This section is often used on machines that do not fully support simultaneous 3D movement, for example the Z Axis cannot travel as fast as the X & Y Axis. Another use of this section might be to include commands that you wish to output whenever the first plunge move occurs. For example, commands to switch on a plasma torch. Multiple plunges would normally only be output within a ramping move, so this command would be useful for controls that automatically rapid between cuts and where instructions such as revised speeds and feed need to be specified on the first plunge move and these instructions are not required for subsequent plunge moves within the ramping operation.

PLUNGE_MOVE

+---------------------------------------------------

+ Commands output for Plunge Moves

+---------------------------------------------------

begin PLUNGE_MOVE

"Commands"

For an example of a PLUNGE_MOVE section, see the file: Burny_arc_inch.pp

This section is often used on machines that do not fully support simultaneous 3D movement, for example the Z Axis cannot travel as fast as the X & Y Axis. Another use of this section might be to include commands that you wish to output whenever a plunge move occurs. For example, commands to switch on a plasma torch.

RETRACT_MOVE

+---------------------------------------------------

+ Commands output for Retract Moves

+---------------------------------------------------

begin RETRACT_MOVE

"Commands"

For an example of a RETRACT _MOVE section, see the file: Burny_arc_inch.pp

A use of this section might be to include commands to switch off a plasma torch.

DWELL_MOVE

+---------------------------------------------------

+ Commands output for Dwell Commands

+---------------------------------------------------

begin DWELL_MOVE

"Commands"

For an example of a DWELL_MOVE section, see the file: Mach2_3_Arcs_inch.pp

This command was introduced for VCarve Pro 7.5 and Aspire 4.5 and later. It is used with a drilling toolpath, when a Dwell time has been specified in the program. If this section is not defined any dwell commands are ignored, but the rest of the drilling toolpath will be output as normal. The DWELL variable is documented in the Variables section.

Special Characters

Most characters can be output within the confines of the post processor output statements; however, certain characters have special meaning within the post processor configuration files and cannot be output directly.

These are, the Square brackets [ ], and the double quote character “ It may be the case that you need to output one of these characters within your output file.

If you wish to output one of these characters, you can do so by enclosing the decimal equivalent of the ASCII value of the special character that you wish to output, within square brackets, as shown below. This method can also be used to insert any ASCII value, even non-printable characters.

  • [91] Outputs a left hand square bracket.
  • [93] Outputs a right hand square bracket.
  • [34] Outputs a double quote character.
  • [13] Outputs a carriage return.
  • [10] Outputs a line feed.

For an example of a file that uses special characters, please see: Biesse_Rover_Arcs_mm.pp

Example: Adding Tool-Change Commands

For the majority of cases, the quickest and easiest way of producing a customised post processor to suit your controller, will be to edit an existing post processor. To do this, first create a simple test file that you can use to test the output of your post processor. A simple file might consist of a line, and two circles. Produce a shallow cutting profile toolpaths for each of the shapes, machining “On” the line, “Inside” one of the circles and “Outside” the other circle.

Save a toolpath using your base post processor and take a look at it using your favourite text editor. Below is an example of the test file posted using the "G-Code Arcs (inch) (*.tap)" post processor The example below is displayed using the popular Notepad ++ editor.

For our example, we will add a tool-change section to this post processor. First, make a safe copy of the post processor that you are customising. If you open the post processor that you are editing in a text editor, you will be able to see the lines of text within the post processor that formatted the output of your test file.

The PostP folder can be reached from within the application, by clicking “File > Open Application Data Folder” from the main menu of the application.

To add a Tool Change section to the post processor, you will need to consult the documentation for the control of the machine tool (or control software). For this example, we will assume that the instructions that you need to add to perform a tool change for your particular machine tool are as follows:

  • M05 Instruction to turn off the spindle prior to tool change.
  • M0 Instruction to return existing tool to tool holder.
  • M06TTool_Number n Instruction to select new tool Tool_Number n
  • G43HTool_Number n Instruction for control to use Tool length offset for tool n
  • Sxxx M03 Set spindle speed to xxx; Turn on spindle (clockwise rotation).

Edit the post processor using your favourite text editor.

If the operating system on your computer is Microsoft Vista and User Access Control is enabled, copy or move the Post Processor that you are editing from the PostP folder to a folder below your user area.

The first thing that you should edit within the file is the History Comment section; So that you have a record of the changes.

Next edit the POST_NAME to reflect that this post processor outputs automatic tool change (ATC) commands, the new post will be displayed as “G-Code ATC Arcs (inch)(*.tap)” in the list of post processors.

Next add a Tool Change Section that will include the instructions. The location of the new section within the file is not important, but a good place to insert it is between the Header and Rapid Move sections.

Add some comment lines at the top of the new section, (beginning with the + character) to describe the section and make the file as a whole, easier to read. Next enter the line “begin TOOLCHANGE” to instruct the post processor that the following instructions are to be output for every tool-change, (except the initial tool selection, the commands for these are contained within the header section).

The next step is to enter in the instructions that you require, enclosed within double quote marks. The “[T]” on the third and fourth instruction lines of our example, will be substituted with the tool number when the file is post processed; The “[S]” on the fifth line will be substituted with the spindle speed for the tool.

Finally you will need to save the changes to the file, as you have changed the POST_NAME, save the file using a new name, for example “GCODE_ATC_Arcs_inch.pp”

If the operating system on your computer is Microsoft Windows 7 or Microsoft Vista and User Access Control is enabled, copy the file that you have edited back to the “PostP” folder.

To test the new post processor, If the software is running, restart the software.

If there are any syntax errors with your post processor, an error similar to the picture below will be displayed as the software starts, the post processor that you have edited will not appear in the drop down list of post processor configuration files. You will need to rectify any errors and restart the software.

If there are no errors displayed when the software is started, open your test file and save one or more of your test toolpaths.

Select the post processor from the drop down list of post processor configuration and press the “Save Toolpath(s)” button.

Take a look at the file that you have just saved in a text editor.

If the content of the file looks good, try the file on your machine.

Please take all necessary precautions when running the output from a modified post processor for the first time.

Example: Changing the File Extension

The File extension that is automatically produced by the post processor can be changed within the “Save As” dialog box, when you click on the “Save Toolpath(s)” button.

However, rather than change the file extension every time. It is more convenient to permanently change the file extension produced by the post processor.

To do this:

Make a safe copy of the post processor that you wish to edit.

The post processor configuration files are located in the “PostP” folder of the product installation folder and have a “.PP” file extension. For Aspire version 2, the default location of the PostP folder is: “C:\Program Files\Aspire V2.0\PostP” the location of the PostP folder will be different depending on the product installed and whether the software was installed to a custom location when the software was installed.

Edit the post processor using your favourite text editor.

If the operating system on your computer is Microsoft Windows 7 or Microsoft Vista and User Access Control is enabled, copy or move the Post Processor that you are editing from the PostP folder to a folder below your user area.

Look for the following two lines within the post processor configuration file that begin with:

POST_NAME =

FILE_EXTENSION =

and alter these accordingly.

For example, if you wished to change the file extension produced by the “G Code ATC (inch)(*.tap)” post processor from “.tap” to “.nc”. Then edit the lines:

POST_NAME = "G Code ATC (inch) (*.tap)"

FILE_EXTENSION = "tap"

to make them read:

POST_NAME = "G Code ATC (inch) (*.nc)"

FILE_EXTENSION = "nc"

Save the changes to your file. If the operating system on your computer is Microsoft Windows 7 or Microsoft Vista and User Access Control is enabled, copy the file that you have edited back to the “PostP” folder.

To test the new post processor, If the software is running, restart the software. If there are any syntax errors with your post processor, an error similar to the picture below will be displayed as the software starts, the post processor that you have edited will not appear in the drop down list of post processor configuration files. You will need to rectify any errors and restart the software.

If there are no errors displayed when the software is started, open your test file and save one or more of your test toolpaths.

Select the post processor from the drop down list of post processor configuration and press the “Save Toolpath(s)” button.

Take a look at the file that you have just saved in a text editor.

If the content of the file looks good, try the file on your machine.

Please take all necessary precautions when running the output from a modified post processor for the first time.

Tips And Tricks

1. Always make a safe copy of the post processor that you are editing, in case you need to start again from scratch.

2. If using a word processor program, such as Microsoft Word, to edit a post processor, make sure that the file is saved as plain text. The file should not contain formatting information.

3. If editing post processors on a computer that runs Microsoft Windows 7 or Microsoft Vista, do not edit the files directly within the “Program Files\Product folder\PostP” folder. Always edit the file within your user area and copy the edited file to “Program Files\Product folder\PostP”.

4. Use comments when you make changes, a comment is a text that follows a + or a | character. Comments will not be acted upon by the program but can help in documenting changes that you have made and make those changes understandable in the future.

5. All Instruction lines must be contained within quote marks.

6. If possible, use a text editor that makes use of line numbers; This will make it easier to debug the post processor if there are any errors in the file. The program will check the post processors in the PostP folder when the program starts. If syntax errors are present in the file, an error message will be displayed, showing the line number of the first error encountered.

7. Once you have successfully edited a post processor, make a safe copy of it. If you install a later version of the Vectric product that you are using, remember to copy your modified post processor to the PostP folder of the new version of the software. And select your modified post processor, the first time that you save a toolpath, (The software will remember your selection for subsequent actions).

8. If you install another version of the software or you upgrade the version of the software, remember to copy your safe copies of your edited post processors to the PostP folder of the new version. Ensure that you select the correct post processor the first time that you post process a file using the new version of the software.

9. For later versions of the software, ( V5.5 and above). The post processors should be accessed from within the application, by clicking “File > Open Application Data Folder\PostP folder.

10. A customized list of post processors can be created by copying only the post processors required to the “File > Open Application Data Folder\My_PostP folder. If any file with a .pp file extension exists in the “My_PostP” folder, then only the post processors that exist in the My_PostP folder will be displayed in the drop down list of post processors.