The ABCs of CNC programming

Often, while reviewing various woodworking and cabinetry magazines, I have noticed a lack of articles concerning CNC programming advice.

While articles are printed on the new innovations, equipment, and the current and future importance of the CNC processes, there are no articles for the programmers to guide them through the learning process. In my case, I had operated a Morbidelli U26 point-to-point machine for 2 1/2 years at Goer Manufacturing when I was promoted as a programmer for two Heian ZR442-P CNC machines, systems that I had never operated. My predecessor was promoted and busy learning his new responsibilities and had little time for training me. Naturally, you can imagine the problems I experienced and the depth of the relationship that I developed with our maintenance department.

It is with this in mind that I submit the following information. A list, if you will, of mistakes and discoveries that have broadened my experience as a CNC programmer.

'DETAIL CREEP'

Probably, the most important of my discoveries was what I call "detail creep." The use of rounded numbers without resetting X, Y and Z axes after each cycle creates "detail creep." If you use 0.688 for 11/16 inch instead of 0.6875, each cycle will pick up an extra 0.0005 inch per cycle. After 100 cycles, your dimensions are off by 0.0500 inch (nearly 1/16 inch).

I discovered this on large run processes where the setup was correct but the dimensions would begin to drift during the day. Naturally, the operator would reset the start points to accommodate what he perceived as the solution to the problem. However, once the points were changed, the detail would move past its position by exactly the amount of his change. The answer was that by restarting his process, he had reset his zero points in X, Y and Z.

We defeated this problem in two manners. First, on short runs we physically reset all axes to zero after each cycle. Second, we used a localized coordinate system (G52 for FANUC Controllers) to designate a specific start point for each component and reset that after each cycle (G52X0Y0Z0) without the machine having to physically return to its zero points for large runs. Both of these methods allow the use of rounded numbers because the margin of error is too small to be measured.

If you want to see this in action, use your absolute programming to drill a hole with a rounded number in two different locations on separate tables and watch the hole turn into an oval after several cycles. Use your calipers to monitor the width to prevent running 100 cycles.

COORDINATE SYSTEMS

With the FANUC Controllers we use, I have found that the use of localized coordinate systems has several advantages.

First, instead of the required dimension plus the stop location (stop 10 inches + dim 3.125 inches = 13.125 inches as it appears on the program), the numbers on your program are identical to those on your print (3.125 inches), which I call "nominal-to-profile."

Second, if you are in the middle of a run and need to change to a different process, the localized offset allows you to place your new setup without interfering with the current setup. When the interrupting sequence is completed, you can then return immediately to your previous setup without a re-setup.

With localized coordinate systems, you can better utilize spoil boards by consolidating setups or changing locations on the spoil boards for a new setup without changing every start point on the process.

Finally, from a training standpoint, with new operators you can treat the setup training and the editing functions separately which reduces confusion.

ONE PART AT A TIME

This one will probably drive mill foremen crazy, but if you have various components running at the same time, detail one part at a time. Before y'all hit the roof, let me explain.

You can run multi-head functions, but detail the Right Hand ends together complete before you switch over to the Left Hand ends, especially on short run processes. When you drop a drill to make shelf holes on the Right Hand end of a unit and move over to the LH end to drill, you are required to use absolute programming (from the machine's home points) or add a localized offset for each operation.

This is a complicated and confusing process. To combat this, I detail each component complete before moving to the next component. While this may slow the process down a little, it makes editing of the program easier and easier to read. It also allows the use of a single localized offset for each piece, which can be reset without the physical return to zero.

COMMENT LINES

My programs have a 32-character limit before the wrap-around feature utilizes the next line and consumes memory. I have created templates that have all repetitive information on every program to use, not only as a training aid, but to clarify areas that can be ignored during troubleshooting.

Example:

G90G00G40G49Z0M92 means Absolute Programming, Rapid Traverse, Cancel Tool Diameter Offset, Cancel Tool Height Offset, Return Z Axis to Zero, All Routers Up and Off.

This statement is very confusing to trainees, who focus on each separate statement without getting the overall picture. The way this line appears in my program is as follows: G90G00G40G49Z0M92 (CANCEL OFFSETS)

This blanket statement explains what this line actually does. The way my program templates were created, I never type this line into program because it is already in this format. The operator knows that if he has a problem with a detail, it does not come from this line.

I have identified each line as a vacuum command, safety net feature or detail command. I define safety net features as the section of the program that protects the machine from imbedded offsets that may be carried over from a prior process.

All tooling and offset information is included on each main program as comment lines for a permanent record of that information. This creates a paperless system that obviates the need for a hard copy of the program.

I found that the lack of this information from my predecessors made understanding their output difficult at best, and often it was easier to regenerate a new program if the hard copy was lost than to understand their process. The extra minute you spend now will reap major benefits later, especially if there is question about the process and you are under pressure to perform.

BULL'S EYE ALL HOLES AND CUTOUTS

Locate all holes and cut-out subroutines from an easily designated centerpoint and use the same identifying "name" for identical programs. More on this in the Standardized Format section.

STANDARDIZED FORMAT

By using the same program template format over and over and over, my operators have a feel for what is coming next in the program. The consistency of my programs eliminates the constant need for personal intervention on my part. Any program that varies from the standard format has a note that identifies it as such. The template programs are copies of successful programs that have been stripped of specific details which leaves a skeleton. When it is time for a new program, the template is called up and copied as the new program. Examples are: two tables separate (2TABSEP), one table only (1TABLE) and both tables as a single unit (BOTHTAB).

The separate operations have skeletons that only need motor identification and offset input to complete the basic framework of the process. It is, then, just a matter of loading the specific details at the operational level to complete the program. For our Heians, there are three different operations: drilling, routing and horizontal drilling. Each of these operations has its own skeleton program with required safety features and comment lines.

We also have dedicated certain subroutines with fixed program numbers, such as P037 as our leveler hole. Every time a 1-inch leveler hole is required, the same routine is used.

Another example is our dadoes. If I have a program for a 48-inch dado that is 1/4 inch deep and runs the entire length of a panel, I write the sub routing for 51 inches, which allows me to use that dado for any panel from 45 inches to 50 inches. Indexed charts are available to identify the programs that are described as E2W 1/4 50. That tells me the program runs from right (East) to left (West) and returns to the right for up to 50 inches. This fixed program process cuts down the number of programs that must be maintained and, when rushed, precludes errors.


I have saved training for last because all of the above steps are an effort to reduce operator turnover caused by frustration and bewilderment. By giving our operators the best possible chance to succeed at their jobs, they can focus on the job at hand. We have starter packages prepared for new operators to identify their informational needs. These packages were compiled by asking new operators what skills they felt they needed in order to do their jobs. The starter and operator manuals are never complete, but always in a state of genesis as new informational needs are identified.

I once took a two-day customer service seminar that focused on customer identification. I consider my operators my customers because if I do not keep them happy, my job is more difficult. Therefore, all of my activities are directed towards allowing the CNC operators the best possible opportunity to successfully complete the product process. The process must have clarity and ease of execution.

An example is that I have pulled all of my processes out to the front edge of the tables (63 inches wide by 167 inches long) to reduce back strain. When the operators do not like a certain process, I ask them how we can do it better and easier. Every suggestion is examined for its good points and bad, and frequently a compromise is reached that satisfies all parties.

Prior to my arrival in this position, the programmers did not believe that the operators were capable of learning various methods of programming. I have found exactly the opposite. With the use of localized coordinates, I utilize all four quadrants of the Cartesian Graph. I program upside down, drill through bottoms to detail tops, allow my operators to choose stop locations for the processes, and alter standardized programs that use the same program to detail similar, but different components. All of these variations help keep the operator from becoming bored, and believe me CNC operators are curious individuals.

By taking the operators on as partners, their input is of valuable assistance. Make no mistake about it, I am in charge of the process, I am the final arbiter, and I am responsible for the results, but I allow myself and my operators latitude in the decision making process.

In conclusion, these steps are procedures I wish were available when I became a CNC operator. I have tried to examine and explore some of the solutions that alleviated ongoing problems we had encountered. In the end, there is no substitute for experience and education.

Rob Kellum has operated NC and CNC machines for four years and has programmed CNC machines for two years at Goer Mfg. in Charleston, SC, a manufacturer of custom store fixtures.

http://findarticles.com/p/articles/m

0 Response to "The ABCs of CNC programming"

Post a Comment

CNC Machines

CNC Machines offers high precision machined components via CNC Milling Machines and turning machines known as CNC Machining Center or CNC Machines Center that can perform multiple machining operations with various type of cutting tools by utilizing the latest techniques and technology to give the extremely accurate and precise machined components.
powered by Blogger | WordPress by Newwpthemes | Converted by BloggerTheme