Axiom Elite AR8 Post for Fusion 360

Axiom Elite AR8 Post for Fusion 360

Anonymous
Not applicable
5,156 Views
44 Replies
Message 1 of 45

Axiom Elite AR8 Post for Fusion 360

Anonymous
Not applicable

Hi Guys.

I am looking for a little help with a rather simple post for a newer  servo driven machine from Axiom.

I have found a post for the Axiom stepper versions, but the stepper and servo versions use different controllers.

The post I am wanting is for a simple 3 axis router. Sadly the HUST controller it uses will not support a tool change.

Not a deal killer, but wasn't mentioned anywhere before purchase.

The stepper version uses a DSP conroller and as mentioned there is one around for that type.

 

I have a post that works in Vcarve Pro if that will help.

This is such a simlpe post though that I don't know where to begin.

I can post that as a text file as well as a short blurb of Gcode that it produces. 

Vcarve shines at what it does for signs, but is painfully limited in 2 and 2.5 D CAM.

Thanks in advance for any guidance.

Lee

 

 

0 Likes
5,157 Views
44 Replies
Replies (44)
Message 2 of 45

Anonymous
Not applicable

Here is the Vcarve post.

 

+================================================
+
+Axiom DSP Handheld Control - Vectric machine output configuration file
+
+================================================
+
+ History
+
+ Who When What
+ ======== ========== ===========================
+ Todd 05/08/2014 Written for metric
+================================================

POST_NAME = "Axiom Elite NTC (mm) (*.CNC)"

FILE_EXTENSION = "CNC"

UNITS = "MM"

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|C|X|1.3]
VAR Y_POSITION = [Y|C|Y|1.3]
VAR Z_POSITION = [Z|C|Z|1.3]
VAR ARC_CENTRE_I_INC_POSITION = [I|A|I|1.3]
VAR ARC_CENTRE_J_INC_POSITION = [J|A|J|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
"%"
";Axiom Elite Series"
"[N]G91G28X0Y0Z0"
"[N]G40G17G80G49"
"[N]T1M6"
"[N]G90G54"
"[N]G0X0Y0M3"
"[N]G0[XH][YH][S]"

 

+---------------------------------------------------
+ Commands output for rapid moves
+---------------------------------------------------

begin RAPID_MOVE

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


+---------------------------------------------------
+ Commands output for the first feed rate move
+---------------------------------------------------

begin FIRST_FEED_MOVE

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


+---------------------------------------------------
+ Commands output for feed rate moves
+---------------------------------------------------

begin FEED_MOVE

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

+---------------------------------------------------
+ Commands output for the first clockwise arc move
+---------------------------------------------------

begin FIRST_CW_ARC_MOVE

"[N]G2[X][Y][I][J][F]"

+---------------------------------------------------
+ Commands output for clockwise arc move
+---------------------------------------------------

begin CW_ARC_MOVE

"[N]G2[X][Y][I][J]"

+---------------------------------------------------
+ Commands output for the first counterclockwise arc move
+---------------------------------------------------

begin FIRST_CCW_ARC_MOVE

"[N]G3[X][Y][I][J][F]"

+---------------------------------------------------
+ Commands output for counterclockwise arc move
+---------------------------------------------------

begin CCW_ARC_MOVE

"[N]G3[X][Y][I][J]"

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

begin NEW_SEGMENT

";[TOOLPATH_NAME]"
";[TOOLPATH_NOTES]"

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

begin FOOTER

"[N]G28G91Z0"
"[N]G49H0"
"[N]G28X0Y0"
"[N]M05"
"[N]M30"
%

 

0 Likes
Message 3 of 45

Anonymous
Not applicable

Starting segment of Gcode.

 

%
;Axiom Elite Series
N20G91G28X0Y0Z0
N30G40G17G80G49
N40T1M6
N50G90G54
N60G0X0Y0M3
N70G0X0.000Y0.000S18000
N80G00X48.338Y132.720Z12.700
N90G00Z5.080
N100G1Z0.000F1524.0
N110G1X48.400Y132.792Z-0.004
N120G1X49.500Y133.208Z-0.057
N130G1X49.540Y133.174Z-0.059
N140G1X49.500Y133.208Z-0.061

0 Likes
Message 4 of 45

daniel_lyall
Mentor
Mentor

Have you just tried the stepper version to see if it works.

 

I have a striped post you can try that has no M6 in it, it is not one I did but works fine on the machines it is for it is attached.


Win10 pro | 16 GB ram | 4 GB graphics Quadro K2200 | Intel(R) 8Xeon(R) CPU E5-1620 v3 @ 3.50GHz 3.50 GHz

Daniel Lyall
The Big Boss
Mach3 User
My Websight, Daniels Wheelchair Customisations.
Facebook | Twitter | LinkedIn

0 Likes
Message 5 of 45

Anonymous
Not applicable

Thanks, Daniel.

I did try the stepper version and the Gcode from that throws an error.

They are different controllers. The Stepper version uses a Rich Auto controllwr and the one I have uses a HUST controller.

I will try out the post you attached and let you know what I find out.

Thanks.

Lee

 

0 Likes
Message 6 of 45

daniel_lyall
Mentor
Mentor

If you hit an error try deleting that bit of code, knowing what and where the fails are makes it a lot easier to change stuff most times it is a change of number or removal of that section.

 

Do you have a list of the G and M codes that work with that controller or a link to a manual that shows them.  


Win10 pro | 16 GB ram | 4 GB graphics Quadro K2200 | Intel(R) 8Xeon(R) CPU E5-1620 v3 @ 3.50GHz 3.50 GHz

Daniel Lyall
The Big Boss
Mach3 User
My Websight, Daniels Wheelchair Customisations.
Facebook | Twitter | LinkedIn

0 Likes
Message 7 of 45

Anonymous
Not applicable

Here is a blurb from the manual.

 


• Supports the standard G code, PLT format instructions; supports domestic and international mainstream CAM software, such
as: Type3, Art cam, UG, Pro / E, Master CAM, Cimatron, Wentai etc.
• Comes with USB communications port, file transfer efficiency can be directly read U disk, card reader file, Plug and Play.

 

So far I have the code looking pretty good from your PP.

Most of the stuff to get it to look right was in the property window.

I didn't find an actual list of supported codes in the manual.

It does have an error and alarm help section.

 

I will post what I have so far.

This PP is not posting the correct end code.

It needs an M05 and an M30.

0 Likes
Message 8 of 45

daniel_lyall
Mentor
Mentor

One thing that makes it a bit easier is if you use the visual studio code post editor, it is here.   https://forums.autodesk.com/t5/hsm-post-processor-forum/technical-faq/td-p/7473258

 

The easy way to add stuff back in is to use the fanuc post and just copy stuff over, or comment sections out in the fanuc post and use that instead, this can be faster.

 

I hate dsp controllers.


Win10 pro | 16 GB ram | 4 GB graphics Quadro K2200 | Intel(R) 8Xeon(R) CPU E5-1620 v3 @ 3.50GHz 3.50 GHz

Daniel Lyall
The Big Boss
Mach3 User
My Websight, Daniels Wheelchair Customisations.
Facebook | Twitter | LinkedIn

0 Likes
Message 9 of 45

Anonymous
Not applicable

Thanks, Daniel.

That does help by color coding the source. I'll see how it does on the machine so far shortly.

 

0 Likes
Message 10 of 45

Anonymous
Not applicable

I tried half a dozen times yesterday to add various closing statements from different posts and could not do it without errors. Fusion 360 would not post the code because of those errors. Some errors I could recognize and fix, but others elude me. 

I just need it to set an M05 and an M30 at the close. 

I find that it is much easier just to add that to the Gcode manually. Especially for production parts where I will only do this a few times.

Same with the start code for now.

It does produce Gcode that runs on the machine. 

 

I mentioned that this controller doesn't support a tool change, but it actually does.

It requires "T1M6" in the header to run the Z tool setting routine. That means that it theoretically should support a tool change provide the Gcode is correctly written.

I can hand code a little HTML, PHP, and Gcode, but the Post language is not in my wheelhouse. 😉

 

I will continue to try to get it to post the correct code, but if anyone might share the correct closing statements, that would be a appreciated.

Here is the text of the close on typical Gcode from Vcarve.

 

N6300G1X161.684Y1073.252
N6310G00Z12.700
N6320G28G91Z0
N6330G49H0
N6340G28X0Y0
N6350M05
N6360M30
%

0 Likes
Message 11 of 45

daniel_lyall
Mentor
Mentor

Drop the idea of just adding stuff back in and grab the fanuc post and start stripping it down.

 

If you use the visual studio editor you can start at the top of the post and comment out what is not needed and any conflicts the editor shows them when you redo the g code, you can fly through it quite fast doing one at a time.

 

Just as a test I removed coolant from the start of the post and it error out and showed what line needed attention  I commented them out and it is fine  now.

 

I should not of even given you the post I did, I should of said to go with the fanuc post from the get go.

 

there is only a couple of Gcodes in the fanuc post your controller wont use, they are the Gsomething . something Gcodes like G28.1 allso the fanuc post is 8 days old since it's last update.


Win10 pro | 16 GB ram | 4 GB graphics Quadro K2200 | Intel(R) 8Xeon(R) CPU E5-1620 v3 @ 3.50GHz 3.50 GHz

Daniel Lyall
The Big Boss
Mach3 User
My Websight, Daniels Wheelchair Customisations.
Facebook | Twitter | LinkedIn

0 Likes
Message 12 of 45

Anonymous
Not applicable

Okay.

I'll give that a shot.

When you say comment out, do you mean to place all that code between parenthesis?

Or Delete?

 

0 Likes
Message 13 of 45

daniel_lyall
Mentor
Mentor

yep // or /* ,  */   I was always told do not delete you may need it back latter down the road 


Win10 pro | 16 GB ram | 4 GB graphics Quadro K2200 | Intel(R) 8Xeon(R) CPU E5-1620 v3 @ 3.50GHz 3.50 GHz

Daniel Lyall
The Big Boss
Mach3 User
My Websight, Daniels Wheelchair Customisations.
Facebook | Twitter | LinkedIn

0 Likes
Message 14 of 45

Anonymous
Not applicable

Thanks, Daniel.

So far the fanuc post seems to be looking good. I will give it a try in the AM.

Lee

 

0 Likes
Message 15 of 45

Anonymous
Not applicable

This post sets the coolant code, which I do not yet use, but may in the future on some jobs.

That isn't a nuisance.

What is a bit of a nuisance is the requirement to use a number as the file name.

The HUST controller doesn't require a number and it is also limited by 7 or 8 character names.

Now I can save the file name as something else, but it wants a number to be in the header code of  the file.

I would rather that match the file name so you can double check you have the correct file loaded before hitting the start button.

I have tried several times and ways to comment out that requirement, but have been unsuccessful without hitting errors. While the Visual studio editor makes it much easier to parse the code into understandable blocks, it clear to me that it would help if I knew what the hell I was doing. 😉

 

Here is the post so far.

 

0 Likes
Message 16 of 45

daniel_lyall
Mentor
Mentor

(line 22)

Change this section from this 

extension = "nc";
programNameIsInteger = true;
setCodePage("ascii");

 

to this

extension = "nc";
//programNameIsInteger = true;
setCodePage("ascii");

 

This section 

(line 279)

 

sequenceNumber = properties.sequenceNumberStart;
writeln("%");
if (programName) {
var programId;
try {
programId = getAsInt(programName);
} catch(e) {
error(localize("Program name must be a number."));
return;
}

if (properties.o8) {
if (!((programId >= 1) && (programId <= 99999999))) {
error(localize("Program number is out of range."));
return;
}
} else {
if (!((programId >= 1) && (programId <= 9999))) {
error(localize("Program number is out of range."));
return;
}
}
if ((programId >= 8000) && (programId <= 9999)) {
warning(localize("Program number is reserved by tool builder."));
}
oFormat = createFormat({width:(properties.o8 ? 8 : 4), zeropad:true, decimals:0});
if (programComment) {
writeln("O" + oFormat.format(programId) + " (" + filterText(String(programComment).toUpperCase(), permittedCommentChars) + ")");
} else {
writeln("O" + oFormat.format(programId));
}
lastSubprogram = programId;
} else {
error(localize("Program name has not been specified."));
return;
}

 

to this

 

sequenceNumber = properties.sequenceNumberStart;
writeln("%");
/*
if (programName) {
var programId;
try {
programId = getAsInt(programName);
} catch(e) {
error(localize("Program name must be a number."));
return;
}
*/
if (programName) {
writeComment(programName);
}
if (programComment) {
writeComment(programComment);
}
/*
if (properties.o8) {
if (!((programId >= 1) && (programId <= 99999999))) {
error(localize("Program number is out of range."));
return;
}
} else {
if (!((programId >= 1) && (programId <= 9999))) {
error(localize("Program number is out of range."));
return;
}
}
if ((programId >= 8000) && (programId <= 9999)) {
warning(localize("Program number is reserved by tool builder."));
}
oFormat = createFormat({width:(properties.o8 ? 8 : 4), zeropad:true, decimals:0});
if (programComment) {
writeln("O" + oFormat.format(programId) + " (" + filterText(String(programComment).toUpperCase(), permittedCommentChars) + ")");
} else {
writeln("O" + oFormat.format(programId));
}
lastSubprogram = programId;
} else {
error(localize("Program name has not been specified."));
return;
}
*/

and one last change (line 48)

from

o8: false, // specifies 8-digit program number

to

//o8: false, // specifies 8-digit program number

 

file is attached as well


Win10 pro | 16 GB ram | 4 GB graphics Quadro K2200 | Intel(R) 8Xeon(R) CPU E5-1620 v3 @ 3.50GHz 3.50 GHz

Daniel Lyall
The Big Boss
Mach3 User
My Websight, Daniels Wheelchair Customisations.
Facebook | Twitter | LinkedIn

0 Likes
Message 17 of 45

Anonymous
Not applicable

Thanks, Daniel.

I did get the fanuc post to post gcode, but it would not run on the machine.

Not sure where the problem lies. It simply says error 13 Gcode error.

I did try your editing one at a time with the same results.

 

I reverted back to where I was with the original post.

It runs okay if I copy an paste the start sequence from a Vcarve file and then just add the M30 at the close.

 

Just an FYI, this controller does not want to see (). Instead it wants a ; at the beginning of the comment.

It also doesn't like the 0 in an M code. Rather than this, M06, it want to see this. M6.

The same is true for the G0 and G1 etc. 

 

0 Likes
Message 18 of 45

daniel_lyall
Mentor
Mentor

I through you where going to use a CRP machine with an acorn controller.


Win10 pro | 16 GB ram | 4 GB graphics Quadro K2200 | Intel(R) 8Xeon(R) CPU E5-1620 v3 @ 3.50GHz 3.50 GHz

Daniel Lyall
The Big Boss
Mach3 User
My Websight, Daniels Wheelchair Customisations.
Facebook | Twitter | LinkedIn

0 Likes
Message 19 of 45

daniel_lyall
Mentor
Mentor

I through you where going to use a CRP machine with an acorn controller.

 

G format plus M format

(line 108)

var gFormat = createFormat({prefix:"G"width:2zeropad:truedecimals:1});
 
change to 
var gFormat = createFormat({prefix:"G"width:1zeropad:truedecimals:1});
 
This sets the G01 to G1 so on
 
line 109 the M format line the same thing width set to 1 sets whole number only no 0something.
 
 Format (comment) to ;comment; or just ;comment
(line 231)
function formatComment(text) {
return "(" + filterText(String(text).toUpperCase(), permittedCommentChars).replace(/[\(\)]/g"" )+ ")"
}
 
to
 
function formatComment(text) {
return ";" + filterText(String(text).toUpperCase(), permittedCommentChars).replace(/[\(\)]/g"" )+ ";"
}
 
This does ;comment; instead of (comment)
 
or
 
function formatComment(text) {
return ";" + filterText(String(text).toUpperCase(), permittedCommentChars).replace(/[\(\)]/g, "" )
}
 
This gives you ;comment
 


Win10 pro | 16 GB ram | 4 GB graphics Quadro K2200 | Intel(R) 8Xeon(R) CPU E5-1620 v3 @ 3.50GHz 3.50 GHz

Daniel Lyall
The Big Boss
Mach3 User
My Websight, Daniels Wheelchair Customisations.
Facebook | Twitter | LinkedIn

0 Likes
Message 20 of 45

daniel_lyall
Mentor
Mentor
The spindle stop is (line2511) change
onImpliedCommand(COMMAND_END);
onImpliedCommand(COMMAND_STOP_SPINDLE);
 
To what is below with this onCommand(COMMAND_STOP_SPINDLE); this spits the M5 out
 
onCommand(COMMAND_STOP_SPINDLE);//Daniel
onImpliedCommand(COMMAND_END);
onImpliedCommand(COMMAND_STOP_SPINDLE);.
 
 
If there is a command you do not wont the post to put out, if it is in the user defined properties you comment it out in the user defined properties it should stop it showing up. If I rember correctly the commands here are global.
 
I have attached the post with the changes above done to it, you can find them by searching for Daniel I most times if I rember to tag any changes I make with my first name.


Win10 pro | 16 GB ram | 4 GB graphics Quadro K2200 | Intel(R) 8Xeon(R) CPU E5-1620 v3 @ 3.50GHz 3.50 GHz

Daniel Lyall
The Big Boss
Mach3 User
My Websight, Daniels Wheelchair Customisations.
Facebook | Twitter | LinkedIn

0 Likes