The main interface to the multi-part setup plug-in is this dialog box. Although this plug-in is customized, it meets all of the criteria for standard features in the core CAM software product.

This graphic display of a loaded tombstone represents the setup shown on page
82. Simulation of the cutter and spindle head following programmed tool paths
helps programmers verify that all lines of code for this setup are correct and that there are no clearance problems that could cause a collision during machining.

The ability to generate a variety of reports based on input to the multi-part
setup plug-in streamlines setup on the shop floor.

A fully loaded four-faced tombstone fixture waits at the load/unload station
of a cell consisting of horizontal machining centers. The workpieces on one face of the fixture are clamped pocket-side out but are flipped over on the adjacent face.

These two images show how accurate modeling of workpieces, clamps, tombstone and pallet helps programmers visualize a multi-part setup. This unusual six-sided tombstone was fabricated to hold three machine components yet provide access to the front and sides of each workpiece.

What do you call them? Some of the names are tombstones, pedestal-type fixtures, tooling towers, tooling columns and fixture blocks. All are upright fabrications with two to six or more faces on which workpieces can be clamped. These vertical faces present the workpieces so that the spindle of a horizontal machining center (HMC) can approach them at a right angle. Because the pedestal can be mounted on a pallet that loads onto a rotary table on the bed of a HMC, indexing the table is a fast way to bring a fresh array of parts to be machined.

By automatically indexing from one face to another until workpieces on all sides are finished, then automatically changing pallets one after another to bring in other tombstones full of fresh parts, it is possible to greatly extend the time an HMC can run without operator intervention. This strategy makes these machines very productive, with the high throughput achievable leading to reduced part cost, especially when the HMCs are arranged in cells or flexible systems with pallet changers so that the tombstones undergo the shortest queue time.

Haas Automation, the machine tool builder in Oxnard, California, recognized the value of this production strategy in its remarkable bid to outmaneuver other producers of commodity machine tools. Haas management knew that the key to success in this highly competitive market lies in the ability to manufacture high quality machines with great efficiency and economy.

When the company built its new manufacturing facility in Oxnard several years ago, it planned a number of automated machining cells based on this concept of tombstone manufacturing on HMCs to achieve its cost and quality objectives.

This approach proved to be worthwhile. However, the demands of continual improvement kept the company looking for additional ways to improve the output of its horizontal machines. One area that emerged as an opportunity to enhance the potential of this approach was in programming for multi-part setups. Tombstones make a variety of machining strategies possible. Selecting the most advantageous one and creating the NC program quickly to execute it are the keys.

For example, workpieces arranged on the face of a tombstone could be machined complete one after the other by simply repeating the CNC program at a coordinate system corresponding to each part location. For some types of workpieces, this is not only the simplest but also the most effective strategy. Parts on which one tool performs all of the operations, such as pocketing or contouring with an end mill, might qualify. In other cases, for parts on which different operations are performed by a variety of tools, a more complex strategy will reduce time wasted changing tools or indexing the tombstone. To minimize tool changes, the programmer might want to drill all the holes of a certain size on all of the workpieces accessible in one indexing (including the holes on the sides of the workpieces accessible at adjacent faces of the tombstone).

But what next? The programmer has to decide if it is better to keep that tool in the spindle and index around the tombstone. Or is it better to change the tool and finish all remaining operations before indexing and repeating the operation sequence on the next face of the tombstone? No matter what the programmer decides to do, reordering all of the lines of code to execute the strategy is no small task. Oh, and don’t forget, some workpiece features may not be accessible. An example is those features on the sides of the parts facing other workpieces instead of the open side of the tombstone reachable by the spindle. Those operations have to be excluded from the current program and returned to later in another setup.

Creating the optimum program for arrays of parts fixtured on tombstones posed a bit of a challenge for Haas. Like many manufacturers, the company uses a variety of CAM software programs to support its CNC operations. Programming for the horizontal machining cells is handled predominantly with GibbsCAM. This CAM software from Gibbs and Associates (Moorpark, California) has a standard feature for tackling multi-part setups. Neil Kellaway, a Haas manufacturing engineer involved with all aspects of production on the horizontal machining cells, describes this programming feature as “more than adequate.” This feature allows programmers to do all the basic sorting and coordination required to do tombstone manufacturing successfully.

But as is often the case with the standard features in a CAM software package, the “one size fits all” characteristic left Haas programmers wishing they had certain capabilities and functionality over and above what was available off the shelf.

For example, the horizontal machining cells process a wide variety of parts, requiring as many as 12 different styles of tombstones in a single multi-machine cell. In addition, setups are often different from face to face on the tombstones—either the parts are in a different orientation (back side out rather than front side out), or different part numbers are mixed on the same tombstone. Previously, these complex setups almost always require the programmer to use optional custom settings or values in the multi-part setup feature. Likewise, the postprocessed output usually required manual editing of the main program and the subroutines to format them according the preferences of the various HMC control units. Moreover, the finished program could not be verified easily.

About 2 years ago, Mr. Kellaway and a team from the shop approached the software company about creating some specialized software to provide more flexibility and automation to the multi-part setup feature. The new software was delivered in mid-2002, and it provided a significant enhancement to how quickly and effectively Haas programmers can handle programming for its tombstone manufacturing operations. Mr. Kellaway estimates that the customized software has helped reduced programming time for tombstone machining in these cells by as much as 50 percent. More importantly, he says, the software has greatly increased confidence that the tombstone programs are error-free.

More Name Calling

Just as tombstones go by different names, pieces of customized CAM software also have different names. Some of the names are plug-ins, add-ons, extensions and macros. Tombstones come in many sizes and configurations and can be applied in both vertical and horizontal applications. Likewise, plug-ins take a variety of forms. Some of these differences go deeper than those between various types of tombstone fixtures. [See sidebar.]

Gibbs, for example, provides a fee-based customized software development service. According to the company, a customer contracting for a plug-in via this service gets software that is completely integrated in the core GibbsCAM product. The plug-in must meet all of the criteria that standard features must meet in terms of full associativity, common interface conventions, ease of use and reliability, the company says. The plug-in is written in the same computer language (C++) as the core product.

Using this service, Haas contracted with the software company to develop the customization the shop was looking for. The value of this transaction was derived from the disciplined approach it entails. Four steps are involved. First, the parties get together to create a requirements document, which spells out what the customized software is meant to do or what problem it intends to solve. Next, Gibbs software engineers create a specification, which describes the proposed solution in detail. Third, the software engineers develop the new software as a draft, which is reviewed, tested and modified. Several iterations are usually required to refine the product and ascertain that it meets all of the requirements. Finally, the new software is delivered and the transaction is completed according to the terms of the original contract.

As Bill Gibbs, founder and CEO of Gibbs and Associates, points out, this development process is quite different from other approaches to acquiring customized software, such as users swapping their favorite homegrown macros among themselves. Rather, the process follows the same rules and procedures for developing features in its core product. “Customized software has to work as well as any of our standard product features in terms of ease of use, flexibility and consistent appearance of the interface,” he says. “Customized software has to be as good as the rest of our software.” In fact, he says that customized software often becomes the basis for additions or enhancements to the core product in future releases. This is taken into account when negotiating development fees. Customization projects likely to lead to features that have broad market appeal are subsidized, based on the prospect that the cost of development will be recouped by licenses to other users.

So what did Haas get for its money? In short, the company received a very efficient, very effective tool for handling the challenges of multi-part setup, says Mr. Kellaway. The key features are: 1. A graphical, interactive method of arranging parts on the faces of the tombstone; 2. Dialog boxes that quickly allow programmers to select machining strategies and to analyze their efficiency; 3. A simulation package that allows visual verification of the machining process; and 4. Automatic output of postprocessed G codes that consolidate machining steps in the right order, including commands to retract the tool so that it clears the rotation of the tombstone when indexing.

The Plug-In In Action

Here’s how the customized multi-part setup feature works. First, the programmer imports or models the actual machined part and a representation of the part’s starting stock condition. Generally, the fixture is built around the solid model of the part or starting stock condition, using the modeling tools provided within the CAM software. Commonly used fixturing components are stored in a library for retrieval to expedite the design of the workpiece holding fixture, and these can be easily imported into the CAM system. The programmer then orients the parts to suit the desired method of machining and sets up coordinate systems for each part. Parts can then be duplicated in the software and, with a few mouse clicks, located on the tombstone along with the fixturing. The programmer then steps through the normal process for creating tool paths to machine the part complete as a single unit.

At this point, the programmer opens up the customized multi-part setup dialog box. This dialog box shares the same “family resemblance” with other GibbsCAM dialog boxes (a resemblance that Mr. Kellaway values because it simplifies training issues). The dialog box has five main components.

Part Layout gives the programmer options for arraying the parts on the faces of the tombstone. The numbers entered into the “count” fields determine how many parts will be positioned in a row (X) and how many in a column (Y). The B count designates how many sides or faces the tombstone has. Four-sided tombstones are most common at Haas. The “step” fields designate approximately how far apart the starting positions of each workpiece are in X and Y. This is the distance the tool must step over to find the next part. The B step designates degrees of rotation for proper indexing of the pallet. The “repeat” options determine how the tool will move--for example, across the row (X first) or down the column (Y first).

Operations Groups is the utility for sorting the machining operations. Literally, the software sifts through the lines of code and combines them into groups according to the programmer’s selected criteria. For example, “by tool” groups operations performed by the same tool so that all features machined by that tool are finished in order across all parts before the next tool change. “Tool & CS” groups operations by tool but finishes all operations on one workpiece (identified by its coordinate system) before moving the tool to the next workpiece. Because some tools may be used for several operations, “by ops” gives the programmer the option of having one tool perform only one operation in one group at a time.

Operation Layout is a display that shows what machining steps are performed on each face of the tombstone between indexing. By adding or clearing operations, the programmer can modify the sequence of operations to accommodate certain exceptions.

Selections in the fields found in Output give the programmer options for formatting the set of G codes representing the consolidated machining steps to complete the multi-part setup. Checking the “minimize WFOs” box deletes redundant lines of code related to work fixture offsets to shorten the length of the postprocessed program. This is where the programmer formats the main program and the subroutines to suit the controller requirements.

Retracts lets the programmer input the clearance value in the Z axis necessary for the spindle to avoid collisions. “Same B” is the safe distance when moving from part to part on one face of the tombstone, whereas “new B” is the safe distance when indexing from face to face of the tombstone in pallet rotation.

Simulate And Verify

When the programmer has entered all of the required fields in the dialog box and hits the OK button, the software processes the choices and generates a complete, postprocessed set of code. This is the program for the entire tombstone of parts, not a program for each single part. According to the developers, there is no need to edit the program to add commands for tool retracts, pallet indexing and so on.

One of the biggest benefits of the plug-in, says Mr. Kellaway, are the enhancements to the simulation capability of the CAM software. Using the selections and values entered in the multi-part setup dialog box, the simulator can display a solid model of the tombstone, base plates, clamps and the workpieces themselves. Critical components of the designated machine tool must be modeled for the simulator to show relationships of rotary table, machine column, table bed and so on, but once these are modeled, they can be recalled from a library during the programming process.

Running the simulator lets the programmer visually verify the complete setup. The animated display reveals any interference caused by the spindle head, toolholders and insufficient tool retractions. Apparent problems can be corrected by returning to the dialog box and modifying input—for example, changing retract values for greater clearance.

Another key aspect of the tombstone manufacturing simulation is that it will keep track of X-Y-Z positions relative to the designated machine’s travel limits. This prevents a tool from exceeding the travel capacity of that specific machine. A warning message alerts the programmer if that happens.

Tombstones On The Move

The new plug-in helps others in addition to the programmers at Haas. It also helps the operator on the shop floor by streamlining setup. The plug-in provides data that lists coordinates for locating the workpieces (or the base plates that hold them) on the tombstone. This printout is included with the router that goes to the load station at each cell, where workpieces are attached to the tombstone. The workpiece coordinates are meant to be approximate; probing routines on the HMCs establish the exact coordinates before the multi-part CNC program is executed.

Each of the horizontal machining cells has it own pallet storage system. Palletized tombstones are stored in these multi-tiered systems and retrieved by a robotic pallet transporter. The shop’s master production schedule determines the mix of workpieces that are to be loaded onto the tombstones to meet the week’s production schedule. This schedule dictates which empty tombstones will be delivered to the load station. Once loaded, the tombstones return to the storage system until the schedule calls for them to be processed.

Typically, the cells at Haas have several identical machines with identical tooling. This allows any available machine to accept the next palleted tombstone waiting in line at that cell. The goal is to keep the cells in lightly tended operation around the clock until all of the parts called for by the production schedule have been machined.

According to Mr. Kellaway, the multi-part setup plug-in has enabled programmers to keep up with the cells’ appetite for ready-to-process tombstones in extended periods of untended operation. “The flexibility and efficiency of the plug-in lets us do this,” he says. This is challenging, he explains, because Haas maintains one of the most dynamic product development programs in the industry. A stream of models means a constantly changing mix of parts in current production, with no letup in the demand to hit cost and quality targets.

Although the tombstones these workpiece fixtures are named after belong in a graveyard, tombstone manufacturing is a vital part of Haas Automation’s effort to keep machine tool building alive in the United States. The customized plug-in that streamlines multi-part setups for these tombstone fixtures contributes significantly to this effort.

More Than One Way To Customize Software

Today, many users of application software want something more than just what comes out of the box. Users of CAM software for CNC programming are no exception. They want to be able to “tune” the software to their preferred style of interaction, to add their own way of doing things, to create their own “plug-in” capabilities or to integrate with other applications or systems. Just as applications have evolved over time, so have the ways that applications can be customized. The capabilities of these methods vary, making each suited for different purposes and appealing to different types of users. John Callen of Gibbs and Associates provided this comparison and history of customization techniques:

The earliest of the user customization techniques, macro programming, emerged from systems using command-line interfaces. Macro languages mimicked the syntax that the user would type into the command line. Often systems would employ a “macro recorder,” which captured the commands being executed and stored them off-line for replay later. Once stored, users could then modify the commands to produce variants. Macro routines for programming bolthole circles are a typical example. Because of their association to the system’s command parsing, macro routines were basically limited to the type of operations that could be performed through the interface.

When menuing systems were first introduced to applications, many were simply front-ends to legacy command-line systems, generating command statements while the user navigated through the menu system. This allowed existing macro systems to easily capture the new operations generated by the menu system. Graphical toolkits were developed to allow users to create dialog panels for their macros, making them compatible with the new graphical interfaces.

As more off-line modification occurred, and as native menuing systems replaced menuing front-ends to command-line interfaces, macro programming capability became more like a programming language, with its own control logic and set of variables. Eventually, custom macro programming systems evolved into actual programming languages, providing a standard programming environment. AutoLISP is one example where a standard language, LISP, was introduced as a customization language for AutoCAD. At one time, it was common for many graduating engineers to take a course in LISP so they could program this widely used computer-aided design software.

As the popularity of Microsoft Windows grew, applications built for this operating system were soon taking advantage of it capabilities. For example, Visual Basic Automation, or VBA programming, was originally developed to allow users of Microsoft applications, such as Excel for spreadsheets and Word for word processing, to build custom extensions in Microsoft’s Visual Basic programming language. VBA also allowed users to customize other Windows-based applications. Simply explained, VBA leverages software technology used to build user interfaces in Windows, thus providing Visual Basic access to application routines.

Visual Basic is a relatively easy language to learn, and Microsoft’s Visual Basic programming environment is very comprehensive. VBA allows users to develop programs and to create their own graphical user interfaces. VBA also allows users to access databases or other applications. Using VBA, users are easily able to customize their applications and produce some extremely capable and impressive extensions.

However, Visual Basic’s simplicity, which is one of its greatest strengths, can also be a limitation. Users who want to create extensions with functionality closer to that of fully developed applications need a more powerful programming capability than what is available through VBA. In this situation, end users may be compelled to work with programming languages such C or C++.

In order to support this level of programming, developers of software applications began to publish their application programming interfaces, or APIs. Typically, an API includes the original application’s data structures and the calling parameters of the application’s functions that have been externalized. Though not for the casual user, API programming’s intimate level of access to the host application supports the development of completely new applications, using the host application as a toolkit or foundation of functionality.

In the world of CAM software for CNC programming, each of the different approaches to customization has helped programmers meet their special needs and interests. According to Mr. Callen, the most appropriate approach depends on the level of customization the programmer is looking for. Whatever the level, customization has provided many benefits and is an important part of the CNC programming scene.

Comments are reviewed by moderators before they appear to ensure they meet Modern Machine Shop’s submission guidelines.