What are CNC Mode side effects?
-
I've started thinking about finally improving my macros so that they use some meta commands (such as global variables) and was surprised to notice this ->
"Sub-expressions may be enclosed in { } or in ( ). However, standard CNC GCode uses ( ) to enclose comments. So in CNC mode, RepRapFirmware treats ( ) as enclosing subexpressions when they appear inside { } and as enclosing comments when they do not. Therefore, when RepRapFirmware is running in CNC mode, any use of ( ) to enclose a subexpression or function parameter list must be within an expression enclosed in { }."
I have RRF running on three machines. My CNC router I set to CNC mode because the CNC RRF interface that's available stops it from doing dumb things if you click wrong - but it requires your machine to be in CNC mode. My CNC mill I run in non-CNC mode because the CNC interface is sparse.
This really makes me worry though because now it seems my macros will work differently on my different machines unless I'm careful and I never would have known that ()s were different without randomly reading that paragraph today.
I already ran into issues with CNC spindles changing definition in 3.3.
Are there other CNC mode differences that are subtle like this? Is there a document describing exactly what CNC mode is and why I would or would/not use it?
Thanks.
Mark -
@markz I've summarised the changes I can think of at https://duet3d.dozuki.com/Wiki/Configuring_RepRapFirmware_for_a_CNC_machine?revisionid=HEAD#Section_Differences_in_firmware_behaviour_between_CNC_mode_and_FDM_mode.
-
@dc42 Thanks so much. It's already very useful.