Jump to content

Welcome to eMastercam

Register now to participate in the forums, access the download area, buy Mastercam training materials, post processors and more. This message will be removed once you have signed in.

Use your display name or email address to sign in:

Recommended Posts

I searched but cant find any info on programming a horizontal from center of rotation versus using work offsets. I have been programming our two horizontals using work offsets for each side of the plate that we have up. For some reason the operators mess up finding the work offsets from time to time for what ever reason. My boss is insisting i start programming from center using no work offsets. What are your thoughts. Our typical work consist of squaring a plate of various sizes four sides with a macro type program. And when we have to put slots, lift holes or short gun drilled lines in i program them with mastercam. I am using top as center then picking the face of the edges for my front, right, back, left offsets which front and back are G54 and right and left are G55. The plate is squared on center of the pallet. I don't like programming from center with no offsets because i have to manually enter a clearance, retract, top of stock and depth. When i normally have to only enter the depth because everything else is entered as a default. The boss wants everything to be monkey proof. He doesn't want the operator to have any responsibility other then hit the go button. I am insisting that we need to at the very least be able to enter work offset.

Link to comment
Share on other sites

There's a couple things you can do here. If you want to go with your boss' suggestion - model your plate accurately in space, and use all incremental values for your clearance, retract, feed plane, etc.

 

Or, you can look in the post section of Emastercam, and snag Zoober's offset generating post add on. You still need to have the part accurately modeled in space, but it will take the origin and orientation of the Tplanes, and output G10s to assign the offsets automatically.

Link to comment
Share on other sites

This has always been a hotly debated issue on eMC, so I'll say alwaysprogram to part zero. The numbers in the program will always make sense to the set-up guy and operators. As well as make it easier for troubleshooting. We run around the clock so I don't need phone calls at 2am asking how much stock I'm leaving and what diameter is this or that programmed to.

 

I can also take a program and move it between different sized machines and not have to change a thing in my program.

  • Like 2
Link to comment
Share on other sites

I have never programmed a hori but in a previous place was gingerneering manager and responsible for 5 of the things....and from my experience I would say use work offsets every time.

We initially used centre on four of the same make/model of machines and so in theory it didn't matter what job went on what machine. But a machine would get knocked (through bad tool setting or whatever) so the table was then not quite on centre when rotating. In then end as a couple of machines were banged (not defending here at all) it became a bit of a nightmare but with work offsets side faces could be tweaked and parts came out better/quicker.

Link to comment
Share on other sites

To add another dimension to this - you can also use center of rotation, but assign G54, G55, G56, etc for each side you're working on - even though all of them have the pallet center coordinates entered in the register. Then you can still make minor adjustments so each side as needed.

 

Personally - I prefer having the offsets set relative to the part, just out of a mental comfort, and habit. On 5 axis parts, and parts that are sitting at the center of rotation on a horizontal, I'll usually do center of rotation. For parts mounted on a tombstone, I use offsets based on the part. However, even when I'm using offsets that are based on the part - those offsets are still generated. We don't go out and "touch off" on parts.

 

When I start designing the fixture in Solidworks, I start with the tombstone as the first part of the assembly - then bring in my part. Mate the part to the tombstone so it's origin is some nice round number, and then design the fixture around it.

Link to comment
Share on other sites

I will also add that more importantly than where you program to, is the setup consistency we use modular fixturing here and every thing gets set-up the same each time. For full 4th axis work I will program to the center of the rotation, I'm not into the realm of 5th axis yet.

Link to comment
Share on other sites

I will do center of rotation most of the time. But it depends on what I am doing. Depending on the complexity of the part I may use a tooling ball program from the top dead center of the ball to make future setups quick and error free. One thing I do though is model my part and fixture in the same position as it is from center of rotation. Then I will set a WCS at the desired location if need be and program using that.

Link to comment
Share on other sites

I have been programming horizontal rotaries for more than 20 years and this was a problem we always dealt with that seemed no one had a good solution to. We came up with our own solution that works incredibly well that takes care of this problem and we also came up with another solution that takes care of another problem inherint with rotaries and that is Z axis clearance on rotations. The first we created a set of macro's that calculates coordinates based on rotations. All that is entered is one set of coordinates at any angle. The macros then calculate each offset for each rotation in the program we also allow provision to be able to adjust each offset individually thereafter. This eliminated the need to program on center as it just does not matter anymore. The part can be anywhere and the system figures out all the correct positions for you. The other problem is with z-axis clearance when rotating. We also created a macro that handles this for us. This is called by a simple Mcode and has eliminated all operator error. We used to have crashes on a regular basis because they did not watch for clearance and this became worse when you were programming offcenter.

  • Like 1
Link to comment
Share on other sites

Joe,

Yes.

For the fixture offset in out nc code we have a section for "Fixture Offset" in the header shown below.

(------------FIXTURE OFFSETS------------)

N100G65P9995X-12.Y-10.5715Z-27.0B0.A0.S1.

(------------END FIXTURE OFFSETS--------)

 

XYZ & B are self explanatory, the A is for the angle that you found the origin from B0 so you could dial it in at 45 degrees and it adjusts for this. The S is for designating multiple parts that are on the same plane say on a tombstone so you can adjust each one individually. Then after this section we have a section were you can adjust each rotation individually and done incrementally. Shown below.

(--------FIXTURE ROTATION ADJUST--------)

G65P9997X0.Y0.Z0.E1.(E1.=B-12.5)

G65P9997X0.Y0.Z0.E2.(E2.=B12.)

G65P9997X0.Y0.Z0.E3.(E3.=B32.5)

G65P9997X0.Y0.Z0.E4.(E4.=B57.)

G65P9997X0.Y0.Z0.E5.(E5.=B77.5)

G65P9997X0.Y0.Z0.E6.(E6.=B102.)

G65P9997X0.Y0.Z0.E7.(E7.=B122.5)

G65P9997X0.Y0.Z0.E8.(E8.=B147.)

G65P9997X0.Y0.Z0.E9.(E9.=B167.5)

G65P9997X0.Y0.Z0.E10.(E10.=B192.)

G65P9997X0.Y0.Z0.E11.(E11.=B212.5)

(------END FIXTURE ROTATION ADJUST------)

 

As you can see this particular program has 10 rotations. This section can be left out if you do not desire the option to adjust each rotation individually but we found it best to have the ability to move a particular offset around a little. The nice thing with this is that you enter small amounts ie(.010) incrementally rather than large absolute numbers which tends to confuse operators.

 

For the clearance rotation it looks something like this

#500=10.(TABLE Z AXIS CLEARANCE FOR ROTATION FROM CENTER OF PALLET)-------->This is entered in the header of the program. What this number designates is the distance from the center of rotation out to the furthest point of the fixture or part plus some clearance. Then you call an M400(or mcode of your choice) prior to rotating the macro checks a couple of things. Inside the macro is a hard coded dimension that is the minimum safe distance from center to clear the pallet, this can be set to whatever suits you but is inaccesible to the operator. If #500 is set to less than this number it automatically sends the z axis to home position (Maximum distance from center) the macro also takes into account the tool length that is active. It checks the stroke, if it is more than the travel distance ie(would force the machine to overtravel) it sends the machine home. If there is no active tool length in the machine it sends the z axis home, this one is useful if the operator restarts the program before it picks up the tool length. In short what this does is forces the machine to ALWAYS move away from the work piece rather than move towards it.

 

N260M400(RETRACT FOR CLEAR ROTATE)------>Called just before rotation

N270M11

N280G65P9996X0.Y0.Z0.B12.S1.E2.

N290M10

 

With all of this the only thing the operator needs to change is the #500 variable and the fixture rotation adjust. They never have to mess with any other part of the program.

  • Like 1
Link to comment
Share on other sites

I have been programming horizontal rotaries for more than 20 years and this was a problem we always dealt with that seemed no one had a good solution to. We came up with our own solution that works incredibly well that takes care of this problem and we also came up with another solution that takes care of another problem inherint with rotaries and that is Z axis clearance on rotations. The first we created a set of macro's that calculates coordinates based on rotations. All that is entered is one set of coordinates at any angle. The macros then calculate each offset for each rotation in the program we also allow provision to be able to adjust each offset individually thereafter. This eliminated the need to program on center as it just does not matter anymore. The part can be anywhere and the system figures out all the correct positions for you. The other problem is with z-axis clearance when rotating. We also created a macro that handles this for us. This is called by a simple Mcode and has eliminated all operator error. We used to have crashes on a regular basis because they did not watch for clearance and this became worse when you were programming offcenter.

 

We also do the coordinate rotation macro (G-code). I currently create a retract point on each plane and use Home/Ref. Points "Z" field but the M-code macro sounds much cleaner and less labor. How and where do you save the radius distance needed for your calculations?

 

Edit: I posted a bit late. So you type the distance needed at the beginning of posting the program?

Link to comment
Share on other sites

Tim,

You can store the dimension anywhere. We store it in the header of the program using variable #500

%

O1697(PROGRAM DESCRIPTION)

(THIS IS AN UNAPPROVED PROGRAM DATE = 06-11-12 DDL)

(CYCLE TIME = HH-MM)

#500=0 (TABLE Z AXIS CLEARANCE FOR ROTATION FROM CENTER OF PALLET)<-----------------------------------------Variable set here. We have multiple pallet machines this is why we set it in the program.

(PROGRAM NAME-O1697-1)

Link to comment
Share on other sites

I'm just thinking about how to set up a retract macro. We start every program with a probe location sequence. My first thought was to set the distance in the first operation somehow/some where while probing the first point/feature of the part. The potential problem with that is if we have to probe every part (such as a casting) then the retract distance would also be rewritten. I could setup a flag to keep that from happening but would it just be better to create a dead first operation for creating a retract distance only? God I love this kind of stuff. :smoke:

Link to comment
Share on other sites

Tim,

The way I have it is the post inserts it as 0. This forces the machine to retract home. The operator uses a tape measure and measures the furthest point from center as a polar radius and inputs this number in the variable in the header. You can have it ask you when you post and have it insert it or any other method you chose. I like the way I do it because for me I would rather play it safe than have a crash that costs me days.

Also the way I have the macro setup is that it always positions from center of rotation, not from your zero point. I use G53 positioning in the macro to position to actual machine coordinates plus adding tool lengths to that value. This way you only have to measure the point that is furthest out from center.

Dave

Link to comment
Share on other sites

How many seconds are in two weeks of down time after someone messes up setting the variable and blows up the b axis? I'm sure there is some safety built into the macro but I don't know. Big machine I can definitely see the benefit of minimum retract. But on a newer 400, I'm not sure the risk is worth the reward.

 

Mike

Link to comment
Share on other sites

How many "few seconds" savings are there in a 4000 hour year?

 

If you're running 24/7 - it will be a noticeable difference. If you're running a single shift - it will probably make no difference. We run our machines on 50% rapids - because the difference between 2362 and 1181 ipm is usually 15-30 seconds on a 40 minute cycle time. That works out to about 5 minutes at the end of a day. On a large machine, or on a small part that's right at the center of rotation, that macro is pretty awesome. I really like the offset shifting portion of it as well.

Link to comment
Share on other sites

How many seconds are in two weeks of down time after someone messes up setting the variable and blows up the b axis? I'm sure there is some safety built into the macro but I don't know. Big machine I can definitely see the benefit of minimum retract. But on a newer 400, I'm not sure the risk is worth the reward.

 

Mike

 

Yeah, I don't like the tape measuring by the operator either. There's too many chances of error. Right now I retract to 2" from the farthest fixturing point but I do it manually by creating a point along each plane so the macro intrigues me. But I want command of the retract distance.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.

Join us!

eMastercam - your online source for all things Mastercam.

Together, we are the strongest Mastercam community on the web with over 56,000 members, and our online store offers a wide selection of training materials for all applications and skill levels.

Follow us

×
×
  • Create New...