Grinding Cams - CNC program Beta test

Home Model Engine Machinist Forum

Help Support Home Model Engine Machinist Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
I knocked up grinding spindle and tried it out
Mechanically I have found that my grinding spindle motor needs more hp a 100W is not enough.

A few things that I though may be helpful -
1-Linear moves:- To allow cutting the full width of a cam when using a narrow grinding wheel or ballnose cutter.

2-Continuous rotation:- If you cut in the one direction all the time then there should be no backlash to worry about
and it may speed the process up by not having to "rewind after each cut".

3-Finishing cuts "spring cuts":- To specify how many rotations the finish cut should do before the grinding wheel moves away.
E.g. Specify 5 spring cut so the cam will do 5 continuous rotations of the finish cut to clean up any high spots or spring in the cam.

I only got a 1/4 of the profile done as it was taking to long with my current setup

I am now on the lookout for a more powerful motor to see what damage I can do.

Cheers
Paul

Grinding Test 1a.jpg
 
High Paul:

We took your suggestion and John has added the ability to rough out the cam with a ball nose cutter. IMHO that's a bit of a step backward from the goal of being able to GRIND a perfect cam. Sort of like going back to using CamCalc. But it's optional so if it helps you out then that's fine. We aim to please. ;)
As for your other suggestions I don't know anything about the math and how it relates to the grinding process, but I assume there is good reason why John chose to grind and rewind instead of going it circles. Rotary tables are all different. Mine only takes about 20 seconds to rewind on a G0 so it doesn't waste too much time.



Sage
 
I would like to know what type of wheel you are using and where do you find them
Thanks Dave
 
The wheel size you choose is dependent on the grinder you have. I made my grinder and I'm using a 7" diameter wheel because I assumed it might have less error in the grinding calculations if it was closer to a flat surface. According to John (the programmer) it really makes little difference what diameter the wheel is. Except to say that a larger wheel has more circumference so it might wear less for a given grit type.
In any case I'm using an Atlantic EK1 15018 VYF which is 7" diameter x 1/4 wide x with a 1-1/4 hole. The cam lobes I'm grinding are 1/4" wide so it was the correct width to do the grinding without having to repeat each pass with a sideways move. I would recommend that approach.

As for where to purchase them. They are very available from any machine tool supplier. There is a dizzying array of grit types and grades. So you should do some reading on them. The number I quoted is 150 grit (part of the number) and I think it's a medium hardness material (the letters).
I've forgotten.
I'm not an expert on wheels I purchased a few different grades to see which works best. They run around $15 more or less in that size.

I'm sure others can chime in on the topic.

Sage
 
Hello my name is Leonardo and I'm from Argentina. I'm new to this forum as you can see and I registered not because I build model engines but because my father, my brother and I manufacture camshafts for spare here in Argentina.

I'm going strictly to the point that has to do with this thread. We grind our camshafts using automatic grinders with LinuxCNC as a controller. The grinders only use LinuxCNC for positioning because we grind the lobe profile using a steel master cam.

Anyway, a while ago a great contributive user from the community named Andy used LinuxCNC and his lathe to turn eccentrics and other shapes moving the tool based on the spindle position. Here you can see a video of the machine working: [ame="http://www.youtube.com/watch?v=FpP7iTKuWpw"]http://www.youtube.com/watch?v=FpP7iTKuWpw[/ame] The approach he uses is simple and great. He adds an offset to the X axis based on the spindle position for making the profile. So, at the moment I saw this I thought in the way of using the same principle with a cylindrical grinder for making camshafts. I need to clarify that with this method it's not possible the use of G-code cutter compensation since the angular axis is treated as a spindle and not as an actual axis like you would expect on a mill. So the axis is always spinning at a certain speed (wich in commercial CNC grinders is not constant) and the transverse axis is following the spindle position. This is the same principle of the threading procedure.

Since we make our camshafts based on the original part, we capture the profile of the lobe to reproduce it on the new part. Now we use the old method of generating a steel master cam. With this method the reproduction of the lobe has no compensation for the grinding wheel diameter but there's no problem since the wheels are 500 mm or more, thus the error of the finished lobe is of a few hundreths of mm.

Now comes the fun part.

I'm thinking about capturing the shape of the lobes using increments of about 0.5° or 0.1° wich is a lot of accuracy given the size of the lobes we're talking about. And after that, use the data to apply the offset to the machine using LinuxCNC. But for this I'm considering two approachs.

1- I capture the lobe using a big radius for the roller (about 300 mm of radius) and use the plain offset that I get of the capture ignoring the grinding wheel radius compensation. Since the griding wheel has a diameter of 500 mm or more, this is the same sort of error I'm getting now when I use the master cam for grinding the lobes, wich is almost none.

2- I capture the lobe using a little radius (20 mm or 30 mm) for the roller and then I need to compute the variation of the angle of the tangent between the roller and the lobe. Then I need to figure out a general equation in wich the roller diameter could be changed to the wheel diameter so the offset is automatically compensated. This way I can compensate the grinding wheel in a very accurate manner and also I can change the value of the radius everytime the wheel is dressed.

I try to be a perfectionist so the approach number 2 is the one I want to use. May be my math habilities are not that good or I need more experience with the calculations but I can't figure out how to calculate the angle of the tangent line between the roller/wheel and the lobe. I'm trying to do it graphically and I can't calcule it. The data that I have is the distance between the center of the lobe and the center of the roller, the diameter of the roller and the angle of rotation of the lobe, but it seems I always have missing data.

I would really appreciate if any of you could give me a hand to guide me in the right way. Please let me know if you have any doubts about my problem or if something is not clear.

Thanks in advance for your help!

Leonardo Marsaglia.
 
Last edited:
Hi Leonardo:

Thanks for asking your question. Hopefully someone here can answer it for you. If not, for sure if you join my Yahoo Group called GCam a couple of guys there can help you out because it sounds like our program Gcam is doing exactly what you are trying to do and I'm sure our programmer has been through all the math you're having issues with. In addition there is another member who has written several articles on grinding cams so I'm sure he can help you with some of the Geometry.

Hope to see you soon on the Yahoo group Gcam.

Dave Sage
 
By the way:

If you go back to the first post in this thread you'll see a link to the Gcam users group where you can join (free) and another link to our program if you'd like to give it a try on line.

Thanks

Sage
 
Leonardo:

I had a look at your video. Very cool. It looks very similar to what Gcam is doing only on a lathe.

Maybe John the GCam programmer would be interested in something like this LOL.
I'll pass this along.

Very nice.

Thanks

Sage
 
Hello Sage and thanks for your reply.

I was really enthusiastic yesterday so I continued trying to figure out a method to reproduce a cam that it's already machined.

So rewatching my method of capturing the lobe I figured out that what I need is the actual displacement of the lobe without the action of any roller. Thinking this I came up with a possible solution for the capture method and it looks like the image above.

I think that using a really sharp edge like the one in the picture, attached to some measurement device (linear transducer or a gage) and also measuring the rotation of the lobe I can check for the displacement of my prime curve without the action of any radius. So in this way I can figure out the pure form of the profile I'm trying to copy. Of course this is done in Solidworks so the accuracy is perfect, but with a really sharp edge and assuming all the system for measuring the lobe is well done the accuracy coul be in the order of the 0.01 mm for the displacement and 0.1° for the rotational position wich is enough.

So, in this way I can easily calculate the radius compensation with a few formulas, in fact I did it yesterday and turned out to work really well. If all the setup is well on the measurement device and also on the grinder, I can (in theory) finish lobes practically equal to the one I copied with almost none error.

What do you think?

Thanks as always!

Leonardo Marsaglia.

Lobe_copy.jpg
 
Hi Leonardo:
I got a reply from Carl on the Yahoo group and I'm posting it below. I personally have no knowledge of how to solve your problem. I have asked him to join HMEM and answer you here and we'll see if he is willing. Otherwise it might be best if you joined our Yahoo group (see first post in this thread) so he can answer you directly. It's difficult for me to be to be in the middle posting on two forums. (Sage)

Here is Carl's response:

Leonardo, at a guess you are familiar with the conventional "analog" cam grinders such as the Berco but I will mention this anyway. They use one size master follower whose diameter is about 5% less than new grinding wheel then use the wheel until it is about 5% smaller than the follower. That distributes the error on either side of nominal which is, as you point out
for 20" grinding wheels, small.

Regarding your question about measuring a cam with a small diameter follower:
The methods for these kinds of problems are discussed extensively in cam design handbooks. I can suggest Rothbart, Harold, Cams: Design, Dynamics, and Accuracy, 1956 as one source. I'm not entirely certain about the geometry of your proposed measurement and grinding method - are you
using an oscillating follower (rocking bar cam ) or a linear slide?
In any case Rothbart covers both systems p. 122ff.

The general rules I use for reverse engineering in analog work are:
1. The geometry of the measurement system is the same as the grinding system
2. The radius of the grinding wheel is equal to the radius of the measuring follower. As you note, if these requirements are not met, the correction of the profile must be calculated. In addition, if you are using an oscillating system, you may need to take into account the asymmetrical response of the follower to the cam profile - the rise and fall curves will be different due to the change in distance from the point of contact to the center of oscillation.

I am, unfortunately, completely unfamiliar with CNC and can offer no help there. My interest is in analog cam grinding methods and even more in the design of cam profiles.

Carl Wilson
 
You are quite right in your understanding of the problem computing the grinder offset to follow the CAM.

When I developed the GCam program I could simplify the maths because the CAM is defined by 3 arcs; base, nose and flank. Since all are arcs of a circle it is not too hard to compute the contact point with a grinding wheel of known diameter. If you care to try the program gcam.lucasemail.org and enter some values that approximate the size of your cam and grinding wheel the last screen gives a graphical simulation where you can see the geometry at different rotations of the blank.

GCam itself will not work for you as I don't think your CAM geometry can be defined by 3 arcs.

To add to the excellent responses by Sage and others:

Using a mechanical setup with follower the same diameter as the grinding wheel automatically generates the correct grinder displacement. Measuring the CAM geometry by using a circular gauge same diameter as the grinder will produce correct offsets for a CNC implementation. However, neither will allow for grinder wear or generate multiple passes.

The method in your video uses a point tool. Mathematically this is a grinder of zero (or maybe 0.001) diameter and therefor no compensation is necessary and wear is trivial.

You could, as you suggested, capture the true geometry of the sample using a point probe. This could be automated on a CNC machine and digital probe and give you a very long list of offsets. You might also be able to use a digital camera square-on (or scan an existing drawing) and digitally process the image to produce a graphic of the required shape. I don't know just how this would be done or how accurate.

In any case, once you have the shape defined by a list of offsets at small angular increments it is theoretically possible to compute the required grinder offset and compensate for grinder wear. A possible approach would be to mathematically model the CAM shape with a large number of short circular arcs that when linked up fit the required shape to some degree of accuracy. The greater the degree of accuracy the more arcs will be needed! This is the approach taken in GCam but we only use 3 arcs and you will need hundreds!

This is not a problem for the amateur. Anybody know a mathematician or computer science graduate with experience with the sort of graphics used in video games or other mathematical modelling? Could you get some help from a local university?

To start you will be looking for a computer program that will take the list of offsets from your probe and generate as output a list of arc segments. A second program would take these segments and generate the offsets for a grinding wheel of known diameter. These grinder offsets then need conversion to G code with support for multiple passes. If it is any help the GCam program is open source and available on Github. It supports the last two steps in this process for the 3 arcs and would need extending to any number of arcs.

Finally, a completely different option is to first produce a graphic of the required geometry and import to a high end CAD/CAM program that will produce a tool path to mill the shape in the X-Y plane. The resulting G code would then need conversion to polar coordinates with the appropriate axis. I tried this out before building GCam and my well known CAD/CAM program did a deplorable job not tracking to any useful level of accuracy. I'm guessing these programs expect to trace a large profile with a small cutter but we are doing the opposite. In fairness, I'm using an out of date version and there are many other programs on the market. I just put this out as an opportunity with a word of caution.

Hope this is of some help and I wish you the best of luck.
 
One of the advantages of retirement is to lay in bed in the morning coming up with fresh ideas; so, here is a further thought to my last post that eliminates the need for curve fitting maths:

If the sample CAM is, as suggested, examined with a digital probe then one will have a list of angles and offsets to the CAM periphery. 3,600 if probed at 0.1 degree intervals.

Image the CAM in a horizontal rotary table turned to each of these angles in succession. At each position a program can calculate the X-Y coordinates of all the 3,600 points. An imaginary grinding wheel (horizontal) positioned along the X axis could be moved till it just touches each of these X-Y points in turn and the offset to the centre of the wheel calculated for each (from the two triangles.) This gives 3,600 wheel offsets.

In all but one location the grinding wheel will be gouging into the CAM. At the point where the wheel is just touching the CAM the offset to the centre of the wheel will be at it's maximum.

What is needed is a program with two loops. The outer loop takes each of the readings from the probe in turn.

An inner loop then computes the distance to the wheel centre when touching each point in turn and determines the maximum.

The angle from the first loop and the maximum offset from the second loop result in 3,600 coordinates to be converted to G code. Plus support for multiple roughing passes, a finish pass and compensation for grinder wear.

This is a more practical approach because it uses simple geometry. The downside is that since the curve is not known mathematically there is no way to determine how close the contour is followed. With sufficient points and high accuracy in probing the original this may not be a concern.

Not difficult to implement in GCam. Add an option that will replace the geometry screen with code to read a file of data from the probe. An alternate, and much simpler, calculation module to run the loops and compute the grinder offsets. Much of the rest of the program will handle definition of axis, multiple passes etc. should remain the same.

Much easier to find a Visual Studio (Microsoft C#) developer than the high level of math skills needed to do the curve fitting.

If anyone wants to take this on I offer support and help.
 
Hello John, and thank you for your detailed answer.

I've been thinking about it and doing some calculations with the help of Solidworks for the sketches and I think the best for me, since we manufacture a lot of different camshafts is to capture it as we were discussing using a probe with a radius so small that approaches to 0.

I have no problem in making such a device to place the different camshafts and use an enconder for the rotational position sensing, and an LVDT for the increments in displacement. Since we do make camshafts for living I'm taking this really serious. I'm thinking about using an Arduino microcontroller to control the device and adquire the data of the cams. My brother has experience with these kind of microcontrollers so it's doable.

About the machining of the profile. The video shows a lathe that's working in the normal way, with the spindle turning at a constant speed, and not using it as an axis at all. The guy who did this, made a little program (wich is easy with LinuxCNC) to trick the X axis of the lathe and add an offset at the required angle to match the profile of the part. In this case as you well said, the cutting tool could be considered as a 0 radius wheel and then there is no need for radius compensation.

Since I need to grind the cams, and since the center of the part is aligned with the center of the grinding wheel on the machine, I can easily calculate the distance between the both centers in Solidworks playing with different angles and radius. The calculations I made were based on the angle of every offset captured as I mentioned before and I can ensure a 0.0001 mm accuracy in the offset for the grinding wheel. This is more than the machine can handle since the increment for the machine I'm going to use is going to be of 0.001 mm.

I'm now working on the general calculation that I need to place inside LinuxCNC to apply the offsets to the axis of the wheel so the grinder can make the profile.

As you pointed out, using cutter compensation with G code is another option and I thought about that but it's more complicated for me since I need to add an extra servo motor for the angular axis of the part. Also, I prefer the constant speed approach and follow the position of the spindle with the encoder because it's more flexible for me.

I might have the chance to test this in the next weeks on a conventional machine that we have running steppers for positioning. It's going to be slow but it's a beggining.

I'll be telling you if I make some progress on the matter. By now it seems pretty much doable and also seeing what Andy done with his lathe and the eccentric I'm more than convinced so I hope I can make it work soon!

Thank you guys for your support and knowledge!

Leonardo Marsaglia.
 
I looked at Leonardo's drawing of the knife edge follower on the cam profile and thought that while it was theoretically good, there might be metrological difficulties. I found one source of info on measuring cams: Camshaft Reference Handbook by Don Hubbard. Don (deceased) was the chief engineer for Crane Cams and his book is a source of info on cam measuring and much more. It is available from several sources. This is the link to a google search:
https://www.google.com/#q=camshaft+reference+handbook+don+hubbard

Carl
 
Back
Top