Unlimited rotary axis

14 Jul 2018 07:22 #114162 by jsskangas

I have been now running some 5 axis work.
Mostly impellers, but some parts that are cut with helix motion around part.
This leads to running several turns like 60-200 turn around part.
When operation is finished I need to run back(rewinds) 200 turns to get back to C 0.0.
now rewind is mandatory cause I can not change kinematic mode to TCP:off, unless C0.0.
This frustrates me.

Is there any option to run in 360 modulo format, so that sign determines rotation direction or it uses closest path?
Axis would be limited to 0-360. degrees.

One option would be a reference command to run axis home.
some controllers use G28 U0. to command axis home and find reference.
This would be useful for unlimited rotary axis, it would find nearest home point and zero it self to that.

Any other ideas how to get rid of rotary rewind?
14 Jul 2018 17:56 #114172 by Grotius
Replied by Grotius on topic Unlimited rotary axis

I know your problem. At the end of your proces, you can do a homing for your rotary axis to home switch and reset your value.
Then you are ready for the next round...
14 Jul 2018 18:58 #114173 by jsskangas
Replied by jsskangas on topic Unlimited rotary axis
So this is not possible at the moment?
Can i make PID loop zero at index pulse?
I have servos that i can program to give index pulse once per table rotation.

I know that many other suffers from this problem as well.
So let's try to solve this.

If not next best thing would be G-command to home single axis.
how much work this would need?
14 Jul 2018 21:25 #114182 by dgarrett
Replied by dgarrett on topic Unlimited rotary axis
Method using g92,g10l20,g92.1 (for the c coordinate):
$ cat c_reset.ngc
o<c_reset> sub
  g92 c 0 (get c value to #5216)
  #<c_save> = #5216
  #<c_new> = [#<c_save> mod 360]
  ;reset c such that -360 <= c <= 360
  ;comment-out the if1 block for: 0 <= c <= 360
  o<if1> if [#<c_save> lt 0]
           #<c_new> = [#<c_new> -360]
  o<if1> endif
  g92.1 (remove g92 offset)
  g10l20p1 c #<c_new> (set new c value)
  (debug, c original: #<c_save>)
  (debug, c new:      #<c_new>)
o<c_reset> endsub

14 Jul 2018 21:30 - 14 Jul 2018 21:39 #114184 by jsskangas
Replied by jsskangas on topic Unlimited rotary axis
Ok I need to investigate how this works with 5-axis kinematics.

This could work, but not best possible solution.
quick and dirty, I would say.
Last edit: 14 Jul 2018 21:39 by jsskangas.
14 Jul 2018 23:36 #114189 by Badger
Replied by Badger on topic Unlimited rotary axis
G10 L20 P#5220 A[#5423 MOD 360]

Will eliminate all the multiples of 360 degrees. You then just have to "unwind" the remaining part of the rotation. I haven't run a complete project with this but it seems to work in my tests. Voodoo.
15 Jul 2018 07:19 #114201 by jsskangas
Replied by jsskangas on topic Unlimited rotary axis
This offsets zero point that is in use.
if you run another job with different zero point, lets say that you are finishing part in fixture, then this zero point has not this offset.
And your post tells to run C0. for this operation.

Or you close the machine and start next day, home your machine and and comman C0. in your next job.
Rotary will rewind to Cxxxxxxxx.xx ....

Like i said, quick and dirty.

Need better one.
16 Jul 2018 14:55 #114307 by andypugh
Replied by andypugh on topic Unlimited rotary axis
Does the WRAPPED_ROTARY INI file option do what you want?

16 Jul 2018 16:30 #114311 by jsskangas
Replied by jsskangas on topic Unlimited rotary axis
First thing i tried.
I did not notice any change in behavior.
My axis value still goes from 0 .... xxxxxxxxxxx.xxx
and f I type C0. it will rewind it back home.

0, 360, 720 are not same position as they should be.
16 Jul 2018 17:40 #114319 by andypugh
Replied by andypugh on topic Unlimited rotary axis
If you enable WRAPPED_ROTARY the behaviour should be that G0 A810 will do 2.25 turns in the positive direction, and then G0 A-0 will do a quarter turn in the reverse direction.

You don't want 360 and 720 to be exactly the same, they should end up at the same angle, but you need to be able to program a multi-turn move still.
Time to create page: 0.102 seconds
Powered by Kunena Forum