View Full Version : Subroutines; a Tour de Force, and Work Zeroes and Fixturing.


Geof
01-31-2008, 12:13 AM
I have been involved in several threads/posts discussing subroutines and multiple work zeroes and have started some threads about fixturing; so I figured I would start one combining it all together around a particular part we make. The first picture shows the body of the part that I am dealing with and the second all the associated bits that go with it. The whole assembly attaches to a tube and it is used as a detachable mounting platfrom for a LCD computer monitor that can tilt the monitor to different viewing angles and lock it securely. The primary application is for people who have ALS (Lou Gerhig's disease) and are using eye-tracking systems for communication and computer access. (If anyone wants more information send me a PM.) A secondary application, believe it or not(!), is mounting LCD screens for the pit crews on NASCAR teams.

It is possible I uploaded the program in a different thread some time back but here it is again; way too big to go in the thread. The program has twelve work zeroes at four different angular positions on a rotating fixture so it is effectively 48 work zeroes. There are eleven tools and some are called in different subroutines so there are a lot of subroutine calls. If you look at the program it says something about Sept 2004 which is when it was modified to go on our VF-0; the part was developed around April 2003; now the part is done on one of our VF2s.

As a side comment: If I did this program now all the work zeroes would be defined using G52 coordinates from a single main work zero; I was not up to speed on G52 back in '03 which is why it uses G54, etc. This is really quite inefficient because the setup person/operator (same person in my place) has to enter a dozen work zeroes into the machine. Although my production people might have written a small program using G10 lines to read them all in for all I know. (It is nice having people you can trust.)

The third picture shows the first prototype that I did in 2003 and the fourth picture shows the setup for doing the prototypes. The top surface of these parts is the same as some other parts we have made for two decades; it is just the tilting feature that is new and the key to the tilt is the 'clevis' like ears. I have a somewhat unconventional way of designing and prototyping parts; I don't do, actually I can't do CAD/CAM, so I cannot make fancy drawings. I stick a chunk of material in the machine and carve away all the metal that is in the wrong place. I do have a 2D drafting program that I use to get tangent points for curve/line intersections and things like that but in general I visualize the part and then write a program on the machine that will make what I can 'see'.

But first I had to figure out a fixturing method; I already had the top configuration, that was taken from an existing part, and I needed something like 2 inches of total thickness to make the part. The top of the part has a 0.502" hole and a semicircular groove so these were what I had available for fixturing purposes. The fifth to ninth pictures show how the fixturing works: A plate with bolt holes has semicircular holes with a rim that fits the semicircular groove on the part, and also has holes that line up with the 0.502" holes. The plate is slid onto the part, pins are inserted through the holes in the plate and into the holes in the part, the heads of these pins fit into holes in the base mounted on the rotary table and the plate is bolted down.

And this is where I got to around late April 2003. Now I have to take a break and fly to Orlando tomorrow for a few days.

maxine
01-31-2008, 02:21 PM
Geof,

That is great info for CNC users like me who are just learning. Thank you, thank you, thank you for taking the time to post it.

Maxi

Adobe Machine
01-31-2008, 04:18 PM
Geof: Yes thanks, even new ideas for" old hands" is super..Would you post some more ?
At one time I used a pillow block for a set up, but got some vibration at the end nearest the pillow block..finally used a steel strap around the end, adjusted tension with the T nuts that were attached to the strap, just a pita..I see no evidance of vibration in your set up ..Is that a real high precision pillow block ? Or do you have another secret ?

Don't get sunburned in Orlando !

Adobe (old as dirt, but warm in Arizona !)

PBMW
01-31-2008, 07:25 PM
Good stuff Geof
I'd like a little more info on G52's though.
(I'm comming from Fanuc land)
I have been doing fourth axis positional stuff for years. I've heard the argument of program from the center of rotation. That really gets into the quality of tooling issue though. I much prefer to have multiple offsets so I can maintain the inter coordinate system relationship and have a little adjustability.
But that's just me. I find it easier to adjust the machine that way
But...I'm allways willing to learn sumpin new.
So....School me! Tell me bout this G52 thing of yours.

gar
01-31-2008, 09:33 PM
080131-2203 EST USA

PBMW:

In either HAAS or Fanuc mode in HAAS the content of G52 is added to the current G5x, but does not modify G5x.

One reference is
http://www.cnczone.com/forums/showthread.php?t=43217

Search has not done well in finding other places where I have discussed G52.

Initially you could set G52 to all zeros.

G52 X0 Y0 Z0
#500 = whatever shift you want to make in X below from one loop to the next.


Loop start

Then at the end of a loop you could do
#5201 = #5201 + #500

Obviously you need other tests to terminate the loop.

Instead of using a constant offset you could reference a table of values that are used for the offsets.

.

Geof
01-31-2008, 11:56 PM
Good stuff Geof
I'd like a little more info on G52's though........

Look in the Thread Vern Smith has on using a mill as a lathe; I think I gave a description there.

I do plan on going into it more in subsequent posts.


Adobe; I will have you know this is a serious business trip with no time for sunbathing. And actually that is the truth :). Well, maybe serious is taking it too far but it is a business trip and will not involve getting out in the sun.

Geof
02-04-2008, 11:41 PM
Back home again so I can continue meandering through this thread and respond to some of the comments and questions.

Maxine; thank you for the thank yous. Part of the reason I spend time on the zone is to pass on experience and show how things can be done.

Adobe; The pillow block you see is just an ordinary pillow block and I did not get vibration, which quite honestly surprised me. I still use that same pillow block on the machine that I use for prototyping in the home shop but all the production machines use the Haas tailstock support for the rotary. A possible reason I do not get any vibration is that I machined the boss to be a neat fit, i.e. slightly larger than 2.000"; I have to tap the pillow block into place with a plastic hammer. This setup is no longer used, it was only double sided with three parts per side; the production setup is four sided with four parts per side and I will get to that later.

PBMW; I did refer you to a different thread on G52's and gar gave you some description. To use the same phraseology you use; G52 is an alternate way to get inter-coordinate relationships with adjustability. I like to use multiple offsets for the adjustability they allow. Nearly all our parts have holes and my approach is to place the work offset at the hole center. Often parts have intersecting holes and when these are done on a rotary fixture having a different work zero for each hole means it is dead simple to tweak the intersection spacing. However, as I mention in the first post now I would use G52 rather than separate G54, G55, G56, etc., but really there is not much difference. The way I have it figured out if you have fixtures that go back to exactly the same location on the machine it makes no difference. We have one machine which has three Kurt double lock vises permanently mounted on the table and for these vises we have sets of custom jaws for holding different diameter stock; twelve parts per load. This machine cycles through the same range of parts and because the vises do not move the individual work zeroes for the different parts remain the same. This means we do not have to manually enter any work offsets; each part program has its own work offset program; the work offset program is just a string of G10 commands that enter the work zeroes for the custom jaws used with the part program. We also keep dedicated tooling for the different part programs with the tool offset values in a tool length program. Changing a setup on this machine is a case of; mount the custom jaws on the vise, load the tools, call up the tool length program and run it to enter the tool length offsets, call up the offset program and run it to enter the work zeroes, load the parts into the vises and push Cycle Start. If the vises are moved and replaced it is necessary to change all the work offset values in several work offset programs; needless to say we avoid moving the vises. On other machines we change between vises and a rotary fixture and this is where G52 becomes valuable. G52 defines subsidiary work zeroes, or child coordinate systems, with reference to whatever main work zero is active. The G52 command includes X, Y (and Z, but we rarely use it) coordinates that give the location of the child coordinate relative to the main work zero. All these G52 commands and coordinates are in the part program. When the rotary is setup it is only necessary to find and enter the main work offset location for a reference hole located at the center of the base that holds all the part fixtures; rather than entering 12, 16 or 32 individual work zeroes. It is still possible to individually adjust the G52 offsets but this is done in the program rather than on the offset page.