On Fri, Oct 02, 2009 at 04:05:54PM +0100, Steve Blackmore wrote:
> It's sane for any rotary, particularly those that CAN rotate forever.
OK, matter of opinion. Let me explain and justify my opinion further
down. Simply restating it is silly.
> Also as Andy pointed out, you can do an optional short move to zero in
> some controllers, invent a code for it if considered essential.
OK, I agree a counterproposal might have this scheme.
> >Once an axis says "12345.67" you have no
> >idea from looking at the number which way it points. You have no
> >idea what number to program in either G90 or G91 mode to get it to 90
> >degrees from there without an unwanted 30-ish turn unwind.
> Yes you do? 12435.67 gets it +90 degrees (cw) from 12345.67 or 12255.67
> gets it -90 degrees (ccw) from there.
You misunderstand what I meant "to 90 degrees" - let me explain more
carefully. My rotary table has marks around it. I want the 90 mark
to line up with the pointer. The pointer is currently between some
marks. The DRO currently says 12345.67. I want to type a command in
MDI to do it.
Using the current EMC way, I either type G90 G0 A90 and wait for it
to unwind many turns, or I get out my calculator and figure:
12345.67 / 360 = 34.2935
360 * 34 = 12240
12240 + 90 = 12330
OK, so I use G90 G0 A12330
or now I can calculate 12345.67 - 12330 = 15.67
and then use G91 G0 A-15.67
I can now, if I like, reset the DRO to 90 with a G92 A90. If I have
not made any mistakes in my calculations this will work. Then,
tomorrow when I power up and home the machine, my DRO will still have
that offset: it will then read A -12240.00 and at that time I will
want to program G92 A0 or G92.1 to fix it.
Now instead, with Stuart's proposed system my DRO wouldn't say
12345.67. It would say 105.67 which is also what the pointer is
pointing to. I would type
G90 G0 A90
if I wanted it to rotate in the positive direction (most of a turn) to
get there, or
G90 G0 A-90
if I wanted it to rotate the other way to get there. To me this is a
VERY clear improvement for a rotary table that's used in indexing mode
where the user/programmer doesn't care how many times it has rotated,
or possibly even for a forever-rotating head on a 5 axis machine.
> I'm objecting strongly to there being no such thing as 360 or bigger, as
> Stuart suggested
If I have an A axis mounted on my mill and I use it to mill flats to
make hex heads on a part, it's exactly true that there is no such
thing as 360 or bigger that I care about. If you asked a manual
machinist who cranks a rotary table to do this same task, he'd say he
uses 0, 60, 120, and so on to do it. He would say funny things about
you if you noticed he always cranked his table the same way as he
makes these hexes, and you insisted that it was currently set to 12230
For that kind of use it doesn't matter how many times the rotary has
turned. No position information is relevant to the user or programmer
except the pointer on the side of the table that points to numbers
that could, with this scheme, also be shown on the DRO.
I see a use for both systems. I see that you strongly prefer one over
the other. I do not understand yet why you object so strongly to the
second one being added.