UFDC Home  myUFDC Home  Help 



Full Text  
PAGE 1 1 A NEW MACHINING COST CALCULATOR (MC 2 ) By MATHEW RUSSELL JOHNSON A THESIS PRESENTED TO THE GRADUATE SCHOOL OF THE UNIVERSITY OF FLORIDA IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF SCIENCE UNIVERSITY OF FLORIDA 2011 PAGE 2 2 2011 Mathew Russell Johnson PAGE 3 3 To my d ad PAGE 4 4 ACKNOWLEDGMENTS I would like thank my adviser Dr. Tony Schmitz and my former professor Dr. G. Scott Duncan. They provided me with mentoring and guidance that helped me get to where I am today. I would also like to thank my entire family. Their support has meant everything to me. I thank my colleagues of the Machine Tool Research Center (MTRC). They helped me learn many new and exciting things during my tenure there. I a lso thank TechSolve for their support of this project. PAGE 5 5 TABLE OF CONTENTS pag e ACKNOWLEDGMENTS ................................ ................................ ................................ .. 4 LIST OF TABLES ................................ ................................ ................................ ............ 6 LIST OF FIGURES ................................ ................................ ................................ .......... 7 LIST OF ABBREVIATIONS ................................ ................................ ............................. 9 ABSTRACT ................................ ................................ ................................ ................... 10 CHAPTER 1 INTRODUCTION ................................ ................................ ................................ .... 11 2 LITERATURE REVIEW ................................ ................................ .......................... 13 3 MC 2 PROGRA M BASIS ................................ ................................ .......................... 15 4 MC 2 PROGRAM FUNCTIONS ................................ ................................ ................ 26 Graphical User Interface Tutorial ................................ ................................ ............ 26 MC 2 Guide ................................ ................................ ................................ .............. 30 5 MC 2 VALIDATION ................................ ................................ ................................ ... 52 6 CONCLUSION AND FUTURE WORK ................................ ................................ .... 59 APPENDIX A SAMPLE GUI PROGRAM ................................ ................................ ...................... 60 B VALIDATION G CODE ................................ ................................ ........................... 63 Straight Line ................................ ................................ ................................ ............ 63 Zig zag ................................ ................................ ................................ .................... 75 Spiral in ................................ ................................ ................................ ................... 80 LIST OF REFERENCES ................................ ................................ ............................... 85 BIOGRAPHICAL SKETCH ................................ ................................ ............................ 86 PAGE 6 6 LIST OF TABLES Table page 5 1 Measured and estimated times for the test pockets ................................ ........... 58 PAGE 7 7 LIST OF FIGURES Figures page 3 1 Straight line machining method for a pocket with dimensions of 150 mm by 100 mm ................................ ................................ ................................ .................. 18 3 2 Zig zag machining method for a rectangular pocket with dimensions of 150 mm by 100 mm ................................ ................................ ................................ .......... 19 3 3 Spiral in machining method for a rectangular pocket with dimension of 150 mm by 100 mm ................................ ................................ ................................ .......... 20 3 4 Spiral out machining method for a rectangular pocket with dimensions of 150 mm by 100 mm ................................ ................................ ................................ .......... 21 3 5 Depiction of a rectangular pocket with the required dimensions and the location of the coordinate origin ................................ ................................ ....................... 22 3 6 Depiction of square pocket with the required dimension and the location of the coordinate origin ................................ ................................ ................................ 22 3 7 Circular pocket with the required dimension and the location of the coordinate origin ................................ ................................ ................................ .................. 23 3 8 Hexagonal pocket with the required dimension and the location of the coordinate origin ................................ ................................ ................................ .................. 23 3 9 Irregular H shaped pocket with its required dimensions and the location of the coordinate origin ................................ ................................ ................................ 24 3 10 Irregular C shaped pocket with its required dimensions and the location of the coordinate origin ................................ ................................ ................................ 24 3 11 Irregular L shaped pocket with its required dimensions and the location of the coordinate origin ................................ ................................ ................................ 25 4 1 GUIDE Quick Start window ................................ ................................ ................. 34 4 2 Final result of the ................................ ................................ ... 34 4 3 Blank GUI window ................................ ................................ .............................. 35 4 4 GUI window with pushbutton and pushbutton Inspector window ........................ 36 4 5 GUI window with updated pushbutton ................................ ................................ 37 4 6 GUI window with panels, static text boxes, and edit text boxes added ............... 38 PAGE 8 8 4 7 Align Objects window ................................ ................................ ......................... 38 4 8 Final GUI layout with all items resized, renamed, and aligne d ........................... 39 4 9 Final look of the GUI fraction with input and output values displayed ................. 40 4 10 Pocketing strategy dropdown menu displaying the four available selections ..... 41 4 11 Pocket shapes dropdown menu displaying the seven pocket shape selections 42 4 12 Pocket shape selected with required dimensions ................................ ............... 43 4 13 Pockets size tab with input boxes for each required dimension for the selected pocket ................................ ................................ ................................ ............... 44 4 14 Tool input tab with input boxes for tool dimensions and some users selected parameters ................................ ................................ ................................ ......... 45 4 15 Machining parameters tab with input boxes for users selected values and the machine tool axis acceleration ................................ ................................ ............ 46 4 16 Starting positing tab with input boxes for the x y and z position of the tool before machining begins ................................ ................................ .................... 47 4 17 Cost tab with input boxes for the specific cost values for the selected machining process ................................ ................................ ................................ ............... 48 4 18 Calculate pushbutton for executing the program after all input values have been entered ................................ ................................ ................................ ............... 49 4 19 Outputs panel where all machining times are displays in seconds along with the selected feed rate [mm/min] and the machining cost [dollars] ............................ 50 4 20 MC 2 with output values displayed for a rectangular pocket using the single direction pocketing strategy ................................ ................................ ................ 51 5 1 Sample acceleration data for accelerating to 1000 mm/min from a stop in along the x axis ................................ ................................ ................................ ............ 54 5 2 Straight line machining strategy for test pocket ................................ .................. 55 5 3 Zig zag machining strategy for test pocket ................................ ......................... 56 5 4 Spiral in machining strategy for test pocket ................................ ........................ 57 PAGE 9 9 LIST OF ABBREVIATIONS 3D Three Dimensional CAM Computer Aided Manufacturing CNC Computer Numerically Controlled GUI Graphical User Interface GUIDE Graphical User Interface Design Environment MC 2 Machining Cost Calculator PAGE 10 10 Abstract of Thesis Presented to the Graduate School of the University of Florida in Partial Fulfillment of the Requirements for the Degree of Master of Science A NEW MACHINING COST CALCULATOR (MC 2 ) By Mathew Ru ssell Johnson M ay 2011 Chair: Tony L. Schmitz Major: Mechanical Engineering Machining cost for a given part is directly related to machining time. Current computer aided manufacturing (CAM) software estimates machining time without accounting for acce leration of the tool to the specified feed rate or deceleration to zero feed rate during machining. A Matlab graphical user interface (GUI) entitled the Machining Cost Calculator (MC 2 ) was developed to provide a more accurate machining time by including ac celeration/deceleration. The program allows users to select from a predefined set of internal pockets and simple pocketing strategies. Users input machining and pocket specific parameters and the program outputs an estimate of the total machining time alon g with the cost to machine the pocket. A validation study was conducted to determine the accuracy of the program. The results demonstrated that the program provides accurate machining time estimates. PAGE 11 11 CHAPTER 1 INTRODUCTION Manufacturing research is domin ated by attempts to increase production and efficiency, while decreasing cost. Many novel inventions have been developed to reduce manufacturing costs. In the past century, the trend in machining has been to move away from parts made by hand to production by tools and, later, machine tools. Early machine tools were manually operated and required significant skill to operate. Then, computer numerically controlled (CNC) machines were created. CNC machines enabled higher production rates at much lower costs. As computer technology continued to progress, programs were made available that could provide three dimensional (3D) renderings of the parts before they were machined. This permitted designers to view their parts before time was spent actually machining t hem. Also, computer programs were developed to automatically generate the code used to specify the machine motions for a given 3D part. These programs, referred to as computer aided manufacturing (CAM) software, not only provided a detailed view of how the part was to be machined, but they also allowed the user to select from multiple machining strategies. The programs also calculated a machining time given the user selected spindle speed and feed rate. This time enabled improved estimation of the part cost because a large portion of the total cost is often associated with the machining time and, subsequently, the machining cost. However, CAM programs do not account for the time it takes a machine tool to accelerate to the desired feed rate or the time to d ecelerate to a stop. The time to do so is small when compared to the total time for many machining operations, but for pocketing operations that require many starts and stops the acceleration/deceleration PAGE 12 12 time may not be negligible. If this time is not con sidered, the CAM software gives the user a machining time that is, in some cases, much shorter than the actual time on the machine. Without accounting for the acceleration/deceleration time, an accurate estimate of the machining costs cannot be realized. To address this issue, a Matlab based program, entitled Machining Cost Calculator ( MC 2 ), was developed to estimate machining time while considering the time to accelerate and decelerate. The effects of this more accurate machining time are broad. The most obvious enhancement is that manufacturing costs can be more accurately calculated given this new time estimation. Second, more efficient and faster machining methods can be selected by comparing different machining methods. Third, a more accurate estimate of machining time will enable shops to improve their machine tool scheduling and decrease the time par ts will be waiting to be processed on a given machine. All of these effects will serve to benefit manufacturing by increasing efficiency and reducing cost, which satisfies the goals of this project. PAGE 13 13 CHAPTER 2 LITERATURE REVIEW Cost is one of the most influential factors in modern machining. The cost of machining can be divided into several components. Tlusty [1] provides an equation that calculates the cost of a part. The equation is composed of three distinct parts The first part, C fix, is the fixed costs that are not affected by cutting speed and feed rates. The second part, is the machining cost, where t m is the machining time and r m is the machine rate, or cost per un it time required to operate the machine. The final portion of the equation is the total tool cost, This is based on the cost of each tool and the time required to change the tool (more than one tool may be required to machine a part). In this equation, t tch is the tool change time, C t is the cost per tool, and T is the tool life. The cost per part equ ation demonstrates the importance of machining time in cost calculation. Reducing machining time is necessary to keep machining costs as low as possible. Many ways exist to reduce the time to machine. One of the most effective methods is to select an effi cient machining strategy. As stated by Arkin et al [2] and Park and Choi [3], an efficient path should not have areas machined repeatedly and should have as few tool retractions as possible. Bieterman and Sandstrom [4 5] propose a new curvilinear tool pat h method that satisfies these criteria. The method uses the pocket perimeter as its starting point and creates a path that slowly transitions into a spiral to the center of the pocket. Advantages of this type of path include reduction of tool wear and incr eased machining efficiency. PAGE 14 14 Much work is being done to create efficient machining methods for complex 3D parts using multi axis machine tools with ball nose end mills One area of interest in these complex machining tasks is to create paths such that the s callop between machining passes is kept at a constant value [6]. Additionally, to reduce overlapping during machining Lee [7] has demonstrated a non isoparametric tool path planning strategy. Spline interpolation is another technique that is being implemen ted. Using this technique, 3D splines are generated to enable smooth movements from one point on the parts surface to the next. These path planning methods serve to increase the machining efficiency and reduce the machining costs. However, the focus of thi s research was not the implementation of new complex path generation methods. Rather, the goal was to show how selection of one (traditional) machining strategy over another can result in substantial machining time and cost reduction. PAGE 15 15 CHAPTER 3 MC 2 PROGRA M BASIS Currently, multiple CAM programs are commercially available that enable users to import or create their own 3D solid model, select their desired machining method, and visualize the cutting process and results. These programs are also capable of selecting spindle speeds and feeds from a pre defined database based for the user defined tool and the work material. Add itionally, they provide a 3D animation of the cutting process and the final product. The MC 2 program developed in this research is not meant to replace such programs. Rather, it enables users to better understand the effect of the selected machining strate gy, including the acceleration/deceleration times, on the total machining time and, subsequently, the cost. The first decision made in creating the program was to select the family of machining strategies. These included: straight line, zig zag, spiral in and spiral out based on their common use. In the straight line method depicted in Figure 3 1, the tool makes a pass across the pocket machining material, reaches the end, retracts to a selected height above the surface of the part, returns to the startin g position, steps over a desired distance, plunges to the selected machining depth, and then completes the next pass across the pocket. In the zig zag method shown in Figure 3 2, the tool makes a pass across the pocket, reaches the end, steps over the desi red distance, returns across the pocket, and continues in that fashion to complete the pocket. The final two methods, spiral in and spiral out, depicted in Figures 3 3 and 3 4, respectively, are similar to one another For the spiral in strategy, the tool begins machining along the outside edge of the pocket and works its way towards the middle following the pocket contour. For the spiral out method, the tool begins machining material at the center of PAGE 16 16 the pocket and work its way towards the outer periphery until the final size of the pocket is reached. Next, the method to calculate: 1) the time required to accelerate to the desired feed rate; and 2) the distance to do so had to be established. First, the time, t to reach the specified feed rate is described by: where v 1 is the commanded velocity, v 0 is the starting velocity, and a is the machine axis acceleration (a constant acceleration profile was assumed). In this study, a zero starting velocity was assumed. Thus, the time requ ired to reach the specified feed rate is simply the feed rate divided by the acceleration. Using this time, the distance required to reach the specified feed rate, d 1 was calculated using: where d 0 is the initial position. For zero starting position and velocity, the equation simplifies to: Once this distance is calculated, it is compared to the distance of the commanded move. If the calculated distance is greater than half of the total move distance then the tool does not reach the desired feed rate. In this case, the time to move the required distance is calculated using: where d is half of the distance to be moved. However, if the distance required to accelerate to the desired feed rate is less than half the total move distance, the commanded feed rate is reached for a portion of the move. In this case, the distance over which the commanded feed rate occurs must be calculated and the corresponding time must be found. To calculate the distance of the full feed rate portion of the move, twice the distance to accelerate to the feed rate is subtracted from the total move distance. The result is the distance over which the tool PAGE 17 17 will travel at the commanded feed rate. Then, thi s distance is divided by the feed rate to calculate the associated travel time. With this value, the total move time is calculated by summing the full feed rate time with twice the time required to accelerate to the feed rate. The time to accelerate to the feed rate is doubled to account for the acceleration and deceleration time, where acceleration and deceleration times were assumed to be equal. Finally, once all of the times to feed across the preferred pocket path are calculated, these times are summed to determine the total time required to machine the selected pocket given the machining conditions. For comparison purposes, the time to machine the pocket assuming infinite acceleration is also calculated. This time is: where f is the commanded feed rate and d is the sum of all the move distances. This calculation neglects the acceleration/deceleration effects and mimics the behavior of current CAM software. PAGE 18 18 Figure 3 1. Straight line machining method for a pocket with dimens ions of 150 mm by 100 mm PAGE 19 19 Figure 3 2. Zig zag machining method for a rectangular pocket with dimensions of 150 mm by 100 mm PAGE 20 20 Figure 3 3. Spiral in machining method for a rectangular pocket with dimension of 150 mm by 100 mm PAGE 21 21 Figure 3 4. Spiral out machining method for a rectangular pocket with dimensions of 150 mm by 100 mm PAGE 22 22 Figure 3 5. Depiction of a rectangular pocket with the required dimensions and the location of the coordinate origin Figure 3 6. Depiction of square pocket with the required dimension and the location of the coordinate origin PAGE 23 23 Figure 3 7. Circular pocket with the required dimension and the location of the coordinate origin Figure 3 8. Hexagonal pocket with the required dimension and the location of the coordinat e origin PAGE 24 24 Figure 3 9. Irregular H shaped pocket with its required dimensions and the location of the coordinate origin Figure 3 10. Irregular C shaped pocket with its required dimensions and the location of the coordinate origin PAGE 25 25 Figure 3 11. Irregu lar L shaped pocket with its required dimensions and the location of the coordinate origin PAGE 26 26 CHAPTER 4 MC 2 PROGRAM FUNCTIONS Graphical User Interface Tutorial A graphical user interface (GUI) is a common computer interface that people use on a daily basis. An example is Windows, which is the default interface for most personal computers. In this tutorial, the reader will be instructed on how to create a simple M atlab based GUI. The steps provided here will enable the reader to gain a basic understanding of GUI formatting. In this tutorial it is assumed that the reader has a good working knowledge of Matlab and Matlab programming. The first step to creating a GUI is to enter the Matlab graphical user interface prompt. A GUIDE window will appear, as shown in Figure 4 1. Next, select the Blank GUI (Default) selection under the GUIDE templates and click OK. At this point a blank GUI window will appear, as shown in Figure 4 2. The program described here is a simple one designed to accept an input fraction and display The final re sult is shown in Figure 4 2. In the following paragraphs, instructions are provided for defining this GUI. In the blank GUI window the user can build the GUI according to the requirements for the final product. The pushbuttons along the left side are all of the different items that can be placed in the GUI. In this tutorial, pushbuttons, edit text boxes, panels, and static textboxes will be applied. The other items can be modified in much the same way as those described here. Now that the blank window is ready to be modified, click on the top left button in the menu, which will enable the creation of a pushbutton. To be sure the correct button PAGE 27 27 is selected, the cursor can be positioned over the button and its title will appear. After selecting the pushbutto n option, move the cursor onto the window and click and drag the mouse to make a button. The button can be any size, but the font will default to 8 point and can be changed after the button is made. To move the newly placed button, click on it and drag it to the desired location. Next, double click on the button to open its Inspector window. Figure 4 3 shows the GUI window with the button placed and its Inspector window opened. The Inspector window is where all of the aspects of the pushbutton are modified One of the most important items that must be identified and retained is the Tag. The Tag is the name that the GUI m file will use when referring to the pushbutton. The default name assigned to the button will be pushbutton. To change this Tag, scroll dow n change the name that appears on the pushbutton itself, however. To change this name, the String must be updated. String appears two rows above Tag in the Inspector. Fol Similarly, under the row labeled FontSize, change the font size to 16 point, the ForegroundColor to orange, and the BackgroundColor to blue. Now, close the Inspector by clickin g on the red X in the top right corner of the box. The new pushbutton and GUI window should appear as shown in Figure 4 4. The next item to place on the window will be the two panels that will hold the static and edit text boxes. Select the panel button f rom the buttons on the left, click on the window, and drag to create a panel. Repeat the process and create a second panel. Then, select the static text button and make two static text boxes inside the panel on the PAGE 28 28 left. Finally, select the edit text butto n and create three boxes, two inside the panel on the left and one inside the other. The window should now have the edited pushbutton, one panel with two edit and two static text boxes, and one panel with one edit text box, as seen in Figure 4 5. As with the pushbutton, the panels and text boxes must be renamed and changing the row labeled String and change the Tag to input_values. Change the right for the string and output_value for its Tag. Set the text for both of the panels to 14 point. The text boxes are modified next. Label the two static text numerator_text and den ominator_text. Also, set their font to 14 point and background color to orange. For the input text boxes, set the font to 14 point, remove the string so the text box will be blank, and set the tags to numerator_input and denominator_input. Similarly, for t he text box in the output panel set the font to 14 point, remove the text string, and set its tag to solution. The last step is to align all the items according to personal preference. This can be conveniently accomplished by using the align objects button It is located in the top row of buttons and is two yellow boxes with a line through them. To align the objects, select which items to align and click the button. The Align Objects window will appear, seen in Figure 4 6. Features in the window enable both vertical and horizontal alignment, as well as vertical and horizontal spacing. Using this tool, align the four items in the input values panel so they are aligned vertically and have a uniform spacing. The finished GUI should look like Figure 4 7. PAGE 29 29 The fi nal step required to complete the GUI is to write the code in the m file that will be run when the execute button is pushed. The GUIDE will automatically generate the m file based on the figure file created. To create the m file, simply save the figure as the selected GUI file name; the program described here is named fraction.m. Upon saving, the m file will open and be populated with code for the items placed on the figure. Each item has its own subroutines. The location where this programs code will be pl aced is in the function labeled execute_Callback. The program is very simple, but displays the way to call values from the GUI, use them, and display the results. There are three functions used to generate the code for this program. The functions are get, str2double, and set. All are commonly used Matlab functions and are straightforward to implement. The first step is to retrieve the input variables the user will enter in the two edit text boxes. Using the get command the values are called into the m file and set as a new variable. The tag specified in the renaming completed earlier defines how the variables are called. The tag must be preceded with handles to call the value. These numbers will be recognized by Matlab as strings rather than numbers, so they will need to be converted to a double precision value using the str2double function. The code to call the two values into the m file is: numerator = str2double(get(handles.numerator_input, 'String' )); denominator = str2double(get(handles.denominator_in put, 'String' )); These new variables can then be used to calculate the new output value. The value is calculated by dividing the numerator by the denominator and is stored as a new variable. Then, the set function is used to output the newly calculated va lue to the PAGE 30 30 output panel. The code to complete this task is shown below. The final GUI is shown in Figure 4 8. value = numerator/denominator; set(handles.solution, 'String' value); One last important note is that if the variables in one subroutine are t o be used in another subroutine, the line guidata(hObject, handles) must be placed at the end of each subroutine. The complete code is provided in Appendix A. Also, there is additional information for developing a GUI in the Matlab help documents. MC 2 Guide Given the Matlab GUI basics provided in the previous section, the details of the MC 2 program can now be described. The program is made up of many different parts that enable the user to input an array of different information and select from a prep rogrammed set of pockets and pocketing strategies previously described. In this chapter, the basic use of the program is detailed. The first feature is labeled Step I and appears as a drop down menu. This menu enables the user to select from the four mach ining strategies, shown in the red box in Figure 4 9. The second drop down menu is where the user selects one of the seven pocket shapes. The menu is labeled Step II and is identified by the red box in Figure 4 10. Next, based on the selected pocket shape the figure on the upper right of the GUI will switch the image to show the dimensions required to fully define the selected pocket. Figure 4 11 shows the figure outlined in red. Similarly, the third item is the first tab on the grey panel and it changes its display to allow the proper inputs for the pocket PAGE 31 31 shape that is chosen. Figure 4 12 displays the tab, labeled Pocket Size (III), for a rectangular pocket. Tool Inputs (IV) is the fourth step in the program. This tab requires the user to define the num ber of teeth on the tool, the diameter of the cutter, the stepover, and depth of cut. All the inputs are labeled with their accompanying units; see Figure 4 13. Step five, labeled Machining Parameters (V), is where the user inputs more specifications for t he operation. The inputs are the machine axis acceleration, the feed per tooth, the rapid plane height, the rapid velocity, and the commanded spindle speed. Figure 4 14 shows the tab with the default values entered for each input. The sixth step requests t he location where the tool begins the machining operation when it is away from the part. The tab is labeled as Starting Position (VI), which is displayed in Figure 4 15. The last tab in the panel is where the cost inputs are entered. These are the tool ch ange time, the expected tool life, the machining rate, and the cost per tool. These all factor into the calculation of the total machining cost estimate and the panel is displayed in Figure 4 16. The final input feature on MC 2 is the Calculate button, seen in Figure 4 17. This button prompts the program to calculate the machining times and cost based upon the user inputs identified in the previous steps. The last part of MC 2 to be discussed is the outputs that are displayed. The outputs are numerous, but f our of them are the main focus. The outputs panel displays to the user all of the output times calculated in the program. These times include the cutting and non cutting times along with the total time of the operation. The output times depend on the selec ted machining strategy. Three other outputs are also displayed. The PAGE 32 32 first is the feed rate, which is calculated from the user defined feed per tooth, spindle speed, and number of teeth on the cutting tool. The second is the infinite acceleration time, or t he time it would take to machine the pocket if the acceleration and deceleration times were neglected. Lastly, the cost for the selected pocketing operation is displayed in the panel labeled cost. All of the outputs can are shown in Figure 4 18. As an adde d feature, when the times are calculated, a figure is created to show the user the selected pocket and pocketing strategy. The output values from MC 2 though labeled with descriptive titles, are best described using an example pocket and machining strateg y. For this example, a rectangular pocket of dimensions 150 mm by 100 mm and a depth of 10 mm is analyzed. The value for the machine axis acceleration is modified to 1 m/s 2 and the spindle speed is set to 5000 RPM. All the remaining inputs are left as thei r default values seen in Figure 4 20 are displayed. The first output time in the Outputs panel is the Initial Rapid Move time. This time is the time it takes the tool to mov e at the specified rapid velocity from the starting position to the selected rapid plane height above the surface of the part. Plunge Time is next, and it displays the time required to make every plunge from the rapid plane height to the selected depth of cut at the commanded feed rate. The largest contributor to the total time is described third. Machining time is the time that the tool is actually feeding through the part material. Rapid out time follows and is the time it takes the tool to move back out to the specified rapid plane height after a cutting pass is finished. This move is completed at the rapid velocity. The fifth output time is the stepover time. Stepover time PAGE 33 33 is the time it takes the tool to step across the pocket. This time can be either b ased upon the rapid velocity, as is the case for the Straight line method, or the feed rate for all the other pocketing strategies. The last time component displayed is the Rapid Return Time. It is based upon the rapid velocity and is how long it takes to move from where the tool completes one level of the pocket to the home position where the next level will be started. The last four outputs from MC 2 are the two that display the total time (described previously), one that displays the seleced feed rate, and, lastly, the one that provides the cost to machine the pocket. This cost calculation is based upon the equation provided by Tlusty [1] that was described in Chapter 2. The cost per part equation, reduces to because the fixed cost was not considered here [1]. The fixed cost is removed because the program calculates the total machining cost, not the total cost of the part. In the reduced for of the equation t m is the total machining ti me, r m is the machining rate for the machine in use, t tch is the tool change time specified by the user, C t is the cost per tool, and T is the tool life. These input values are user specified. PAGE 34 34 Figure 4 1. GUIDE Quick Start window Figure 4 2. Final PAGE 35 35 Figure 4 3. Blank GUI window PAGE 36 36 Figure 4 4. GUI window with pushbutton and pushbutton Inspector window PAGE 37 37 Figure 4 5. GUI window with updated pushbutton PAGE 38 38 Figure 4 6. GUI window with panels, static text boxes, and edit text boxes added Figure 4 7. Align Objects window PAGE 39 39 Figure 4 8. Final GUI layout with all items resized, renamed, and aligned PAGE 40 40 Figure 4 9. Final look of the GUI fraction with input and output values displayed PAGE 41 41 Figure 4 10 Pocketing strategy dropdown menu displaying the four available selections PAGE 42 42 Figure 4 11 Pocket shape s dropdown menu displaying the seven pocket shape selections PAGE 43 43 Figure 4 12 Pocket shape selected with required dimensions PAGE 44 44 Figure 4 13 Pockets size tab with input boxes for each required dimension for the selected pocket PAGE 45 45 Figure 4 14 Tool input tab with input boxes for tool dimensions and some users selected parameters PAGE 46 46 Figure 4 15 Machining parameters tab with input boxes for users selected values and the machine tool axis acceleration PAGE 47 47 Figure 4 16 Starting positing tab with input boxes for the x y and z position of the tool before machining begins PAGE 48 48 Figure 4 17 Cost tab with input boxes for the specific cost values f or the selected machining process PAGE 49 49 Figure 4 18 Calculate pushbutton for executing the program after all input values have been entered PAGE 50 50 Figure 4 1 9 Outputs panel where all machining times are displays in seconds along with the selected feed rate [mm/min] and the machining cost [dollars] PAGE 51 51 Figure 4 20. MC 2 with output values displayed for a rectangular pocket using the single direction pocketing strategy PAGE 52 52 CHAPTER 5 MC 2 VALIDATION To validate the program, a pocket shape was selected and executed on a commercial machine tool. The actual time was then compared with the MC 2 estimates. For this testing, a Mikron UCP 600 Vario five axis machine tool was selected and the machine axis accelerations in the x and y directions were measured. The m easurements were taken using an accelerometer and the data was filtered using Matlab. A fourth order Butterworth low pass filter with a cutoff frequency of 200 Hz was used to reject high frequency noise and isolate the acceleration events. The filtered dat a for a selected test in the x direction at 1000 mm/min is shown in Figure 5 1. Testing was carried out for a 50 mm by 50 mm square pocket. It was 10 mm deep and both the axial and radial depths of cut were specified as 2 mm. The tool was defined to have a diameter of 10 mm and two flutes. The feed per tooth was 0.1 mm/tooth and 0.3 mm/tooth. The spindle speed was specified as 5000 RPM, the rapid plane height was 10 mm above the original part surface, and the rapid velocity was 0.33 m/s. These inputs were all set in MC 2 and the time was calculated. The CNC program was also executed on the machine and the time was measured using the built in machine timer. For the testing, the machining time was calculated and observed using Straight line, Zig zag, and Spir al in machining strategies. Figures 5 2 through 5 4 show the pocket shapes and paths from the testing. Also, two feed rates, 1000 mm/min and 3000 mm/min, were used. The code to run the machine tool was written in G code for all of the selected strategies. The G code for the pocketing strategies is provided in Appendix B. Table 5 1 shows a comparison of the times estimated by MC 2 the times measured PAGE 53 53 from the actual machine tests, and the machining time when acceleration is not taken into account (these value s are also provided by MC 2 ). The percent differences between the MC2 predictions with and without considering acceleration and the actual times are also provided. Table 5 1 shows that MC 2 provides accurate estimates of the machining time when considering f inite acceleration. However, some discrepancies between the measured values and MC 2 estimates are present. A primary reason for the differences is uncertainty in the acceleration values. The x axis acceleration/deceleration was found to be 0.92 m/s 2 0.09 m/s 2 and the y axis acceleration/deceleration was 1.19 m/s 2 0.24 m/s 2 for the 1000 mm/min feedrate. The acceleration values for the 3000 mm/min feedrate were 1.43 m/s 2 0.11 m/s 2 in the x axis and 1.63 m/s 2 0.12 m/s 2 in the y axis. Due to the fact th at MC 2 only allows one acceleration value to be input, the average between the x and y axis acceleration values was used. The average acceleration for 1000 mm/min was 1.08 m/s 2 and was 1.53 m/s 2 for 3000 mm/min. Because MC 2 is capable of estimating accura te machining times by including the axis acceleration (the accuracy depends on the acceleration values), the program enables the user to observe the advantages of selecting the machining strategies that use the fewest non cutting moves, as evidenced by the lower machining times for the Zig zag and Spiral in methods versus the Straight line method in Table 5 1. Similarly, the program shows the user how higher axis acceleration directly correlates to faster machining times. PAGE 54 54 Figure 5 1. Sample acceleration data for accelerating to 1000 mm/min from a stop along the x axis PAGE 55 55 Figure 5 2. Straight line machining strategy for test pocket PAGE 56 56 Figure 5 3. Zig zag machining strategy for test pocket PAGE 57 57 Figure 5 4. Spiral in machining strategy for test pocket PAGE 58 58 Tab le 5 1. Measured and estimated times for the test pockets 1000 mm/min Strategy MC 2 time [sec] Actual time [sec] % difference Infinite accel. time [sec] % difference Straight line 453 452 0.22 393 13. 1 Zig zag 325 327 0.61 317 3. 06 Spiral in 231 233 0. 86 225 3.4 3 3000 mm/min Straight line 195 210 7. 14 143 37.9 Zig zag 118 128 7.81 106 17.2 Spiral in 84 89 5. 62 75 15.7 PAGE 59 59 CHAPTER 6 CONCLUSION AND FUTURE WORK The MC 2 program produced in this research provides a convenient interface for calculating machining time while accounting for acceleration. MC 2 is a Matlab GUI that consists of four pocketing strategies and seven pocket shapes. The program allows the user to inpu t the pocket dimensions, the tool specifications, the machining parameters, and the cost inputs. These input values are used to accurately calculate the machining time and, subsequently, determine a more accurate machining cost. The program accuracy was d emonstrated. A sample rectangular pocket of dimensions 50 mm by 50 mm and 10 mm deep was selected in MC 2 and G code was written to machine the pocket using a commercial machine tool. The machine tool axis accelerations were measured and used in MC 2 The ti me estimated by MC 2 was compared to the time it took to actually machine the pocket. The results showed that the program was capable of closely estimating the actual machining time through the inclusion of acceleration in the time calculation. Future adva ncements for the program are possible. First, the program was not meant to replace traditional CAM software and, therefore, contains a limited selection of pocket shapes and machining strategies. To extend the programs capabilities, more pocket shapes and machining strategies could be added. Alternately, this capability could be added to existing CAM programs. Second, it could be extended to include separate acceleration values in the individual axis directions. Finally, a constant acceleration profile was assumed. In fact, the actual acceleration profiles are trapezoidal in nature; see Fig u re 5 1. This assumption could be relaxed by assuming constant jerk (the time derivative of acceleration) rather than constant acceleration. PAGE 60 60 APPENDIX A SAMPLE GUI PROGRAM fu nction varargout = fraction(varargin) % FRACTION M file for fraction.fig % FRACTION, by itself, creates a new FRACTION or raises the existing % singleton*. % % H = FRACTION returns the handle to a new FRACTION or the handle to % the exi sting singleton*. % % FRACTION('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in FRACTION.M with the given input arguments. % % FRACTION('Property','Value',...) creates a new FRACTION or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before fraction_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to fraction_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help fraction % Last Modified by GUIDE v2.5 14 Feb 2011 14:16:01 % Begin initialization code DO NOT EDIT gui_Singleton = 1; gui_State = struct( 'gui_Name' mfilename, ... 'gui_Singleton' gui_Singleton, ... gui_OpeningFcn' @fraction_OpeningFcn, ... 'gui_OutputFcn' @fraction_OutputFcn, ... 'gui_LayoutFcn' [] ... 'gui_Callback' []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = s tr2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code DO NOT EDIT % Executes just before fraction is made visible. functio n fraction_OpeningFcn(hObject, eventdata, handles, varargin) clc; % Clears the matlab panel before the gui opens % This function has no output args, see OutputFcn. % hObject handle to figure PAGE 61 61 % eventdata reserved to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to fraction (see VARARGIN) % Choose default command line output for fraction handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes fraction wait for user response (see UIRESUME) % uiwait(handles.figure1); % Outputs from this function are returned to the command line. function varargout = fraction_OutputFcn(hObje ct, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; % Executes on button press in execute. function execute_Callback(hObject, eventdata, handles) % Calles the numerator value from the input box numerator = str2double(get(handles.numerator_input, 'String' )); % Calls the denominator value from the input box denominator = str2double(get(handles.denominator_input, 'String' )); value = numerator/denominator; % Sets the output value from the above calculation set(handles.solution, 'String' value); guidata(hObject, handles) function solution_Callback(hObject, eventdata, handles) % hObject handle to solution (see GCBO) % eventdata reserved to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of solution as text % str2double(get(hObject,'String')) returns contents of solution as a double % Exec utes during object creation, after setting all properties. function solution_CreateFcn(hObject, eventdata, handles) % hObject handle to solution (see GCBO) % eventdata reserved to be defined in a future version of MATLAB % handles empty handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. PAGE 62 62 % See ISPC and COMPUTER. if ispc && isequal(get(hObject, 'BackgroundColor' ), get(0, 'defaultUicontrolBackgroundColor' )) set(hObject, 'BackgroundColor' 'white' ); end function numerator_input_Callback(hObject, eventdata, handles) % hObject handle to numerator_input (see GCBO) % eventdata reserved to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of numerator_input as text % str2double(get(hObject,'String')) returns contents of numerator_input as a double % Executes during object creation, after setting all proper ties. function numerator_input_CreateFcn(hObject, eventdata, handles) % hObject handle to numerator_input (see GCBO) % eventdata reserved to be defined in a future version of MATLAB % handles empty handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject, 'BackgroundColor' ), get(0, 'defaultUicontrolBackgroundColor' )) set(hObject, 'BackgroundColor' 'white' ); end function denominator_input_Callback(hObject, eventdata, handles) % hObject handle to denominator_input (see GCBO) % eventdata reserved to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get( hObject,'String') returns contents of denominator_input as text % str2double(get(hObject,'String')) returns contents of denominator_input as a double % Executes during object creation, after setting all properties. function denominator_input_CreateFcn(hObject, eventdata, handles) % hObject handle to denominator_input (see GCBO) % eventdata reserved to be defined in a future version of MATLAB % handles empty handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject, 'BackgroundColor' ), get(0, 'defaultUicontrolBackgroundColor' )) set(hObject, 'BackgroundColor' 'white' ); end PAGE 63 63 APPENDIX B VALIDAT ION G CODE Straight Line %GCODE G71 N 0 G17 G40 G80 G90 N 1 G01 X0 Y0 Z10 F1000 N 2 G01 Z 2 N 3 G01 X40 N 4 G01 Z10 F19800 N 5 G01 X0 N 6 G01 Y2 N 7 G01 Z 2 F1000 N 8 G01 X40 N 9 G01 Z10 F19800 N 10 G01 X0 N 11 G01 Y4 N 12 G01 Z 2 F1000 N 13 G01 X40 N 14 G01 Z10 F19800 N 15 G01 X0 N 16 G01 Y6 N 17 G01 Z 2 F1000 N 18 G01 X40 N 19 G01 Z10 F19800 N 20 G01 X0 N 21 G01 Y8 N 22 G01 Z 2 F1000 N 23 G01 X40 N 24 G01 Z10 F19800 N 25 G01 X0 N 26 G01 Y10 N 27 G01 Z 2 F1000 N 28 G01 X40 N 29 G01 Z10 F19800 N 30 G01 X0 N 31 G01 Y12 N 32 G01 Z 2 F1000 N 33 G01 X40 N 34 G01 Z10 F19800 N 35 G01 X0 N 36 G01 Y14 N 37 G01 Z 2 F1000 N 38 G01 X40 N 39 G01 Z10 F19800 N 40 G01 X0 PAGE 64 64 N 41 G01 Y16 N 42 G01 Z 2 F1000 N 43 G01 X40 N 44 G01 Z10 F19800 N 45 G01 X0 N 46 G01 Y18 N 47 G01 Z 2 F1000 N 48 G01 X40 N 49 G01 Z10 F19800 N 50 G01 X0 N 51 G01 Y20 N 52 G01 Z 2 F1000 N 53 G01 X40 N 54 G01 Z10 F19800 N 55 G01 X0 N 56 G01 Y22 N 57 G01 Z 2 F1000 N 58 G01 X40 N 59 G01 Z10 F19800 N 60 G01 X0 N 61 G01 Y24 N 62 G01 Z 2 F1000 N 63 G01 X40 N 64 G01 Z10 F19800 N 65 G01 X0 N 66 G01 Y26 N 67 G01 Z 2 F1000 N 68 G01 X40 N 69 G01 Z10 F19800 N 70 G01 X0 N 71 G01 Y28 N 72 G01 Z 2 F1000 N 73 G01 X40 N 74 G01 Z10 F19800 N 75 G01 X0 N 76 G01 Y30 N 77 G01 Z 2 F1000 N 78 G01 X40 N 79 G01 Z10 F19800 N 80 G0 1 X0 N 81 G01 Y32 N 82 G01 Z 2 F1000 N 83 G01 X40 N 84 G01 Z10 F19800 N 85 G01 X0 N 86 G01 Y34 PAGE 65 65 N 87 G01 Z 2 F1000 N 88 G01 X40 N 89 G01 Z10 F19800 N 90 G01 X0 N 91 G01 Y36 N 92 G01 Z 2 F1000 N 93 G01 X40 N 94 G01 Z10 F19800 N 95 G01 X0 N 96 G01 Y38 N 97 G01 Z 2 F1000 N 98 G01 X40 N 99 G01 Z10 F19800 N 100 G01 X0 N 101 G01 Y40 N 102 G01 Z 2 F1000 N 103 G01 X40 N 103 G01 X0 N 104 G01 Y0 N 105 G01 X40 N 106 G01 Y40 N 104 G01 Z10 F19800 N 105 G01 X0 N 106 G01 Y0 N 107 G01 Z 4 F1000 N 108 G01 X40 N 109 G01 Z8 F19800 N 110 G01 X0 N 111 G01 Y2 N 112 G01 Z 4 F1000 N 113 G01 X40 N 114 G01 Z8 F19800 N 115 G01 X0 N 116 G01 Y4 N 117 G01 Z 4 F1000 N 118 G01 X40 N 119 G01 Z8 F19800 N 120 G01 X0 N 121 G01 Y6 N 122 G01 Z 4 F1000 N 123 G01 X40 N 124 G01 Z8 F19800 N 125 G01 X0 N 126 G01 Y8 N 127 G01 Z 4 F1000 N 128 G01 X40 PAGE 66 66 N 129 G01 Z8 F19800 N 130 G01 X0 N 131 G01 Y10 N 132 G01 Z 4 F1000 N 133 G01 X40 N 134 G01 Z8 F19800 N 135 G01 X0 N 136 G01 Y12 N 137 G01 Z 4 F1000 N 138 G01 X40 N 139 G01 Z8 F19800 N 140 G01 X0 N 141 G01 Y14 N 142 G01 Z 4 F1000 N 143 G01 X40 N 144 G01 Z8 F19800 N 145 G01 X0 N 146 G01 Y16 N 147 G01 Z 4 F1000 N 148 G01 X40 N 149 G01 Z8 F19800 N 150 G01 X0 N 151 G01 Y18 N 152 G01 Z 4 F1000 N 153 G01 X40 N 154 G01 Z8 F19800 N 155 G01 X0 N 156 G01 Y20 N 157 G01 Z 4 F1000 N 158 G01 X40 N 159 G01 Z8 F19800 N 160 G01 X0 N 161 G01 Y22 N 162 G01 Z 4 F1000 N 163 G01 X40 N 164 G01 Z8 F19800 N 165 G01 X0 N 166 G01 Y24 N 167 G01 Z 4 F1000 N 168 G01 X40 N 169 G01 Z8 F19800 N 170 G01 X0 N 171 G01 Y26 N 172 G01 Z 4 F1000 N 173 G01 X40 N 174 G01 Z8 F19800 PAGE 67 67 N 175 G01 X0 N 176 G01 Y28 N 177 G01 Z 4 F1000 N 178 G01 X40 N 179 G01 Z8 F19800 N 180 G01 X0 N 181 G01 Y30 N 182 G01 Z 4 F1000 N 183 G01 X40 N 184 G01 Z8 F19800 N 185 G01 X0 N 186 G01 Y32 N 187 G01 Z 4 F1000 N 188 G01 X40 N 189 G01 Z8 F19800 N 190 G01 X0 N 191 G01 Y34 N 192 G01 Z 4 F1000 N 193 G01 X40 N 194 G01 Z8 F19800 N 195 G01 X0 N 196 G01 Y36 N 197 G01 Z 4 F1000 N 198 G01 X40 N 199 G01 Z8 F19800 N 200 G01 X0 N 201 G01 Y38 N 202 G01 Z 4 F1000 N 203 G01 X40 N 204 G01 Z8 F19800 N 205 G01 X0 N 206 G01 Y40 N 207 G01 Z 4 F1000 N 208 G01 X40 N 103 G01 X0 N 104 G01 Y0 N 105 G01 X40 N 106 G01 Y40 N 209 G01 Z8 F19800 N 210 G01 X0 N 211 G01 Y0 N 212 G01 Z 6 F1000 N 213 G01 X40 N 214 G01 Z6 F19800 N 215 G01 X0 N 216 G01 Y2 PAGE 68 68 N 217 G 01 Z 6 F1000 N 218 G01 X40 N 219 G01 Z6 F19800 N 220 G01 X0 N 221 G01 Y4 N 222 G01 Z 6 F1000 N 223 G01 X40 N 224 G01 Z6 F19800 N 225 G01 X0 N 226 G01 Y6 N 227 G01 Z 6 F1000 N 228 G01 X40 N 229 G01 Z6 F19800 N 230 G01 X0 N 231 G01 Y8 N 232 G01 Z 6 F1000 N 233 G01 X40 N 234 G01 Z6 F19800 N 235 G01 X0 N 236 G01 Y10 N 237 G01 Z 6 F1000 N 238 G01 X40 N 239 G01 Z6 F19800 N 240 G01 X0 N 241 G01 Y12 N 242 G01 Z 6 F1000 N 243 G01 X40 N 244 G01 Z6 F19800 N 245 G01 X0 N 246 G01 Y14 N 247 G01 Z 6 F1000 N 248 G01 X40 N 249 G01 Z6 F19800 N 250 G01 X0 N 251 G01 Y16 N 252 G01 Z 6 F1000 N 253 G01 X40 N 254 G01 Z6 F19800 N 255 G01 X0 N 256 G01 Y18 N 257 G01 Z 6 F1000 N 258 G01 X40 N 259 G01 Z6 F19800 N 260 G01 X0 N 261 G01 Y20 N 262 G01 Z 6 F1000 PAGE 69 69 N 263 G01 X40 N 264 G01 Z6 F19800 N 265 G01 X0 N 266 G01 Y22 N 267 G01 Z 6 F1000 N 268 G01 X40 N 269 G01 Z6 F19800 N 270 G01 X0 N 271 G01 Y24 N 272 G01 Z 6 F1000 N 273 G01 X40 N 274 G01 Z6 F19800 N 275 G01 X0 N 276 G01 Y26 N 277 G01 Z 6 F1000 N 278 G01 X40 N 279 G01 Z6 F19800 N 280 G01 X0 N 281 G01 Y28 N 282 G01 Z 6 F1000 N 283 G01 X40 N 284 G01 Z6 F19800 N 285 G01 X0 N 286 G01 Y30 N 287 G01 Z 6 F1000 N 288 G01 X40 N 289 G01 Z6 F19800 N 290 G01 X0 N 291 G01 Y32 N 292 G01 Z 6 F1000 N 293 G01 X40 N 294 G01 Z6 F19800 N 295 G01 X0 N 296 G01 Y34 N 297 G01 Z 6 F1000 N 298 G01 X40 N 299 G01 Z6 F19800 N 300 G01 X0 N 301 G01 Y36 N 302 G01 Z 6 F1000 N 303 G01 X40 N 304 G01 Z6 F19800 N 305 G01 X0 N 306 G01 Y38 N 307 G01 Z 6 F1000 N 308 G01 X40 PAGE 70 70 N 309 G01 Z6 F19800 N 310 G01 X0 N 311 G01 Y40 N 312 G01 Z 6 F1000 N 313 G01 X40 N 103 G01 X0 N 104 G01 Y0 N 105 G01 X40 N 106 G01 Y40 N 314 G01 Z6 F19800 N 315 G01 X0 N 316 G01 Y0 N 317 G01 Z 8 F1000 N 318 G01 X40 N 319 G01 Z4 F19800 N 320 G01 X0 N 321 G01 Y2 N 322 G01 Z 8 F1000 N 323 G01 X40 N 324 G01 Z4 F19800 N 325 G01 X0 N 326 G01 Y4 N 327 G01 Z 8 F1000 N 328 G01 X40 N 329 G01 Z4 F19800 N 330 G01 X0 N 331 G01 Y6 N 332 G01 Z 8 F1000 N 333 G01 X40 N 334 G01 Z4 F19800 N 335 G01 X0 N 336 G01 Y8 N 337 G01 Z 8 F1000 N 338 G01 X40 N 339 G01 Z4 F19800 N 340 G01 X0 N 341 G01 Y10 N 342 G01 Z 8 F1000 N 343 G01 X40 N 344 G01 Z4 F19800 N 345 G01 X0 N 346 G01 Y12 N 347 G01 Z 8 F1000 N 348 G01 X40 N 349 G01 Z4 F19800 N 350 G01 X0 PAGE 71 71 N 351 G01 Y14 N 352 G01 Z 8 F1000 N 353 G01 X40 N 354 G01 Z4 F19800 N 355 G01 X0 N 356 G01 Y16 N 357 G01 Z 8 F1000 N 358 G01 X40 N 359 G01 Z4 F19800 N 360 G01 X0 N 361 G01 Y18 N 362 G01 Z 8 F1000 N 363 G01 X40 N 364 G01 Z4 F19800 N 365 G01 X0 N 366 G01 Y20 N 367 G01 Z 8 F1000 N 368 G01 X40 N 369 G01 Z4 F19800 N 370 G01 X0 N 371 G01 Y22 N 372 G01 Z 8 F1000 N 373 G01 X40 N 374 G01 Z4 F19800 N 375 G01 X0 N 376 G01 Y24 N 377 G01 Z 8 F1000 N 378 G01 X40 N 379 G01 Z4 F19800 N 380 G01 X0 N 381 G01 Y26 N 382 G01 Z 8 F1000 N 383 G01 X40 N 384 G01 Z4 F19800 N 385 G01 X0 N 386 G01 Y28 N 387 G01 Z 8 F1000 N 388 G01 X40 N 389 G01 Z4 F19800 N 390 G01 X0 N 391 G01 Y30 N 392 G01 Z 8 F1000 N 393 G01 X40 N 394 G01 Z4 F19800 N 395 G01 X0 N 396 G01 Y32 PAGE 72 72 N 397 G01 Z 8 F1000 N 398 G01 X40 N 399 G01 Z4 F19800 N 400 G01 X0 N 401 G01 Y34 N 402 G01 Z 8 F1000 N 403 G01 X40 N 404 G01 Z4 F19800 N 405 G01 X0 N 406 G01 Y36 N 407 G01 Z 8 F1000 N 408 G01 X40 N 409 G01 Z4 F19800 N 410 G01 X0 N 411 G01 Y38 N 412 G01 Z 8 F1000 N 413 G01 X40 N 414 G01 Z4 F19800 N 415 G01 X0 N 416 G01 Y40 N 417 G01 Z 8 F1000 N 418 G01 X40 N 103 G01 X0 N 104 G01 Y0 N 105 G01 X40 N 106 G01 Y40 N 419 G01 Z4 F19800 N 420 G01 X0 N 421 G01 Y0 N 422 G01 Z 10 F1000 N 423 G01 X40 N 424 G01 Z2 F19800 N 425 G01 X0 N 426 G01 Y2 N 427 G01 Z 10 F1000 N 428 G01 X40 N 429 G01 Z2 F19800 N 430 G01 X0 N 431 G01 Y4 N 432 G01 Z 10 F1000 N 433 G01 X40 N 434 G01 Z2 F19800 N 435 G01 X0 N 436 G01 Y6 N 437 G01 Z 10 F1000 N 438 G01 X40 PAGE 73 73 N 439 G01 Z2 F19800 N 440 G01 X0 N 441 G01 Y8 N 442 G01 Z 10 F1000 N 443 G01 X40 N 444 G01 Z2 F19800 N 445 G01 X0 N 446 G01 Y10 N 447 G01 Z 10 F1000 N 448 G01 X40 N 449 G01 Z2 F19800 N 450 G01 X0 N 451 G01 Y12 N 452 G01 Z 10 F1000 N 453 G01 X40 N 454 G01 Z2 F19800 N 455 G01 X0 N 456 G01 Y14 N 457 G01 Z 10 F1000 N 458 G01 X40 N 459 G01 Z2 F19800 N 460 G01 X0 N 461 G01 Y16 N 462 G01 Z 10 F1000 N 463 G01 X40 N 464 G01 Z2 F19800 N 465 G01 X0 N 466 G01 Y18 N 467 G01 Z 10 F1000 N 468 G01 X40 N 469 G01 Z2 F19800 N 470 G01 X0 N 471 G01 Y20 N 472 G01 Z 10 F1000 N 473 G01 X40 N 474 G01 Z2 F19800 N 475 G01 X0 N 476 G01 Y22 N 477 G01 Z 10 F1000 N 478 G01 X4 0 N 479 G01 Z2 F19800 N 480 G01 X0 N 481 G01 Y24 N 482 G01 Z 10 F1000 N 483 G01 X40 N 484 G01 Z2 F19800 PAGE 74 74 N 485 G01 X0 N 486 G01 Y26 N 487 G01 Z 10 F1000 N 488 G01 X40 N 489 G01 Z2 F19800 N 490 G01 X0 N 491 G01 Y28 N 492 G01 Z 10 F1000 N 493 G01 X40 N 494 G01 Z2 F19800 N 495 G01 X0 N 496 G01 Y30 N 497 G01 Z 10 F1000 N 498 G01 X40 N 499 G01 Z2 F19800 N 500 G01 X0 N 501 G01 Y32 N 502 G01 Z 10 F1000 N 503 G01 X40 N 504 G01 Z2 F19800 N 505 G01 X0 N 506 G01 Y34 N 507 G01 Z 10 F1000 N 508 G01 X40 N 509 G01 Z2 F19800 N 510 G01 X0 N 511 G01 Y36 N 512 G01 Z 10 F1000 N 513 G01 X40 N 514 G01 Z2 F19800 N 515 G01 X0 N 516 G01 Y38 N 517 G01 Z 10 F1000 N 518 G01 X40 N 519 G01 Z2 F19800 N 520 G01 X0 N 521 G01 Y40 N 522 G01 Z 10 F1000 N 523 G01 X40 N 103 G01 X0 N 104 G01 Y0 N 105 G01 X40 N 106 G01 Y40 N 524 G01 Z10 F19800 N 527 M30 PAGE 75 75 Zig zag %GCODE G71 N 0 G17 G40 G80 G90 N 1 G01 X0 Y0 Z10 F19800 N 2 G01 Z 2 F1000 N 3 G01 X40 N 4 G01 Y2 N 5 G01 X0 N 6 G01 Y4 N 7 G01 X40 N 8 G01 Y6 N 9 G01 X0 N 10 G01 Y8 N 11 G01 X40 N 12 G01 Y10 N 13 G01 X0 N 14 G01 Y12 N 15 G01 X40 N 16 G01 Y14 N 17 G01 X0 N 18 G01 Y16 N 19 G01 X40 N 20 G01 Y18 N 21 G01 X0 N 22 G01 Y20 N 23 G01 X40 N 24 G01 Y22 N 25 G01 X0 N 26 G01 Y24 N 27 G01 X40 N 28 G01 Y26 N 29 G01 X0 N 30 G01 Y28 N 31 G01 X40 N 32 G01 Y30 N 33 G01 X0 N 34 G01 Y32 N 35 G01 X40 N 36 G01 Y34 N 37 G01 X0 N 38 G01 Y36 N 39 G01 X40 N 40 G01 Y38 N 41 G01 X0 N 42 G01 Y40 N 43 G01 X40 PAGE 76 76 N 43 G01 X0 N 44 G01 Y0 N 45 G01 X40 N 46 G01 Y40 N 44 G01 Z10 F19800 N 45 G01 X0 N 46 G01 Y0 N 47 G01 Z 4 F 1000 N 48 G01 X40 N 49 G01 Y2 N 50 G01 X0 N 51 G01 Y4 N 52 G01 X40 N 53 G01 Y6 N 54 G01 X0 N 55 G01 Y8 N 56 G01 X40 N 57 G01 Y10 N 58 G01 X0 N 59 G01 Y12 N 60 G01 X40 N 61 G01 Y14 N 62 G01 X0 N 63 G01 Y16 N 64 G01 X40 N 65 G01 Y18 N 66 G01 X0 N 67 G01 Y20 N 68 G01 X40 N 69 G01 Y22 N 70 G01 X0 N 71 G01 Y24 N 72 G01 X40 N 73 G01 Y26 N 74 G01 X0 N 75 G01 Y28 N 76 G01 X40 N 77 G01 Y30 N 78 G01 X0 N 79 G01 Y32 N 80 G01 X40 N 81 G01 Y34 N 82 G01 X0 N 83 G01 Y36 N 84 G01 X40 N 85 G01 Y38 PAGE 77 77 N 86 G01 X0 N 87 G01 Y40 N 88 G01 X40 N 43 G01 X0 N 44 G01 Y0 N 45 G01 X40 N 46 G01 Y40 N 89 G01 Z8 F19800 N 90 G01 X0 N 91 G01 Y0 N 92 G01 Z 6 F1000 N 93 G01 X40 N 94 G01 Y2 N 95 G01 X0 N 96 G01 Y4 N 97 G01 X40 N 98 G01 Y6 N 99 G01 X0 N 100 G01 Y8 N 101 G01 X40 N 102 G01 Y10 N 103 G01 X0 N 104 G01 Y12 N 105 G01 X40 N 106 G01 Y14 N 107 G01 X0 N 108 G01 Y16 N 109 G01 X40 N 110 G01 Y18 N 111 G01 X0 N 112 G01 Y20 N 113 G01 X40 N 114 G01 Y22 N 115 G01 X0 N 116 G01 Y24 N 117 G01 X40 N 118 G01 Y26 N 119 G01 X0 N 120 G01 Y28 N 121 G01 X40 N 122 G01 Y30 N 123 G01 X0 N 124 G01 Y32 N 125 G01 X40 N 126 G01 Y34 N 127 G01 X0 PAGE 78 78 N 128 G01 Y36 N 129 G01 X40 N 130 G01 Y38 N 131 G01 X0 N 132 G01 Y40 N 133 G01 X40 N 43 G01 X0 N 44 G01 Y0 N 45 G01 X40 N 46 G01 Y40 N 134 G01 Z6 F19800 N 135 G01 X0 N 136 G01 Y0 N 137 G01 Z 8 F1000 N 138 G01 X40 N 139 G01 Y2 N 140 G01 X0 N 141 G01 Y4 N 142 G01 X40 N 143 G01 Y6 N 144 G01 X0 N 145 G01 Y8 N 146 G01 X40 N 147 G01 Y10 N 148 G01 X0 N 149 G01 Y12 N 150 G01 X40 N 151 G01 Y14 N 152 G01 X0 N 153 G01 Y16 N 154 G01 X40 N 155 G01 Y18 N 156 G01 X0 N 157 G01 Y20 N 158 G01 X40 N 159 G01 Y22 N 160 G01 X0 N 161 G01 Y24 N 162 G01 X40 N 163 G01 Y26 N 164 G01 X0 N 165 G01 Y28 N 166 G01 X40 N 167 G01 Y30 N 168 G01 X0 N 169 G01 Y32 PAGE 79 79 N 170 G01 X40 N 171 G01 Y34 N 172 G01 X0 N 173 G01 Y36 N 174 G01 X40 N 175 G01 Y38 N 176 G01 X0 N 177 G01 Y40 N 178 G01 X40 N 43 G01 X0 N 44 G01 Y0 N 45 G01 X40 N 46 G01 Y40 N 179 G01 Z4 F19800 N 180 G01 X0 N 181 G01 Y0 N 182 G01 Z 10 F1000 N 183 G01 X40 N 184 G01 Y2 N 185 G01 X0 N 186 G01 Y4 N 187 G01 X40 N 188 G01 Y6 N 189 G01 X0 N 190 G01 Y8 N 191 G01 X40 N 192 G01 Y10 N 193 G01 X0 N 194 G01 Y12 N 195 G01 X40 N 196 G01 Y14 N 197 G01 X0 N 198 G01 Y16 N 199 G01 X40 N 200 G01 Y18 N 201 G01 X0 N 202 G01 Y20 N 203 G01 X40 N 204 G01 Y22 N 205 G01 X0 N 206 G01 Y24 N 207 G01 X40 N 208 G01 Y26 N 209 G01 X0 N 210 G01 Y28 N 211 G01 X40 PAGE 80 80 N 212 G01 Y30 N 213 G01 X0 N 214 G01 Y32 N 215 G01 X40 N 216 G01 Y34 N 217 G01 X0 N 218 G01 Y36 N 219 G01 X40 N 220 G01 Y38 N 221 G01 X0 N 222 G01 Y40 N 223 G01 X40 N 43 G01 X0 N 44 G01 Y0 N 45 G01 X40 N 46 G01 Y40 N 224 G01 Z10 F19800 N 225 M30 Spiral in %GCODE G71 N 1 G17 G40 G80 G90 N 2 G01 X0 Y0 Z10 F19800 N 3 G01 Z 2 F1000 N 4 G01 X40 N 5 G01 Y40 N 6 G01 X0 N 7 G01 Y0 N 8 G01 X2 Y2 N 9 G01 X38 N 10 G01 Y38 N 11 G01 X2 N 1 2 G01 Y2 N 13 G01 X4 Y4 N 14 G01 X36 N 15 G01 Y36 N 16 G01 X4 N 17 G01 Y4 N 18 G01 X6 Y6 N 19 G01 X34 N 20 G01 Y34 N 21 G01 X6 N 22 G01 Y6 N 23 G01 X8 Y8 N 24 G01 X32 N 25 G01 Y32 PAGE 81 81 N 26 G01 X8 N 27 G01 Y8 N 28 G01 X10 Y10 N 29 G01 X30 N 30 G01 Y30 N 31 G01 X10 N 32 G01 Y10 N 33 G01 X12 Y12 N 48 G01 Z10 F19800 N 49 G01 X0 Y0 N 48 G01 Z 4 F1000 N 4 G01 X40 N 5 G01 Y40 N 6 G01 X0 N 7 G01 Y0 N 8 G01 X2 Y2 N 9 G01 X38 N 10 G01 Y38 N 11 G01 X2 N 12 G01 Y2 N 13 G01 X4 Y4 N 14 G01 X36 N 15 G01 Y36 N 16 G01 X4 N 17 G01 Y4 N 18 G01 X6 Y6 N 19 G01 X34 N 20 G01 Y34 N 21 G01 X6 N 22 G01 Y6 N 23 G01 X8 Y8 N 24 G01 X32 N 25 G01 Y32 N 26 G01 X8 N 27 G01 Y8 N 28 G01 X10 Y10 N 29 G01 X30 N 30 G01 Y30 N 31 G01 X10 N 32 G01 Y10 N 33 G01 X12 Y12 N 48 G01 Z10 F19800 N 49 G01 X0 Y 0 N 48 G01 Z 4 F1000 N 93 G01 Z 6 N 4 G01 X40 PAGE 82 82 N 5 G01 Y40 N 6 G01 X0 N 7 G01 Y0 N 8 G01 X2 Y2 N 9 G01 X38 N 10 G01 Y38 N 11 G01 X2 N 12 G01 Y2 N 13 G01 X4 Y4 N 14 G01 X36 N 15 G01 Y36 N 16 G01 X4 N 17 G01 Y4 N 18 G01 X6 Y6 N 19 G01 X34 N 20 G01 Y34 N 21 G01 X6 N 22 G01 Y6 N 23 G01 X8 Y8 N 24 G01 X32 N 25 G01 Y32 N 26 G01 X8 N 27 G01 Y8 N 28 G01 X10 Y10 N 29 G01 X30 N 30 G01 Y30 N 31 G01 X10 N 32 G01 Y10 N 33 G01 X12 Y12 N 48 G01 Z10 F19800 N 49 G01 X0 Y0 N 48 G01 Z 4 F1000 N 138 G01 Z 8 N 4 G01 X40 N 5 G01 Y40 N 6 G01 X0 N 7 G01 Y0 N 8 G01 X2 Y2 N 9 G01 X38 N 10 G01 Y38 N 11 G01 X2 N 12 G01 Y2 N 13 G01 X4 Y4 N 14 G01 X36 N 15 G01 Y36 N 16 G01 X4 PAGE 83 83 N 17 G01 Y4 N 18 G01 X6 Y6 N 19 G01 X34 N 20 G01 Y34 N 21 G01 X6 N 22 G01 Y6 N 23 G01 X8 Y8 N 24 G01 X32 N 25 G01 Y32 N 26 G01 X8 N 27 G01 Y8 N 28 G01 X10 Y10 N 29 G01 X30 N 30 G01 Y30 N 31 G01 X10 N 32 G01 Y10 N 33 G01 X12 Y12 N 48 G01 Z10 F19800 N 49 G01 X0 Y0 N 48 G01 Z 4 F1000 N 183 G01 Z 10 N 4 G01 X40 N 5 G01 Y40 N 6 G01 X0 N 7 G01 Y0 N 8 G01 X2 Y2 N 9 G01 X38 N 10 G01 Y38 N 11 G01 X2 N 12 G01 Y2 N 13 G01 X4 Y4 N 14 G01 X36 N 15 G01 Y36 N 16 G01 X4 N 17 G01 Y4 N 18 G01 X6 Y6 N 19 G01 X34 N 20 G01 Y34 N 21 G01 X6 N 22 G01 Y6 N 23 G01 X8 Y8 N 24 G01 X32 N 25 G01 Y32 N 26 G01 X8 N 27 G01 Y8 N 28 G01 X10 Y10 PAGE 84 84 N 29 G01 X30 N 30 G01 Y30 N 31 G01 X10 N 32 G01 Y10 N 33 G01 X12 Y12 N 228 G01 Z10 F19800 N 229 M30 PAGE 85 85 LIST OF REFERENCES [1] Tlusty, G., 2000, Manufacturing Processes and Equipment Prentice Hall, Inc. [2] z ation Problems Related to 26 pp. 197 236 [3] Path Planning for Direction Parallel Area Aided Design, 32 pp. 17 25 [4] Bieterman, M.B., and Sandstrom, D.R. Path Method 125 pp. 709 715 [5] 34 (7), pp. 1 3 [6] Lo, C Path Planning for Five Axis Surface Machining with a Flat Aided Design, 31 pp. 557 566 [7] Lee, Y Isoparametric Tool Path Planning by Machining Strip Evaluation for 5 Axis Sculptured Surface Aided Design, 30 (7), pp. 559 570 PAGE 86 86 BIOGRAPHICAL SKETCH Mathew Johnson was born in Brighton, MA to Russell and Karen Johnson. He lived in Clinton, MA throughout his childhood. He attended Valparaiso University in Valparaiso, IN and received his b achelor s d egree in m echanical e ngineering in 2008. In June 2009 he joined the Machine Tool Research Center (MTRC) at the University of Florida under the supervision of Dr. Tony Schmitz. In M ay 2011 he received his M aster of Science d egree. 