- Posts: 59
- Thank you received: 0
How does M73 work in a sub?
8 years 2 months ago #116459
by Elco
How does M73 work in a sub? was created by Elco
Hello,
Writing a sub that can cut a part in a specified direction, I assumed that M73 will restore the former state - including rotation - upon subroutine exit. Since I could not get it right, I made a small test:
; test to see if the Rotation in the current coordinate system is saved with M73
o<rotating> sub
M73
G10 L2 P0 x10y10 R#1 ; rotate some degrees at current position
G90 X5 ; draw a line in relative mode
o<rotating> endsub
; Begin main
G91 G0
x10y10
o<rotating> call [10]
x10y10
o<rotating> call [20]
x10y10
o<rotating> call [30]
x10y10
o<rotating> call [40]
M2
Expecting a star of lines around 10,10
Running this seems that nor the rotation, nor the absolute mode is restored?
What goes wrong here? Using LinuxCNC 2.7.14
Thanks, Elco
Writing a sub that can cut a part in a specified direction, I assumed that M73 will restore the former state - including rotation - upon subroutine exit. Since I could not get it right, I made a small test:
; test to see if the Rotation in the current coordinate system is saved with M73
o<rotating> sub
M73
G10 L2 P0 x10y10 R#1 ; rotate some degrees at current position
G90 X5 ; draw a line in relative mode
o<rotating> endsub
; Begin main
G91 G0
x10y10
o<rotating> call [10]
x10y10
o<rotating> call [20]
x10y10
o<rotating> call [30]
x10y10
o<rotating> call [40]
M2
Expecting a star of lines around 10,10
Running this seems that nor the rotation, nor the absolute mode is restored?
What goes wrong here? Using LinuxCNC 2.7.14
Thanks, Elco
Please Log in to join the conversation.
8 years 2 months ago #116518
by andypugh
Replied by andypugh on topic How does M73 work in a sub?
linuxcnc.org/docs/2.7/html/gcode/m-code.html#mcode:m73
Seems to suggest that "modal state" includes only units, feed rate, absolute/relative and spindle speed.
You can manually save and restore the rotation using parameters
linuxcnc.org/docs/2.7/html/gcode/overview.html#gcode:parameters
Specifically it looks like #[5210+20*#5220] will return the current rotation in the current coordinate system.
Seems to suggest that "modal state" includes only units, feed rate, absolute/relative and spindle speed.
You can manually save and restore the rotation using parameters
linuxcnc.org/docs/2.7/html/gcode/overview.html#gcode:parameters
Specifically it looks like #[5210+20*#5220] will return the current rotation in the current coordinate system.
Please Log in to join the conversation.
Time to create page: 0.076 seconds
