- LinuxCNC
- General LinuxCNC Questions
- Would you use a feed rate for rotary axes in mm/min (surface speed)?
Would you use a feed rate for rotary axes in mm/min (surface speed)?
- grandixximo
-
Topic Author
- Away
- Platinum Member
-
Less
More
- Posts: 336
- Thank you received: 403
30 Sep 2026 08:15 #350002
by grandixximo
Would you use a feed rate for rotary axes in mm/min (surface speed)? was created by grandixximo
I'm deciding whether to work on a LinuxCNC feature and would like to know first whether anyone would actually use it.
Today, when a rotary axis moves together with X, Y or Z, F applies to the linear axes only, and a rotary move on its own runs at F in degrees per minute. On a 4th-axis wrap, where the surface of a cylinder is cut with X and A, the surface speed therefore doesn't match F. The usual workaround is inverse time (G93) from the CAM.
The idea is a reference radius for each rotary axis, set in the INI. For example, `[AXIS_A] FEED_RADIUS = 25` puts A in the feed calculation as if it were a length at 25 mm from its centre. A move of A alone at F100 would then run at 100 mm/min on the surface at that radius, and X with A would run at F along the combined path. Siemens (FGREF) and Fanuc (a parameter) do the same.
Questions:
1. Would you use this, or does G93 from your CAM already cover it for you?
2. What machine: 4th-axis wrap, rotary table, something else?
3. The useful radius is usually the stock radius, which changes per job. Is a fixed INI value good enough, or would you need to set it from G-code?
A short "yes, I'd use it", "no" or "G93 is fine" helps. If nobody needs it, I'll leave it.
Today, when a rotary axis moves together with X, Y or Z, F applies to the linear axes only, and a rotary move on its own runs at F in degrees per minute. On a 4th-axis wrap, where the surface of a cylinder is cut with X and A, the surface speed therefore doesn't match F. The usual workaround is inverse time (G93) from the CAM.
The idea is a reference radius for each rotary axis, set in the INI. For example, `[AXIS_A] FEED_RADIUS = 25` puts A in the feed calculation as if it were a length at 25 mm from its centre. A move of A alone at F100 would then run at 100 mm/min on the surface at that radius, and X with A would run at F along the combined path. Siemens (FGREF) and Fanuc (a parameter) do the same.
Questions:
1. Would you use this, or does G93 from your CAM already cover it for you?
2. What machine: 4th-axis wrap, rotary table, something else?
3. The useful radius is usually the stock radius, which changes per job. Is a fixed INI value good enough, or would you need to set it from G-code?
A short "yes, I'd use it", "no" or "G93 is fine" helps. If nobody needs it, I'll leave it.
Please Log in or Create an account to join the conversation.
- tuxcnc
- Offline
- Elite Member
-
Less
More
- Posts: 263
- Thank you received: 50
30 Sep 2026 10:21 #350005
by tuxcnc
This is what LinuxCNC is good at, it doesn't have a thousand buttons that change the way it interprets g-codes.
Sharing settings between the ini file and the ngc file like this is bound to end in an accident at some point.
However, there are no contraindications to adding a new G or M code that will do what you write about. Then everything will be in one file and there will be no risk of running one program with the settings of another...
Replied by tuxcnc on topic Would you use a feed rate for rotary axes in mm/min (surface speed)?
This is a very bad idea, looks like it was captured from Mach3...The idea is a reference radius for each rotary axis, set in the INI. For example, `[AXIS_A] FEED_RADIUS = 25`
This is what LinuxCNC is good at, it doesn't have a thousand buttons that change the way it interprets g-codes.
Sharing settings between the ini file and the ngc file like this is bound to end in an accident at some point.
However, there are no contraindications to adding a new G or M code that will do what you write about. Then everything will be in one file and there will be no risk of running one program with the settings of another...
The following user(s) said Thank You: grandixximo
Please Log in or Create an account to join the conversation.
- tommylight
-
- Away
- Moderator
-
Less
More
- Posts: 21941
- Thank you received: 7470
30 Sep 2026 11:19 #350007
by tommylight
Replied by tommylight on topic Would you use a feed rate for rotary axes in mm/min (surface speed)?
G93 is fine.
The following user(s) said Thank You: grandixximo
Please Log in or Create an account to join the conversation.
- grandixximo
-
Topic Author
- Away
- Platinum Member
-
Less
More
- Posts: 336
- Thank you received: 403
30 Sep 2026 14:01 #350009
by grandixximo
Replied by grandixximo on topic Would you use a feed rate for rotary axes in mm/min (surface speed)?
Yes got some mixed responses, G93 works for some. The ones who'd like to try, seem to want it as a G-code, which makes sense...
The following user(s) said Thank You: spumco
Please Log in or Create an account to join the conversation.
- spumco
- Offline
- Platinum Member
-
Less
More
- Posts: 2174
- Thank you received: 899
30 Sep 2026 21:23 #350016
by spumco
Replied by spumco on topic Would you use a feed rate for rotary axes in mm/min (surface speed)?
A short "yes, I'd use it", "no" or "G93 is fine" helps
G93 is fine for me
G93 is fine for me
The following user(s) said Thank You: grandixximo
Please Log in or Create an account to join the conversation.
- tuxcnc
- Offline
- Elite Member
-
Less
More
- Posts: 263
- Thank you received: 50
01 Oct 2026 06:59 #350032
by tuxcnc
Replied by tuxcnc on topic Would you use a feed rate for rotary axes in mm/min (surface speed)?
"G93 is fine for me" means nothing.
It is one thing when someone uses CAM and is not at all interested in how the g-code is created, and it is enough that it works, and it is completely different when someone writes the program themselves using functions, loops and subroutines.
It is one thing when someone uses CAM and is not at all interested in how the g-code is created, and it is enough that it works, and it is completely different when someone writes the program themselves using functions, loops and subroutines.
The following user(s) said Thank You: grandixximo
Please Log in or Create an account to join the conversation.
- ruediger123
- Offline
- Junior Member
-
Less
More
- Posts: 36
- Thank you received: 35
01 Oct 2026 08:29 #350034
by ruediger123
Replied by ruediger123 on topic Would you use a feed rate for rotary axes in mm/min (surface speed)?
Hello,
In my view, the decisive factor is whether or not kinematics are taken into account:
without kinematics, values are specified in angular units; with kinematics, they are specified in linear units, as the lever arms are factored in.
In my view, the decisive factor is whether or not kinematics are taken into account:
without kinematics, values are specified in angular units; with kinematics, they are specified in linear units, as the lever arms are factored in.
The following user(s) said Thank You: grandixximo
Please Log in or Create an account to join the conversation.
- djdelorie
- Offline
- Premium Member
-
Less
More
- Posts: 85
- Thank you received: 17
01 Oct 2026 11:51 #350040
by djdelorie
Replied by djdelorie on topic Would you use a feed rate for rotary axes in mm/min (surface speed)?
Having had my machine slow to a crawl because it applied "in/min" to "degrees" (usually by accident, I use G93 most of the time), I would like an option to "do better". Some ideas:
* Use radians instead of degrees if you have to use them at all, since those are much closer to linear distance.
* Scale by the WCS Z coordinate to figure out "actual" circumference/distance
* Specify the machine location of the rotary in the config, like Y=10 Z=-3 (which implies it points along X) and calculate circumference based on that
* manually specify some scaling factor
* Use radians instead of degrees if you have to use them at all, since those are much closer to linear distance.
* Scale by the WCS Z coordinate to figure out "actual" circumference/distance
* Specify the machine location of the rotary in the config, like Y=10 Z=-3 (which implies it points along X) and calculate circumference based on that
* manually specify some scaling factor
The following user(s) said Thank You: grandixximo
Please Log in or Create an account to join the conversation.
- tuxcnc
- Offline
- Elite Member
-
Less
More
- Posts: 263
- Thank you received: 50
01 Oct 2026 13:35 #350043
by tuxcnc
The whole problem is that it is in no way possible to convert an angle into a length.
They are simply concepts from different categories.
However, you can convert an angle into an arc length if you know the radius.
Since the radius is not listed anywhere in the g-code, it would have to be cleverly specified there.
In my opinion, a new G or M code would be best for this for three reasons:
1. As I wrote earlier, everything would be inside one file, which would eliminate the possibility of a nasty mistake.
2. The G or M code could be used many times in one file, because many diameters can be machined in one piece of material.
3. If someone didn't need it, they wouldn't use it and wouldn't have to be surprised that something was done differently than expected.
Replied by tuxcnc on topic Would you use a feed rate for rotary axes in mm/min (surface speed)?
These are mathematical heresies.Having had my machine slow to a crawl because it applied "in/min" to "degrees" (usually by accident, I use G93 most of the time), I would like an option to "do better". Some ideas:
* Use radians instead of degrees if you have to use them at all, since those are much closer to linear distance.
* Scale by the WCS Z coordinate to figure out "actual" circumference/distance
* Specify the machine location of the rotary in the config, like Y=10 Z=-3 (which implies it points along X) and calculate circumference based on that
* manually specify some scaling factor
The whole problem is that it is in no way possible to convert an angle into a length.
They are simply concepts from different categories.
However, you can convert an angle into an arc length if you know the radius.
Since the radius is not listed anywhere in the g-code, it would have to be cleverly specified there.
In my opinion, a new G or M code would be best for this for three reasons:
1. As I wrote earlier, everything would be inside one file, which would eliminate the possibility of a nasty mistake.
2. The G or M code could be used many times in one file, because many diameters can be machined in one piece of material.
3. If someone didn't need it, they wouldn't use it and wouldn't have to be surprised that something was done differently than expected.
The following user(s) said Thank You: grandixximo
Please Log in or Create an account to join the conversation.
- jschulze
- Offline
- Senior Member
-
Less
More
- Posts: 43
- Thank you received: 15
01 Oct 2026 14:30 #350048
by jschulze
Replied by jschulze on topic Would you use a feed rate for rotary axes in mm/min (surface speed)?
G93 works for me, but I just wanted to say a huge thanks for all your work. I've been trying to keep up with what you're doing with the s curve stuff and the 5 axis tp work. It's well beyond the level I could contribute anything, but I'm excited to see all the progress.
The following user(s) said Thank You: grandixximo
Please Log in or Create an account to join the conversation.
- LinuxCNC
- General LinuxCNC Questions
- Would you use a feed rate for rotary axes in mm/min (surface speed)?
Time to create page: 0.820 seconds