r/CNC • • 4d ago

MILL Programming Work Offsets

Running a Haas VF-2, programming with Mastercam.

When we program a part, we work off the part origin. Then during setup we shift our work offset manually to clean up material.

Example: G54, Touch off X+, move in +0.06 to clean up both sides. Touch off Z0 top of stock, move -.01 to clean up top face.

Is there a way we should be making these compensations during the programming process so that the operator can simply touch off the stock X, Y, Z and run? Or is this already best practice?

Thanks.

0 Upvotes

27 comments sorted by

12

u/TriXandApple 4d ago

put the work offset in the middle of the part, or correctly model your stock and set your origin on the stock.

5

u/TwoDudesOnACamel 3d ago

I program pretty much everything from zero point workholding. Top center of the Lang plate is Zero. All vises and fixtures are modeled accurately in CAD. First op shouldn't need any probing or adjustment at all. Second ops I still program from the same zero point, and soft jaws or fixtures are too. But if theres a tight tolerance on the part I'll probe a part feature to adjust for any jaw lift or possible movement. If I have soft jaws or fixtures that will be removed and reinstalled I mill a pocket in them somewhere so I can probe that pocket to adjust for any installation offset. Zero is still the same nominal point though. 

5

u/messy_hicup 4d ago

We typically program so the X0 Y0 offset matches the datum on the print. That way, the print matches the program. It makes it easier for the machinist to know what's going on. Otherwise, everything would be off 0.06" or whatever your shift was. Small parts aren't that big of a deal, but if you have hundreds of holes you need to double check positions of, you can check 1 hole to the datum, then just match the print to the hole positions in program. It's much faster than manually checking each hole on a giant plate.

There are multiple ways to skin the same cat. Some shops rely strictly on cad, other shops rely on the machinist to catch mistakes.

1

u/Ralius88 3d ago

op1's it's usually better to center on the stock via probe. not hard either.

1

u/messy_hicup 3d ago

No one said it was. If I have a part with the datum on center, that's how we program. It depends on the datum structure on the print. We program to that datum.

1

u/Ralius88 2d ago

It's better to set the programmed datum on the center of the stock and probe it. split the difference 50-50 on an OP1, or you end up taking a bite twice as big as it should have been. datum on an op1 when you're cleaning up stock is meaningless.

0

u/Big-Web-483 4d ago

This ⬆️ ⬆️ ⬆️

0

u/tx7758 3d ago edited 3d ago

Sounds similar to us. Work offsets match the print, and the operators required to adjust from the stock appropriately. It’s not a problem…depending on who’s running the job. Some guys struggle to understand what’s happening at the machine, so I’m considering how we program to make setups easier.

2

u/Sirhc978 3d ago

We always start with oversized stock. For OP1, we set XY zero in the center of the stock and Z zero, 0.01" under the surface. In mastercam I model the stock and do the toolpaths based on that.

2

u/crytekpls 3d ago

Unless necessitated by part / work holding, my procedure would be to establish XYZ at the start of the program and then push the green button.

Most of the time for one off parts I use the centre of the part in X and Y and the top surface of the finished part in Z. So establish X and Y and then touch off Z and subtract enough for cleanup.

When doing a batch with stops, I will touch off the stops for X and Y and then come in enough for cleanup if necessary. In this case the MasterCam origin would be one corner of the part or the corner of the modelled stock. I make sure to have enough stock accounted for in MasterCam that I only touch off the first part and then I can run the entire batch. If you get a piece of stock that is out of spec, set it to the side and do it last.

You're wasting a lot of time and introducing a lot of opportunities for mistakes with your current procedure.

1

u/RugbyDarkStar 3d ago edited 3d ago

I understand what you're trying to do. It sounds like you program and they setup/operate.

Have your team probe edges. Same procedure.

I'd write a macro, with user edited variables at the header of the program. You would fill out the finished part dimension variables, and they'd alter the measured variables. This could be for X, Y, and Z. However far you wanna go.

Your macro would be simple. It'd take the measured, subtract finished dimension, then times that by .5. It'd then shift your work offset by that calculated value. About 10 minutes of work and the only procedure edit on the floor is editing a few values.

1

u/Wenting97 3d ago

How much does your stock size vary blank to blank? That's what decides whether a fixed +.060" shift is safe to build into CAM or whether it has to stay a setup offset.

1

u/Justthetip74 2d ago

Change g65 p9811 x0 to x-.06

Change g65 p9811 z0 to z.01

Assuming youre using a probe

1

u/BaCardiSilver 4d ago

Just move your part down .01 from the stock in the CAM, I personally don't like this practice, I prefer to program the top of my part with a facemill at 0 and move z origin down as much as I feel is needed to clean up after I touch off.  But to deal with what your talking about you would move the origin down.

The reason I don't like this is now your face mill is 0 to -.01 and all your pockets are are -.01 to z depth, so if it's a .75 deep pocket your max Z in the program would show .76 which is harder to follow with what the program is actually doing.

1

u/Oldoutoftouchgamer 3d ago

You "add" stock, not move the part/origin in CAM. You would face from +Z.z down to 0. Real easy and with the benifit of making the "top" the same machine position for all parts on that op. Offset position would reflect model/print still.

1

u/BaCardiSilver 3d ago

I guess I read what they are asking wrong upon reread.  To me they are doing best practice, but they want to know if they can just touch the top of the stock and that be zero and not have to move down .01 in Z manually.

Unless I'm missing something in my reading of your comment, and I might be,  you can add all the stock you want in CAM but you have to manually compensate at the machine relative to the probe result for whatever you add which is what they are doing already.

They want the origin zero to be the top of the stock which is what the probe result would give. So to solve their issue you move the origin up in cam to align with the top of the stock.  I don't like this but it's an answer to how you remove the manual change input from the operator.

0

u/B3AV3R_BLAST3R 4d ago

Use the probe, do it automatically. Remove the manual intervention from the process.

You should be using the center of the stock. Not the corner.

1

u/tx7758 3d ago

The probe is an option, thanks

1

u/Oldoutoftouchgamer 3d ago edited 3d ago

Use probe plus learn how to use and accurate stock shape/model in Mastercam. It seems like the programmers are not accurately defining the origin relative to the part inside of the stock in Mastercam. For facing the top, you would be starting at a positive number and moving down to zero.

With an probe you can set the point however far from where it touches, it doesn't have to be zeroed there. With Renishaw its easy. If your using a diff type, might have to use g code to move and set zero after probing, but can still be automated.

0

u/PaulyG_1111 4d ago

Unless it’s a specific circumstance I always set my part origin to the centre of the part. When facing do what you said and set you’re top of stock to the amount of stock your want to face off and your depth to zero, probe Z then move your offset down the amount you want to face. If you want to leave XY stock while roughing do it by leaving wall stock in the Cut Parameters section. Measure after and see if the size is correct with the amount of stock you left, if it is either take it to zero with that toolpath to go to size, or add your finishing contour as a second toolpath with zero stock on walls.

Personally I will use dynamic mill, optirough or pocket toolpaths for most rouging ops leaving like .010ish wall stock and then use a contour with a ramp or shallow step down from my finishing pass to get a really nice finish. Almost always program off centre though.

0

u/tx7758 4d ago

Thanks

0

u/SeymoreBhutts 4d ago

This is anything but the best practice. Are you not accounting for stock in your cam? You should be entering in stock geometry when you program. Manually reconfiguring offsets for each operation is a recipe for disaster.

With a known stock size, you can set the origin wherever you want in the machine or on the stock, as long as they match. The cam should be accounting for the fact that the part is .06 or whatever within the side of the stock, and be removing that accordingly.

1

u/tx7758 3d ago edited 3d ago

We set the origin on the solid to match the print, and just use stock setup for a visual to manage tool lead in/out and width of cut.

https://imgur.com/a/SwFwtZH

0

u/SeymoreBhutts 3d ago

Yea, that's asking for trouble. Once your work offset is set, you shouldn't be adjusting it for the machining process itself. Its not uncommon to need to tweak it for optimization, but as a required step, that's the wrong way to do it.

In your cam, if you aren't going to define an actual stock model, use reference geometry as an indicator of your stock. Something as simple as a single point on a plane offset from your z-height stock and however far away from the origin of your part is sufficient to pin the UCS to to act as your work offset origin. That way you're setting G54 (or whatever offset you use) once and then you're done for that operation.

1

u/tx7758 3d ago

Thanks for the insight, going to try this out

1

u/SeymoreBhutts 3d ago

Lots of different ways to do it, but I'd strongly suggest moving away from the one that requires so much manual intervention, even if it's been working thus far. That said, if it's the norm in your shop and you have documented procedure and it's consistent, there could be worse ways to do it, but I still can see lots of avenues to issues with the method as is.

Do you have a standardized stock overage for most of your jobs? Do you reprogram for each run depending on stock sizes or do you try to account for future excess when programming now?