WARNING!! Another Kirk Gordon-length message coming up.
A couple of the suggestions came pretty close to the way the job was = done. =20 Dan's example would no doubt work on a more fancy machine than the one=20 I use (12K of memory, no drip-feed & only three axis moving = simultaneously set some limits) Morris' idea combined with Dan's CBN wheel was how it = was done.
The part was grounded lengthwise by repeating a closed-loop sub-program,=20 and using a 150mm bronze-bonded CBN wheel wit a full 2mm radius:
%MPF 9 G0 G90 X0 Y35 Z0=20 B0=20 R1=3D1.125 (step increment in B)=20 G1 F200 Y24.345=20 L9 P1=20 Y24.343 Z.206=20 L9 P1=20 Y24.337 Z.413=20 L9 P1....
Lather, rinse, repeat 160 times (180 degrees)=20 Move back to start point, change value of R1 to minus, and repeat another 160 times
G0 G90 X0 Y35 Z0=20 B358.875=20 R1=3D -1.125=20 G1 Y24.343 Z-.206=20 L9 P1=20 Y24.337 Z-.413=20 L9 P1=20 Y24.327 Z-.619=20 L9 P1....=20 .... M30
%SPF 9 G1 G91 Y-2.52 F300=20 G03 X1.32 Y-2.48 U3 F100 (radius at base)=20 G1 X55 B151.4 F2000 (cylindrical part) X63 Y-2.22 B173.42 (taper) Y7.22 F1000=20 G0 X-119.32 B-324.82=20 B=3D R1=20 G1 G90 F500=20 M17=20
1.125 degree for step increment was the smallest step I could use. Otherwise the number of lines was too large to fit in memory.The *real* tricky thing was calculating the placement of the wheel = before each sub call. At first I calculated it for a circle rotating around a = point outside it's circumference. This was simple geometry, and produced a = nice, round "tail" ..but only when you measured it parallel to the centerline = of the part - not to the tail.
And that was not all... During a full rotation of the part, the contact = point between the wheel and the part would gradually change from the one side = of the wheel to the other, further complicating things.
I called the customer, and had his engineer adding a 2mm fillet round = the tail perpendicular to the centerline of the part (They use ProE - how they managed to do it without VX I'll never know = )
The engineer mailed back an egg-shaped 2D polyline drawing of the = center of the fillet. Now all I had to do was to was offset that polyline 2mm, and= I had the profile my wheel should follow. =20 My plan was to rotate the polyline in AutoCAD - find the quadrant = tangent, and repeat the process over 180 degree. I could then mirror the points = to get a full profile... or so I thought, but there's no "quadrant tangent" when you're dealing with polylines in ACAD.=20 After painstakingly constructing a new "arcs only" profile, deviating = only about 0.002mm from the original polyline, I finally managed to produce a = set of points(*). After joining the points with lines I ran the whole = shebang through our ancient DOS cam program to get a program with the = coordinates. Then it was only a matter of working the program over in a text editor (with macro) to change work plane, and inset sub calls.
(*) Okay, I cheated when it came to constructing those points. Here's = the pathetic cry for help I posted in alt.cad.autocad :
*************************************************************************= *********** I'm working on a job where a LISP program would be the obviously = solution. Unfortunately I never got into the LISP language except for some *very* = basic stuff more than a decade ago.The task is simple, but repetitive, hence the need for LISP.
I have an ellipse (actually a polyline constructed from arcs) which are rotated in point 0/0 in one degree increments for a total of 180 degrees.= =20
After each rotation a tangent point is placed on the polyline at the = "East" quadrant resulting in an "arc" of 180 points which are later used in a = CNC program.
As it is now, I pick "Rotate," pick the object, and enter the coordinates= and rotation angle. I then pick "points" and place the point... that's five = mouse clicks and five pecks at the keyboard - multiply with 180 and you can see= my problem. I have already done one of these jobs and I feel a severe case = of tendonitis looming in the horizon.=20
I'm dreaming of a simple LISP program which would rotate the object = without having to enter the variables every single time. A "Do While..." loop, where all I had to do was point at the quadrant and click. It would = reduce the number of inputs by a factor of ten!
If time was no problem I would use the trial-and-error approach and try = to write the proggie myself in my spare time (since I hate to ask favors I = can't repay), but I'm all out of spare time and the boss will probably do the eyebrow thing if I spend too much time at the PC instead of keeping the machines running.
*************************************************************************= **************A nice German cad guy, Jurgen, took pity of me, and wrote a nice little= LISP program, which helped tremendously. Thanks Jurgen...
Well, that's about it. Who's next for another show & tell case story? = ;-)
--=20
-JN-