Hello Guest it is February 21, 2024, 10:41:23 PM

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - rustyolddog

Pages: « 1 2 3 4 5 6 7 »

 You have it right. You cannot do arcs other than in the XY plane, XZ plane or YZ plane. There is no conceptual plane for
a rotary axis. The checkbox for linear/angualr only tells an axis not to convert when switching from mm to inch, other than that it
has no purpose. A, B and C are always rotary axis.. So using an IJ with an A axis is an error in syntax, though still legal, the missing Y in this
case woudl simply be interpreted as the current Y location, and the A would just be a linearised motion on that axis during the movement of the XY
in the XY plane arc.


Thanks for clearing that up Art!


the I parameter is associated with the X axis and the J parameter is associated with the Y axis.they are not associated with A B or C axis even if you check the box use as linear.
now you can move them around on differant planes XY XZ YZ but not with ABC.

you can take a linear program and wrap it around a cylinder without super software by creating a new setup profile.
when you log onto mach do the create a new profile.
go to ports and pins and move your A axis setup to Y. then move your Y axis to A.
set your A axis to linear so you can jog it around.
set your Y axis steps to get what you want.
now you can carve around a cylinder without having a code with A in it.


Doh!!! Thanks Bill for pointing that out, it's so obvious & simple! Why didn't I think of it?!

I ran the test again tonite and I definately think it's a Mach2 problem.

The A axis Angular is unticked.

I tried both Absolute and Incremental IJ

I also unticked/ticked the No Angular Discrimination box.

In absolute mode, I get a series of circles on the tool path display, in Incremental, I get a fewer number of circles.

Keep in mind all I did was take my posted code and subtitute A for Y and here's what happens:

The test code contains bot X moves, A moves and A moves with IJ commands.

The X moves are correct, the A moves are correct

When an A move with an IJ command runs, I get movement in the Y axis even though there is no Y command anywhere, in addition, I get wild feeds in the A axis which vary from extremely slow to motor stalling fast even though the motor is tuned way below the stall limit.

I can't understand why the Y axis would move when there is no Y axis move specified UNLESS IJ commands can only be associated with a X,Y axis move. And associating IJ with the A axis results in an illegal instruction. This has to be an issue with Mach2 code, no? I think I can work around it by simply swapping my A axis cable with the Y axis cable, changing the Units setting, motor tuning and backlash setting for the 4th axis and just run the code as X,Y. This would be a real pain to do on a regular basis and leaves the door open to mistakes. I'll see if I can get Art to weigh in.

if you can do it,explain the piece you are trying to cut and the material you want to use.
also in your post,your

To clarify, this process is a straight wall pocketing operation, just like you would cut a cam slot it's not a complex 3D art relief. Z remains at a fixed depth.
The setup is as follows: The cylindrical part is mounted on the 4th axis, the cylinder center line is located in the Y plane, Y is zeroed and left undisturbed from that point. The X & Z zero point of reference is located and the operation commences.

If I am getting the point of the post - what we are saying is this complicated way of converting angular motion into linear motion seems to work alright if we stick to simple straight line formula. Once we ask the computer to move the axis in a circular motion then it goes bananas.

If you think about g2 or g3 moves, these ask the computer to guide the axis around a plane in a circle. Since the plane is flat, then the distance from the centre of the circle can be easily calculated, and the vectors of the points on the circumference of the circle (two co-ordinates) can be calculated as the tool advances. As we probably know, one axis advances as per a sine wave, the other in a 90 opposition.

What you are trying to do is the equivelant of drawing a circle on the side of a sphere. You cannot represent the centres of a flat circle and a circle of the same diameter on a sphere by the same point. If you imagine drawing a circle the same size as the sphere, then a flat representation would show the diameter as D, whereas the true diameter of the circle you actually wanted to draw is pi D/2. The same is true if you imagine drawing a circle on the side of a cylinder, but only on one axis.

Your method may work - but it is not based on the actual mathmatics involved. Whilst angular mathematics is complicated it is easier working in degrees or radians where appropriate - particularly if you are going to mix flat planes (essentially two co-ordinates) with spherical or spacial measurements (essentially three co-ordinates).

No, we're not getting past the point of the post. It was intended to be a real world discussion of a back door method to accomplish 4th axis moves  in a 2.5D world. Kinda like using an X,Y drawing to accomplish X, Z moves on a lathe in absence of a dedicated lathe CAD/CAM.

Drawing a circle on a sphere is far more complex than the problem in hand in that a Z axis move would be required while making the X and A axis moves. In my application the Z axis is simply in the cut or out at a fixed depth. What I am trying to accomplish is a circle on a cylinder.

The X axis move, coordinated with the A axis move, of which the A axis has been tricked into being a linear axis. Mechanically, it's a non issue as the machine is capable of it. I can machine 'O's and '0' without a problem but in the CAD/CAM software, these are created by short linear line segments, with the end appearance being a smooth circle. Splines on the other hand are true curves. I have no problem under normal circumstances on a flat surface with X & Y moves. But for some reason, at least in the past tests, substituting A for Y in the G-Code, in which A has been configured as a linear axis, causes unexpected moves with the IJ command.

I've recovered the setup file since I had the problem, it had gotten corrupted I presumed as a result of trying to run the IJ commands. Everything had been functioning properly prior to that both in X, Y mode and X, A mode with linear moves. I haven't retested since then. What I am trying to determine is whether there is something mathematically & G-Code wise that I am overlooking or not seeing or if it was just a glitch in Mach or related to the Absolute or Incremental setting, or if I need to disable or change a setting for the A axis in Mach.

I and J work around a fixed point.
when you rotate your A axis you make the point move.not to good unless your setup and software are pretty much perfect.
if you can do it,explain the piece you are trying to cut and the material you want to use.
also in your post,your A axis has a pretty good resolution,do you need that much.that will cut into your speed pretty good.
try setting your driver to full step.that will give you 40 steps per degree or 10 steps for 1/4 degree.good for general machining
if you are going to finish out the piece by grinding,then the high resolution helps.

My application is small jewelry wax engraving so the level of resolution is required. Geometric moves & text engraving function just fine, the curves in the text engraving are made up of small straight segments. Where things get messy is with spline and true curved geometry. The IJ moves for some reason don't translate properly when going from Y to A in a simple substitution. I don't know if that's a Mach setting or a interpretation problem. My initial thinking was that since the A axis had been made linear, the IJ moves should translate. Last time I tried, I got wild arc moves. In addition, somthing got corrupted in the Mach settings file. I plan on trying again when I get a chance but only after I make a backup.

ETA: See the post on page 2 which is the final draft of the exercise.

I've spent a good bit of time perfecting my 4th  axis and I thought I'd share what I learned with others here. The problem/question is at the end.

Under normal circumstances, the 4th  or 'A' axis is angular and the moves are called out in degrees. If you have a CAD/CAM software that supports a 4th  axis, you are in good shape. If all you have is a 2.5D CAD/CAM, then things can be a bit more challenging.

First, lets address the 4th  axis mechanics. My and most other 4th  axis 'conversions' involve adding a stepper motor to a rotary table. Simple enough. In my case my rotary table was a 1:72 ratio. 72 turns of the worm results in one 360 degree rotation of the table.

My stepper motor is a 200 step per revolution (1.8 deg) per step (360 deg/200 steps=1.8deg/step) My controller runs 1/8 microstep mode so it takes 1600 step pulses (8*200) to make a complete 360 degree motor rotation.

72 motor rotations makes one rotation of the rotary table so 1600*72 means 115,200 steps for one rotation of the rotary table.

If we divide 360 degrees by 115200, we get .003125 degrees per step.

Alternately, we can calculate the number of degrees required to move a linear distance around the circumference of a part.

For example: We have a part that is 1.5” in diameter. 1.5* Pi (3.1415) gives us a circumference of 4.7123” If we divide 4.7123 by 360 we get .01309 inches of  linear movement per degree.

If we want to move a linear distance of 1.125” on our 1.5” diameter (4.7123" cir) part, we divide 1.125” by .01309 in/deg and get 85.94 degrees of movement required to move 1.125” linear on the 1.5” diameter part.

Thus, we can create a correction factor or scaling factor for our 4th axis by dividing the circumference of the part by 360, and manually coding the linear distance for the ‘A’ axis move.

Alternately, if your CAD/CAM software has a scaling feature, you can create a scaling correction factor. You would create your part in standard 2.5D with X & Y moves with Y typically being the axis to be converted to ‘A’.  You take the circumference and divide it by 360 then take the inverse of that value (1/x) and that becomes your scaling correction factor.

Using the previous example: 1.5”* 3.1415= 4.7123”
1 divided by 0.01309=76.397 scaling correction factor
Therefore, you would scale your ‘Y’ axis by a factor of 76.397 to get the equivalent linear move on the ‘A’ axis. Once you post the scaled code, you would do a simple search & replace substituting ‘A’ for ‘Y’ in your text editor. The end result  X, Y, backplot & drawing will look strange because the Y axis will be substantially elongated. But it will be correct as far as the computer is concerend.

While it does work, this later method has an inherent problem. The feed rate will be significantly slower than the desired or specified feed rate.

As a result, I had to search for a better method. Thus part 2.

Using the same math:
72:1 ratio, 1600 steps per rev of the motor, 115200 steps for 360 rotary table movement .

In Mach2 (my version), we can take the total number of steps for 360 deg. Table rotation and divide it by the circumference to determine the number of steps per inch of movement. Again using the previous example:

1.5” diameter*3.1415=4.7123”
115200/4.7123=24447 steps per inch of linear movement.

In Mach, we change our A axis from angular to linear. Then calculating for the diameter of the part, we take the solution and use it in the ‘Steps per Unit’ setting for the ‘A’ axis in the motor tuning menu. We do this for each different diameter of part that we have machine. For a 1.5” diameter, we enter 24447 for our steps per unit.

Thus, by doing so we do NOT have to scale our ‘Y’ axis by a calculated scaling correction factor. Our backplot & drawing appears normally. We still have to do a search & replace substituting the A for the Y axis in our posted code. And the beauty of it is the specified feed functions correctly. 

While the technique works perfectly for X,Y moves, IJ interpolation causes things to go bonkers. If anyone has any mathematical reasons why that may be, I’d sure like to hear them along with any suggested solutions.   

Hope this little math exercise is of some help to others.

General Mach Discussion / Re: Trouble cutting accurate parts
« on: December 13, 2007, 11:29:16 PM »
I do not wish to complicate matters, but...........
How is it possible to LOOSE steps and have the part come out BIGGER ? (Rectangular pocket or island)
This doesn't make sense to me, but it doesn't take much. ::)

Duh, you are right!

For some reason my brain was thinking 'smaller' as it's a more common situation. Larger would be either backlash setting being incorrectly set but more than likely, the steps per unit setting needs to be tweaked. Ball screws are not perfect and have error. Use a DI and a gage block to determine the travel distance and correct the steps per unit setting. I had to do that on all 3 axis of my machine to get it tweaked in. 

For example, I have 200 step/rev motors and I use 1/8 step so 200 x 8 is 1600 steps per rev. I have .200" per rev ball screws so 5 x .2" =1" of travel 5 x 1600=8000 steps per 1" of travel or 1"/8000 steps = .000125" per step.

If you have your steps per unit set at 8000 and you move 3" in Mach and the measured distance is 3.015" it means you have .005" error per inch in your ball screw.

So we take 1.005" divide it by 8000 steps and we get.0001256" per step. Divide 1" by .0001256"/step and we get 7962 steps per 1" which would be our correct steps per unit setting.

General Mach Discussion / Re: Trouble cutting accurate parts
« on: December 13, 2007, 10:10:57 PM »
Is the problem consistant or random? If you set up a DI to measure your distance moved as outlined in the manual, is it consistantly .010" off or does it vary? Is the error on all axis or only one.?

Can you describe the configuration of your system. What CAD/CAM are you using to generate your code?

General Mach Discussion / Re: Trouble cutting accurate parts
« on: December 12, 2007, 10:19:31 PM »
Walt, it definately sounds like you are losing a few steps. It can happen for a number of reasons. One common reason is if your rapids are set too high. While you won't miss steps at jog speeds or feed speeds, often on a G00 move as when the tool returns to the origin for the next cut, it's quite possible for you to miss steps. Two things to look at, your motor tuning for one, try backing down the velocity. Secondly, what is often overlooked is the Rapids Speed setting in your post processor. Don't know what CAD/CAM you are using but double check your post processor and back the rapids down.

I had a similar issue a long time ago, and I could replicate it by using a 2" travel dial indicator. I could G00 2" and it would be off 9 times out of 10. Drove me nuts as I was thinking it was backlash but it was missed steps.

If the problem was consistant, i.e. always a few thou short or over of the required move then it would be leadscrew error. That can be tweaked in the Units setting for the axis.

Likewise backlash can show up in a similar manner. Backlash is tweaked with a dial indicator and jog stepping a thou in +/- directions until you get a thou movement  consistantly when you change directions.

Pages: « 1 2 3 4 5 6 7 »