11. Operation Planning

11.1 Introduction

The previous chapter described the fundamental components of the BCAPP system. It is also essential to describe what the BCAPP system will be providing process plans to. Basically once the process domain has been chosen (e.g. machining, assembly, etc.) there are many excellent commercial and research software packages that support this function of a CAPP system. In this section the conversion of the process plan to operation details, and preparation of documentation is reviewed. An interface to one commercial system for machining operation planning, called MetCAPP, will be described, as well as the requirements for an operation planner for injection molding.

11.2 Converting Process Plans to Operation Sheets

In the previous chapter the planning system was described, including how the process plan is represented. In the simplest of approaches, this plan can be directly converted to lists of processes. We can enhance these encoded descriptions by using additional process, and operation planning software. A sample of part of a process plan is shown in Figure 11.1 Output from Process Planning for Operation Planning for discussion.

The method for expanding the process plan information is quite straight forward. The documentation produced is in the form of Operation Sheets that include operation information. If referring to the example above, there will be a separate Operation Sheet generated for each of the line entries in the ‘MAIN_BOM’ set. This set is ordered such that the parts at the top of the list should be produced before the following parts. This does not mean that operations cannot be changed in order, but it does specify one of the possible manufacturing sequences. Each line in the ‘MAIN_BOM’ set specifies whether a part is an ‘ASSEMBLY’, or a ‘FEATURE’. The first argument represents how many of the


ASSEMBLY ( 2.000000 Clip_half Clip_half_OP1 Clip_half_PART )

ASSEMBLY ( 1.000000 0:Logo_Side 0:Logo_Side_OP13

0:Logo_Side_PART )

ASSEMBLY ( 1.000000 Logo_Side Logo_Side_OP26 Logo_Side_PART )

ASSEMBLY ( 1.000000 Spring Spring_OP33 Spring_PART )

ASSEMBLY ( 1.000000 Big_Clothes_Pin Big_Clothes_Pin_OP42

Big_Clothes_Pin_PART )



plan_count = 64


Clip_half_OP1 {

EQUATION: ( & ( ~ B ) ( ~ C ) ( & A E ) ( ~ D ) )

OPERATION ( AND RULE 2:0:0 507.851500 Clip_half_OP2 drill_hole )

OPERATION ( AND RULE 3:0:0 0.000000 Clip_half_OP3 mill_wedge )

OPERATION ( AND RULE 4:0:0 507.851500 Clip_half_OP4 drill_hole )


EXPANDED ( 1 14 0 0 )


Clip_half_OP2 {

DESCRIPTION ( drill hole )

CUTTING ( FEATURE single diameter hole )


CUTTING ( MATERIAL polypropylene )

CUTTING ( PARAMETERS 0.072500 0.5 1.0 )

EQUATION: ( & ( ~ C ) ( & A E ) ( ~ D ) )



a1 = 0.5

a2 = 1.0

height = 0.072500

cost = 507.851500


Clip_half_OP3 {

DESCRIPTION ( mill out block shape )

CUTTING ( FEATURE Flat Rectangular Surface: Open,

Cutter Axis Perpend. )


CUTTING ( MATERIAL polypropylene )


EQUATION: ( & ( ~ B ) ( ~ C ) A ( ~ D ) )

OPERATION ( AND RULE 5:0:0 507.851500 Clip_half_OP5 drill_hole )

OPERATION ( AND RULE 6:0:0 507.851500 Clip_half_OP6 drill_hole )


EXPANDED ( 1 14 0 0 )



Figure 11.1 Output from Process Planning for Operation Planning

parts are required in the design. The second argument is the name of the part in the original design. The fourth argument is a reference to a set that contains a single geometry expression for display purposes. And, finally the third field points to the head of a tree of operation sets.

If we follow the plan direction for the ‘Clip_half_OP1’ we find a set that has some ‘OPERATION’ information, an ‘EQUATION’, and an ‘ACTIVE’ pointer that says operation ‘1’ is active, therefore the second ‘OPERATION’ is selected (0 would be the first ‘OPERATION’). The ‘EXPANDED’ operator is only used by the planner for restarting planning that has been stopped by keeping track of where the planner stopped. The first operation pointed to from the ‘MAIN_BOM’ (in this case ‘Clip_half_OP1’) is a special case in that it contains no plan operation information, but points to a number of drastically different plans.

When deciding which operation comes next we must follow the trail of the ‘ACTIVE’ ‘OPERATIONS’. At this point in the discussion the second ‘OPERATION’ is active, and it points to ‘Clip_half_OP2’. Looking at this operation reveals that there is much more information than in the previous operation. The reader should note that the ‘EQUATION’ in this operation is now changed from the previous operation. At this point operation planning would be performed, and there would be details added to the operation lists. The operator ‘DESCRIPTION’ will cause the arguments to be directly echoed to the operation lists. On the other hand ‘CUTTING’ will result in calls to MetCAPP, which will eventually suggest tools, cutting sequences, speeds, feeds, and other cutting information. The interpretation of these will be discussed in more detail later. After all of the planning fields are completed, then the next ‘ACTIVE’ ‘OPERATION’ will be selected, and planning will continue until no ‘ACTIVE’ pointer is found. This should also coincide with an ‘EQUATION: NULL’ if planning was completed.

The plan steps are actually reversed in the sequence described above. This is a result of the backwards planning approach. Therefore the plan steps are reversed when printed on the plan. There are also operation numbers assigned to each operation step. This is done to maintain consistency with the typical industrial practice. A flowchart of the operation planning section is shown below.


Figure 11.2 A Flowchart for Process Plan to Operation Sheets

As can be seen the process of developing operation sheets is just a case of looping iteratively. The place for other CAPP technologies and software is in the ‘Interpret Operation’ block. As is described, MetCAPP is used here, as other CAPP systems could be as well.

Also of interest is a sample of the operation sheet produced from the lines above. A sample is given below.

OPERATION SUMMARY_SHEET: Clip_half_PART: Quantity 2.000000

OP# Operation Description


0 cut a block from stock with hot wire

width = 1.4

depth = 5.9

height = 0.55

10 drill hole

20 drill hole

30 drill hole

40 mill out block shape

Here we see that the list ends with ‘mill out block shape’. This was the first operation in the list, and therefore it is the last in practice. Each of the operations has a separate number to identify it as one process step. The reader will notice the ‘DESCRIPTION’ in the initial operation description echoed its text to the BOM. The reader should also note that a total of two parts are specified at the top of this BOM. When the entire plan is done, there will be a list of similar sheets for all parts of the product.

11.3 Recovering from Operation Failure

When an error occurs in the execution of a plan, it is necessary to request a replanning. At this point the method is very simple and straight forward. It involves indicating which operation has failed, and restarting the planning algorithm of the previous section. The assignment of operation numbers to the plan the planner uses requires that a lookup table be used for converting operation numbers to operation names, so that the planner would know which operation failed. It is also of use to point out that in this case backward planning causes some problems when it tries to replan. This is based on the fact that when it is selecting rules to ‘undo’ features the planner has started from the complete part, backtracking would suggest backtracking toward the completed part (in the opposite direction from the direction needed for replanning). For example, we might say a drilling operation has failed half way through production. The planner would note that the operation has failed, and select another replacement operation, and another feature is undone, and so on down another path in the operation tree until all features are undone. In effect we are finding another path to the start point. But, what we need for practical purposes is the exact opposite, a path to the start state (the final product).

11.4 Operation Planning with Metcapp

MetCAPP [Institute for Advances Manufacturing Science, 1991] [Zdeblick, 1985] [Barocky and Zdeblick, 1984] is the result of many years of development of machining data. Initially the work began as a handbook containing many machining recommendations. Eventually it evolved to become a computerized database containing the information (CutTech). After that it was enhanced with a cutting sequence planner (CutPlan), and eventually a front end was added to allow specification of machining features (MetCAPP). This software includes an interface library to allow it to be used by other computer programs. In this thesis, CutTech was provided with some manufacturing feature information, as well as material, and a machine. From this the software was able to suggest multistep machining operations to produce machined features. This software is used to emphasize the fact that other CAPP systems play an important role in complementing BCAPP.

There are a number of functions that the operation planner recognizes for MetCAPP. These are,

CUTTING ( MACHINE string ): defines a machine with the name ‘string’.

CUTTING ( MATERIAL string ): defines a material with the name ‘string’.

CUTTING ( FEATURE string ): defines a feature with the name ‘string’.

CUTTING ( PARAMETERS x0...xn ): defines a variable list of parameters’.

These are the minimum definition requirements for CutTech to make a recommendation. CutTech contains a list of common machines, and materials found in modern machining, and it will look up the properties of these. There are also a limited number of features (an extensive list may be found in the MetCAPP manuals). The parameter list is required so that required information about the features can be provided. This list is variable in length, because the required parameter list varies in size for each feature. The values for the parameter list should also be found through reference to the MetCAPP manuals. An example of a MetCAPP operation plan is given below for a hole.

Seq.# Machine Passes Time Operation Description


SUB_OP 5 Center Drill Non-Insertable 1 0.008000 Center Drill Non-Insertabl


I ! Center Drill ! 0.7500 ! No ! 3.250 ! M10

1 ! DLS-007 ! 0.7500 ! No ! 0.750 ! M7

2 ! DLS-008 ! 0.7500 ! No ! 0.750 ! M7

3 ! DLS-009 ! 1.0000 ! No ! 1.000 ! M7

4 ! DLS-010 ! 1.0000 ! No ! 1.000 ! M7

5 ! DLS-005 ! 0.5000 ! No ! 0.500 ! M7


SUB_OP 10 Drill Non-Insertable 1 0.031000 Drill Non-Insertable


I ! Non Insert Drill ! 0.4844 ! No ! 1.484 ! M10

1 ! DLS-118 ! 0.4688 ! No ! 4.313 ! M7

2 ! DLS-119 ! 0.4844 ! No ! 4.375 ! M7

3 ! DLS-279 ! 0.4688 ! No ! 4.313 ! M42

4 ! DLS-280 ! 0.4844 ! No ! 4.375 ! M42


SUB_OP 15 Bore Non-Insertable 1 0.017000 Bore Non-Insertable


I ! Non Insert Bore ! 0.500 ! 15.00 ! 0.015 ! C2

1 ! BRS-004 ! 0.500 ! 0.00 ! 0.008 ! C7

2 ! BRS-031 ! 0.406 ! 0.00 ! 0.008 ! C7


Figure 11.3 A CutTech Operation Plan for a Drilled Hole

This plan has three steps for rough drilling, then fine boring. Each operation is also followed by a list of tools. The first tool in the list is the first choice. The other tools are acceptable alternates. In the list given the first of three operations (#5) is ‘Center Drill Non-Insertable’. The operation will be done in one pass, in .008 hours. The tool parameters are listed below, with the tool at the top specifying the best tool choice.

11.5 Conclusion

This section has outlined the general process of operation planning used in this thesis. The discussion includes converting process plans to operation plans, and representing those operation plans in Operation Sheets. This section illustrates the role of other CAPP systems, and demonstrates the addition of other CAPP systems in the operation planning stage. Some of the techniques and limitations of replanning for failed operations were discussed.

The output from MetCAPP is stored in separate files on disk, and can be printed when the job is sent to production. The details are not shown with the normal process plans because of the extra bulk they would add.