Machsupport Forum
Mach Discussion => Mach4 General Discussion => Topic started by: mb-ABTech on June 14, 2022, 11:26:22 AM
-
We built a custom machine for a customer that uses 2 axes, a linear slide, X, and a rotary axis, C. The C axis is set to rollover, which it does successfully.
We noticed an oddity where if, for example, you G0 315, then G0 45, rather than travel "through" 360 to get to 45 (a 90 degree turn), the axis will actually travel the opposite direction to get to 45 (a 270 degree turn). Is there a setting somewhere to force a rotary axes with rollover to travel the shortest path? Or does this necessitate disabling rollover?
-
I'm in the process of testing whether Mach4 would be suitable for a new build, thinking of coming back from UCCNC, but having a similar problem when I test long G93 rotary carving files. Without rollover, A just ticks continuously upwards, but with rollover, every time it reaches around A359 it pauses to return to A0 the long way, not ideal! So I would also appreciate knowing if it's possible to stop this behaviour.
-
Did either of you make progress on this? I am having the same issue. Without rollover enabled, rotary tool paths using continuous rotation work as expected until the end where my A axis reverses direction for quite a while to get back to A0. With rollover enabled, it always stops and goes back to A0 rather than taking the shortest path. I have tried gcode with both continuous A rotation (3600 would be 10 rotations in the positive direction) and rotation mapped directly to degrees (-360-0-360) and neither work the way I want.
-
I made progress, I guess - I decided not to use Mach4!! This issue makes the software completely unusable for me...
-
you can solve this i think in many ways
first fast option its not use as rotary axiss just use as normal axiss and make one round as 360mm or inches....
second option its by pp and use the plus minus ,but for this ou must create the pp by external software with some logic terms
-
first fast option its not use as rotary axiss just use as normal axiss and make one round as 360mm or inches....
I do not understand what you are saying. How does this equate to roll over on 360? How it is different to using a rotary axis without rollover, except that now you have the additional problem of limits to the axis movement? Can a non-rotary axis take the shortest path from e.g. A350 to A10? I do not see it...
Your second option isnt a solution, it's a workaround outside of mach to behaviour that should not be happening, and this level of programming is outside the reach of most people.
-
,both options can do
First it's more easy because you can do more then one circle without stop,this only real hard with second option ,but to decide which way you go cw or ccw you can do for example work with G54 ,not machine coordinate ,then you can decide reset in any position you want ( reset I mean -360 not 0) so this way I think actually you can do almost all ,maybe need add some m function in gcode that will reset the he home
-
About second opinion ,I advice you try with yours laptop work on simolation mode and you can see that you can control the direction ,if you put minus or put instead of your targen you can put 360-target then you will get opposite ,but this pp more complex
-
You can do more than one circle "without stop" already by simply disabling roll over on 360. This is not the problem. The problem is that we WANT normal rollover on 360 functionality!! That is, mach takes the shortest path and doesnt "unwind" 10 times if code goes from A3600 to A0, and displays always only 0-360. G54 distinction is not relevant to the issue.
-
Using build 4612.
It is behaving as you would expect.
Command A 10 it moves to 10... then command A 355 it moves to a 355 in the negative direction moving 15 units, not positve 345.
Command A 10 it moves to 10... then command A -5 it moves to a 355 in the negative direction moving 15 units.
-
Ah, now thats useful, thanks Chad!!
-
I’m just saying. I’m not sure what issues you guys are having specifically.
We’re using this on two grinders in our shop that has a tilt in the grinding wheel. It works fine either way we program it.
We’re using the A axis as the tilt. Either the A axis rotary roll over, it works fine.
-
Using build 4612.
It is behaving as you would expect.
Command A 10 it moves to 10... then command A 355 it moves to a 355 in the negative direction moving 15 units, not positve 345.
Command A 10 it moves to 10... then command A -5 it moves to a 355 in the negative direction moving 15 units.
Sorry it's been a long time, now just revisiting this.
We have this problem in build 4612. Our Mach4 control mode is set for "Mill", rollover on all rotary axes. We are using a Galil controller with the Galil plugin. This occurs with any G0 command.
-
I did some more testing to narrow down exactly when this occurs. It seems like it only occurs when you are trying to roll over 0 from > 180 degrees when rolling over away from zero.
Start with your rotary axis at machine position 0, enable the machine. Then issue the following commands:
G0 C0
G0 C180
G0 C270
G0 C0
What will happen is the axis will first goto zero, then increment through 180 to 270, but then when told to go to zero, the axis reverses direction and goes back to zero rather than continuing to travel past 270. This happens in the "negative" direction as well (if you are in negative machine coordinates, away from zero).
I did find a way around this, and that's by setting an offset immediately before commanding the axis to move back to zero. The offset needs to be whatever multiple of 360 is larger than the current machine coordinates (or smaller than if you are in negative machine coordinates, moving away from zero). So if machine coordinates for this axis are moving between 0-360, work offset must be set to 360 then you can command back to zero. If machine coordinates are between 360 and 720, work offset must be 720.
It's an annoying workaround, but it does work. It just demands you know at all times where you are in absolute rotary positioning in your G code, which kind of negates the point of rollover.