Machsupport Forum
Mach Discussion => General Mach Discussion => Topic started by: giannis121 on May 27, 2009, 02:46:26 AM

This might be a strange post, but if you have any ideas, please share them.
I have constucted a rotating bracket (see the attached schematic).
The movement is not given on the rotation axis (red dot),
but by a gearpinion sytem at the edge of the bracket.
I want to measure degrees at this axis.
The movement method causes non linear measurement.
As the bracket goes to the edges of the pinion,
i need to travel more for the same change on degrees.
Can i touch the measuring system?
Or can you think any way to solve this problem, without changing the moving method?
Giannis

I cannot see how your motor gear stays in contact with the pinion  something must move to allow it to work.
If the pinion stays in the same position and some mechanism lengthens the bracket so the motor stays in contact, then the tangent of the angle subtended by the bracket{call this A} is the (distance along the pinion) divided by the (distance of the pinion from the centre {call this C}).
Therefore the (distance along the pinion) = TanA multiplied by C.
If however, your pinion moves to keep in contact with the motor, then the angles are constantly changing, and the calculations become much more difficult.

Yes, the pinion stays at the same position and the bracket lengthens.
I agree with your calculations, it is the definition of tan(a).
My problem is how mach will move, showing at a DRO the real angle...

If I understand you correct you want to control the angle and not the linear movement.
If so, I would have fitted a servo motor system with an encoder measuring the angle of the rotating bracket, not the rotational position of the motor, giving feedback to the servo motor drive board. Such a system requires minimal or no backlash on your drive system but removes any complicated angle/linear conversion from Mach3. Mach3 will put out, and the DRO will accurately read, the position in degrees.

Steinar has a simple solution (and it might be easier)  but if you are set up with stepper motors, and no feedback, then you need to write a simple Macro and instead of using the simple G1 or G0 command, use the Macro instead.
If you are familiar with visual basic, then the logic would be (something) like this.
We will assume that the bracket starts in the vertical position (0). Two UserDRO's should be set up, one showing the current position and one in which to enter the desired position. The macro can be then placed on a button at the side of the second DRO. The axis should, as far as Mach is concened, still be in linear dimensions.
Start:
Enter desired position in 2nd DRO.
Press button
get desired position from DRO2
position = armlength*tan(new angle)
code "G0 x"&position
set DRO1 to equal DRO2
That is fairly simple, since Mach 3 will keep the present position of the pinion in linear form in it's DRO so you don't jave to recalculate it all the time.
The only problem is I have just remembered that I think vis basic uses radiams and not degrees in it's calculations.
You will have to work in some logic to reverse the arm to bring it the other way.

Guys, thank you for the posts.
Very helpfull.
Finally i did something like you describe.
a=getuserdro(1000) 'At a user DRO i place the value in degrees
a=(3.14*a)/180 'i convert the degrees to radians (while the Tan function works with radians)
b=Tan(a)*730 'multiply the Tan by the bracket length
code "G0 X" &b ' Move to the new point
Works perfect!
Thank you.
Giannis