I am trying to help a friend with his CNC machine, it has the following control shown in the picture. I would like to find out what it could be running to identify the correct post processor. My current problem in testing with the OpenBuilds post processor (I know it’s not designed for this) is that it sends a G54 command on its own, then a single G53 command with the Z height I have specified in Fusion 360 for it to go to at the end of the job. This is working as expected but it doesn’t go back to G54 after it runs the single G53 command. If I delete the G53 command it keeps going on G54 or alternatively if I put G54 in front of all of the movement commands it works. If I just do what I normally do with my Blackbox, it doesn’t keep using G54, it uses the homing location of the machine instead. I am sure I am going about this wrong, any help in the right direction would be greatly appreciated.
I dont know what controller that is, but I can say it is not following the standards. G53 is not modal, you have to give it on every line that needs it to force the machine to use machine coordinates G54 through G59 ARE modal, once set they are remembered and used until changed, and a G53 does not change the modal state. obviously that controller is not doing that. what is the GUI? if you have the latest OB Fusion post you can modify it to output the G54 after the G53 (I can only give line numbers for the latest version V1.0.21) copy lines 644-651 after line 721 Code: // Write the WCS, ie. G54 or higher.. default to WCS1 / G54 if no or invalid WCS in order to prevent using Machine Coordinates G53 if ((section.workOffset < 1) || (section.workOffset > 6)) { alert("Warning", "Invalid Work Coordinate System. Select WCS 1..6 in SETUP:PostProcess tab. Selecting default WCS1/G54"); //section.workOffset = 1; // If no WCS is set (or out of range), then default to WCS1 / G54 : swarfer: this appears to be readonly writeBlock(gWCSOutput.format(54)); // output what we want, G54 } else { writeBlock(gWCSOutput.format(53 + section.workOffset)); // use the selected WCS } copied in-between Code: writeBlock(gFormat.format(53), gFormat.format(0), zOutput.format(toPreciseUnit(properties.machineHomeZ, MM))); // Retract spindle to Machine Z Home // Insert the Spindle start command if you got that right then it will put a G54 after the G53 line which should fix their nonstandard behaviour
The CNC is an OmniCAM, really well designed machine mechanically. Only interface at this stage is a handheld unit. Not sure if the processing of the GCode is done by the handheld component or the board but I thought the G54 should persist through the G53 command on only one line. thanks as always for your help man. You are awesome!