Rotary Post-processor for use with 4 axis AKG6090

This forum is for general discussion about Aspire
Post Reply
fordtman
Posts: 24
Joined: Fri Nov 25, 2016 11:04 am
Model of CNC Machine: AKG6090

Rotary Post-processor for use with 4 axis AKG6090

Post by fordtman »

I recently acquired an AccTek AKG6090 with an indexer that only allowed me to use either the X-axis or the A-axis but not independently. My configuration is AKG6090 CNC machine, Mach3 control software and Vectric Aspire (all the latest version). The CNC machine had 4 motor drivers one for each X, Y, Z and A (rotary) axes (the A and X-axis were cloned) so I rewired the drivers to make all 4 axes independent. The hardware worked extremely well but I also had to modify the software configuration. In this post I provide the detail of the Vectric PP and Mach 3 modifications in case someone is interested.

Problem 1 (Coordinated Linear Motion)

To get the A-axis to work properly when using the Wrapped Job Setup Gadget I had to change the Mach2_3_Wrap_X2A_ATC_mm.pp post-processor. The rotary axis was along the bed of the CNC machine so I was wrapping the X-axis around the Y-axis (therefore the Y-axis became the A-axis). The Mach2_3_Wrap_X2A_ATC_mm.pp post-processor supplied with Vectric translates the linear X-axis moves into angular moves around the A-axis and outputs the X-code commands as A-code commands, however it outputs the Y, Z, A axes on the same line. Because all code are on a single line Mach3 will co-ordinate the motion on these axes (co-ordinated linear motion) and the rotary axis turns at the same time as the Y and Z axes linear motion, which is not good when you are trying to use the Optimized Raster Rounding Toolpath Gadget. To overcome this I had to change the Vectric post-processor so that the A-axis motion was performed before the Y and Z linear motion. I also had to set the feed rate (F-code) at the same time as the A-axis motion. Here is the Altered rotary post-processor

Code: Select all

+================================================
+                                                
+ Mach2/3 - Vectric machine output configuration file   
+ Wraps X values around  the Y axis, values are output as A
+ Although  X values wrapped around  the Y axis would conventionally be
+ output as 'B' Moves; the current versions of Mach3 will not display 
+ B axis moves as rotary moves.
+ So many users configure the rotary axis as an A axis, regardless of the
+ actual orientation of the axis.
+ This post processor is suitable for Aspire =>2.1 / VCarve Pro =>5.1
+                                                
+================================================
+                                                
+ History                                        
+                                                
+ Who      When       What                         
+ ======== =========== ===========================
+ Mark     06/05/2009 Written
+ Mark     30/11/2009 Added TOOLPATHS_OUTPUT.
+ Brian    15/12/2009 Remove M05 from NEW_SEGMENT
+ Jim		1/4/2017 Separate the A-codes from the Y and Z codes (adapted from Mach2_3_Wrap_X2A_ATC_mm.pp)
+================================================

POST_NAME = "Mach3-WrapX2A(mm)(*.txt)"
FILE_EXTENSION = "txt"
UNITS = "MM"
DIRECT_OUTPUT = "Mach|Mach4.Document"
ROTARY_WRAP_X = "-A"
SUBSTITUTE = "({)}"

+------------------------------------------------
+    Line terminating characters                 
+------------------------------------------------

LINE_ENDING = "[13][10]"

+------------------------------------------------
+    Block numbering                             
+------------------------------------------------

LINE_NUMBER_START     = 0
LINE_NUMBER_INCREMENT = 10
LINE_NUMBER_MAXIMUM = 999999

+================================================
+                                                
+    Formating for variables                     
+                                                
+================================================

VAR LINE_NUMBER = [N|A|N|1.0]
VAR SPINDLE_SPEED = [S|A|S|1.0]
VAR FEED_RATE = [F|C|F|1.1]
VAR X_POSITION = [X|A|X|1.3]
VAR Y_POSITION = [Y|A|Y|1.3]
VAR Z_POSITION = [Z|A|Z|1.3]
VAR X_HOME_POSITION = [XH|A|X|1.3]
VAR Y_HOME_POSITION = [YH|A|Y|1.3]
VAR Z_HOME_POSITION = [ZH|A|Z|1.3]
VAR SAFE_Z_HEIGHT = [SAFEZ|A|Z|1.3]
VAR WRAP_DIAMETER = [WRAP_DIA|A||1.3]

+================================================
+                                                
+    Block definitions for toolpath output       
+                                                
+================================================

+---------------------------------------------------
+  Commands output at the start of the file
+---------------------------------------------------

begin HEADER

"( [TP_FILENAME] )"
"( File created: [DATE] - [TIME])"
"( for Mach2/3 from Vectric )"
"( Material Size)"
"( X= [XLENGTH], Z= [ZLENGTH])"
"( Diameter = [WRAP_DIA] mm)"  
"( X Values are wrapped around the Y axis )"
"( X Values are output as A )"
"([FILE_NOTES])"
"(Toolpaths used in this file:)"
"([TOOLPATHS_OUTPUT])"
"(Tools used in this file: )"
"([TOOLS_USED])"
"[N] G00G21G17G90G40G49G80"
"[N] G71G91.1"
"[N] T[T]M06"
"[N] G00G43[ZH]H[T]"
"[N] [S]M03"
"[N](Toolpath:- [TOOLPATH_NAME])"
"[N]([TOOLPATH_NOTES])"
"[N] G94"
"[N] [YH] [XH] [ZH] [F]"

+---------------------------------------------------
+  Commands output for rapid moves 
+  Separate X-codes (output as "A" codes) from Y & Z codes
+---------------------------------------------------

begin RAPID_MOVE

"[N] G00 [X]"
"[N] G00 [Y] [Z]"

+---------------------------------------------------
+  Commands output for the first feed rate move
+  Separate X-codes (output as "A" codes) from Y & Z codes
+  Apply Feed rate to X ("A") moves
+---------------------------------------------------

begin FIRST_FEED_MOVE

"[N] G1 [X] [F]"
"[N] G1 [Y] [Z]"

+---------------------------------------------------
+  Commands output for feed rate moves
+  Separate X-codes (output as "A" codes) from Y & Z codes
+---------------------------------------------------

begin FEED_MOVE

"[N] G1 [X]"
"[N] G1 [Y] [Z]"

+---------------------------------------------------
+  Commands output at toolchange
+---------------------------------------------------

begin TOOLCHANGE

"[N] T[T]M6"
"[N] ([TOOLNAME])"
"[N] G43H[T]"

+---------------------------------------------------
+  Commands output for a new segment - toolpath
+  with same toolnumber but maybe different feedrates
+---------------------------------------------------

begin NEW_SEGMENT

"[N] [S]M03"
"([TOOLPATH_NAME])"
"([TOOLPATH_NOTES])"

+---------------------------------------------------
+  Commands output at the end of the file
+---------------------------------------------------

begin FOOTER

"[N] G00 [ZH]"
"[N] G00 [YH] [XH]"
"[N] M09"
"[N] M30"
%
Problem 2

When using the Create Rounding Toolpath (Radial Method) which requires that the A-axis rotates through 360 degrees while cutting, Vectric software outputs code like the following:

N180(Toolpath:- Rounding Toolpath 2)
N190()
N200 G94
N210 Y0.000 A0.000 Z34.749 F1200.0
N220 G1 A0.000
N230 G1 Y0.000 Z21.832 F600.0
N240 G1 A360.000
N250 G1 Y0.000 Z21.832 F1200.0
N260 G1 A360.000
N270 G1 Y9.286 Z21.832
N280 G1 A0.000

With Mach3 this does not result in any A-axis movement because Mach3 assumes that 0 degrees is the same as 360 degrees and does not rotate the A-axis. To overcome this problem I also had to change the Mach3 Config->General Configuration (Rotational) setting and turn off "Rot 360 Rollover" and "Ang Short Rot on G0" parameters.

If the X-axis is wrapped around the Y-axis, similar changes would have to be made to the Mach2_3_Wrap_Y2A_ATC_mm.pp post-processor and the Mach3 configuration.

Hope this helps somebody.

Jim

Post Reply