Wednesday, October 24, 2007

More fun with EMC2

So I ran that toolpath the other night. "I'll just run it in the air with no tool," I told myself. Sure... After I saw everything was running smoothly, of course, I loaded a 3/16" end mill, grabbed some aluminum scrap, touched off, and let it rip. Holy cow... I have to say, I'm impressed. The pulse stream coming from EMC2 is cleaner than anything that's ever driven my mill. No missed steps, no locked axes, no nothing.

But the resulting cavity was the wrong size. I more or less expected this. It's something you face every time you change software on a CNC mill. My mill gets 8000 steps per inch (0.000125" resolution), and EMC2's setup files defaulted to 4000. That's first on the list to fix.

I started pawing through the ample documentation (a huge change from the older EMC), and my jaw just about dropped. The change I needed to make was easy. So's adding home switches, which my controller is already set up for, though I haven't added the hardware itself to the mill. So's adding servo enable/disable, which my mill is completely set up for. Three easy changes that make it just like it was under TurboCNC.

Now for the fun part: You can give the mill a pre-defined location for tool changes. So you can use standard G-codes for tool changes, even on a mill that doesn't have an automatic tool changer on it. It will apparently move to the change location, pop up a window telling you which tool to change to, and wait for you to finish before starting the spindle back up. WOW! This I gotta try.

It also should soon have support for a tool height setter. This is basically a touch probe mounted to the mill table that faces up. When a new tool is loaded, it lowers to the tool setter until it touches, saves the Z height as an offset, and then goes back to work. Changing drill bits? No problem. The new length will be picked up. That's NICE.

I can also apparently just finish and plug in the digitizing probe I've had in the works for years. Digitizing a pre-existing part has apparently been in there for ages. Great!

The one that looks the toughest to set up is the spindle encoder, which would let me do CNC threading. I've seen a video of an EMC2-controlled lathe doing some really coarse threading, but not much on how to do it. (In case you're new to machining, "coarse threading" is typically harder than "fine threading" because you're cutting deeper, removing more material, and have to do all this with a slower spindle speed.) I have an indexer on my spindle, but no real rotary encoder. Since I built the indexer myself using a discrete IR interrupter, I can easily change out the optical plate it senses for one with more positions. So even if I can't use my setup as-is, I can certainly change things to suit. It'll happen!

One neat feature I saw was that it's got a feature for touching off on your workpiece. "Touching off" refers to finding one corner of the material and setting that one corner as your (0,0,0) coordinate point. On a manual mill this is typically done with an edge finder. An edge finder is a tool of a given diameter (mine's 0.200" in diameter) that reacts when it touches a workpiece. I've got an old-school edge finder that de-centers itself. But you can get electronic edge finders that light up when they touch off. In any case, the trick is to then compensate for the radius of the edge finder so you know where true zero is. In EMC2, apparently you can tell it the geometry of your edge finder, and when you're touching off you simply jog in an axis until it touches, click the "Touch Off" button for that axis, and it does the radius compensation for you. Slick!

Two features EMC2 has that TurboCNC didn't (at least the version I was using) are constant velocity contouring and cutter compensation.

CVC basically means long strings of short moves (which you get when you're cutting some contoured surface) are treated as a single move, and they're cut at one constant velocity.
In a CNC controller that doesn't support CVC, each move would be treated as a discrete entity, complete with acceleration from a dead stop, deceleration to a dead stop at the end, etc. So a contoured cut could take hours! I made some parts for work on an older system, and what should've been a two hour part took almost all day. It was a pain. I need to make spares of those parts, so I'll get to put CVC to the test in the very near future.

CC lets you change your mind about what tool you use without having to re-code the whole program. For example, if your controller knows you're using a 0.250" diameter mill, and that the material is off to the left, it'll displace the toolpath 0.125" to the right so that the cutting edge of the tool is in the right place. With CC, if you change to a 0.500" diameter tool and let the controller know, it'll displace the toolpath 0.250" to the right so that the cutting edge of the tool is still in the right place.

So far I haven't had much need for CC, but I'd like to see what I can do with it now that I know I have it. My CAM software supports CC, so it'll be neat to try.

Enough rambling for now. I need to start making chips!

Tom

No comments: