Machine coordinates, work coordinates, coordinate offsets, etc.
Hi David et al.,
In the world of CNC, the machines use several coordinate systems to achieve tool head position. Machine coordinates are the absolute values of position of the tool head relative to the machine. These are zeroed when homing is done. Work coordinates are used when actually running the CNC machine. All g-code references work coordinates, not machine coordinates. With work coordinates, the user can set a zero for any axes at any arbitrary point, and the machine will happily translate the new coordinates to the machine coordinate system.
As it is now, we only have machine coordinates and we are commanding directly the machine coordinates. This is not desirable in some rare circumstances: eg when wanting to redefine the origin on a delta printer.
As well as work coordinates, CNC systems have a whole subset of work coordinate systems, which can be switched between. This would be how they accommodate multiple identical part setups. You can simply run the same gcode twice, by switching to a work coordinate system with an appropriate offset. These look like G54, G55, G56, G57, G58, and G59.
I feel like RRF should aim to implement WCS in the future, and to become closer to CNC gcode in general so operators can move from one system to another easier.
WCS could be used for tool changing, for example. G54-G59 could be the way to select offsets for tools.Upon reconsideration, I do not believe G54-G59 are (or should) be used for tool offsets, so ignore that statement.
DjDemonD last edited by
I've never used cnc so I come from the other end of the spectrum, I get the impression there is something useful in this idea, but it does make 3d printing a further level more complex, so I'd maybe suggest if this were implemented it is optional and can be switched on for those who want it, and be entirely absent for those who don't.
I agree. I think separating the basic movement into MCS and WCS would be invisible to most users. The G54-G59 is definitely over the top for most 3d printing applications, and would be for people who are doing milling or turning.
We're in discussions with some makers of CNC hardware, and this will include which additional GCodes we support when the firmware is switched into CNC mode.
Sounds good, thanks!
harryder last edited by
It's good to hear that the Duet gets better support for CNC.
After designing and building a CoreXY and two delta printers I decided to build a CNC machine. The two delta printers are controlled by a Duet Wifi. I am impressed by the power of the Duet. I just finished the build of the CNC machine and control it with a Duet Wifi. I use Fusion 360 as CAD/CAM software. Only one issue, there was no suitable postprocessor in Fusion 360 which could produce proper gcode for the Duet. After a little research on the internet I found that it is possible to change or make your own post processors for Fusion 360. So I did. I have now made, still a "beta version" version, a post processor for F360. Basic functions are working and did my first tests on the CNC machine. So far so good
The support of multiple WCS was also in the top of my wishlist, next to support for controlling the spindle. I have a Delta VFD007E21T controller in combination with a TeknoMotor ElectroSpindel C31/40-D-DBS-P-ER20-0.7KW-12.000-24.000RPM.
Is there a way on the forum to share the F360 post processor?
Thats really good news harryder, (and can you post some pictures in the DuetWifi controlled machines part when u get a chance.
Once option could be to upload the post processor to a site like dropbox and share it from there?
I would also be happy to host it on our github, or you could join github?