Hello guys,
As the title says, i try to figure out a way to swap the axis where tool is put by default (X axis) at Turning Setup to Z axis. The necessity of swap comes from trying to work a Milling Machine as a Turning One where exported G-code uses only Z and Y axis and leave X-axis motionless, so any suggestions would be appreciated.
Thanks!
Solved! Go to Solution.
Solved by serge.quiblier. Go to Solution.
Solved by demong. Go to Solution.
Hi @GrizzleCam ,
I don't know of a way to do this directly inside Fusion. In fact, despite the axis being seemingly locked to X and Z for the turning setups, if you open the "Show Toolpath Data" for a turning operation, all the moves are in X and Y, and the number values are nonsense (or just not quite right).
If I understand your issue and I had to solve it, my quick, hacky method would probably be posting code to the X and Z axes, and then doing a Find/Replace workflow to quickly change all values of an axis at once. My 'correct' method of solving the issue would be by modifying a special post processor to achieve posting axis values to a different axis. I assume this is possible without trying it. All my knowledge of modifying post processors I learned from the two videos I'll link below. If you're interested, give them a watch and see what you can come up with yourself.
Good luck!
Jon
https://www.youtube.com/watch?v=5EodQIY25tU&ab_channel=NYCCNC
https://www.youtube.com/watch?v=4OWT-O4oN8E&ab_channel=NYCCNC
Hi @GrizzleCam
another way can be to tweak the output on specific situation.
I have removed some part of the function, but inside the onLinear, and also the onRapid, we can alter the code like that:
function onLinear(_x, _y, _z, feed) {
var x = xOutput.format(_x);
var y = yOutput.format(_y);
var z = zOutput.format(_z);
var f = getFeed(feed);
if (x || y || z) {
if (pendingRadiusCompensation >= 0) {
......
default:
writeBlock(gMotionModal.format(1), gFormat.format(40), x, y, z, f);
}
} else {
if (isTurning()) { // added test
writeBlock(gMotionModal.format(1), yOutput.format(_x), z, f); // tweaked output
} else { // regular output
writeBlock(gMotionModal.format(1), x, y, z, f);
}
}
The same logic can be applied above on the cutter compensation output.
Have a nice day.
Regards.
______________________________________________________________
If my post answers your question, please click the "Accept Solution" button. This helps everyone find answers more quickly!
Hello there @serge.quiblier ,
I wish you came by earlier to be honest! That's what I did and it worked perfectly. So exciting discovery.
Thank you for replying anyways!
Have a good day.
Can't find what you're looking for? Ask the community or share your knowledge.