Date of Award


Document Type

Open Access Dissertation


Mechanical Engineering


College Of Engineering and Computing

First Advisor

Joshua Tarbutton


This research presents a methodology to automatically select cutters and generate tool paths for all stages in 3-axis CNC Milling of free-form surfaces. Tools are selected and tool paths are planned in order to minimize the total machining time. A generalized cutter geometry model is used to define available cutters and an arbitrary milling surface is initially defined by a triangular mesh.

The decisions made by process engineers in selecting cutting geometry and generating tool paths for milling dramatically influence the final result. Often, the resulting tool path is non-optimal, because the engineers cannot consider all the available information. However, making these decisions can be delegated to a computing system that can find a better result.

The developed methodology selects the cutters to use for milling from the set of all available cutters, assigns milling zones to every selected cutter, based on its performance, and builds iso-scallop and contour parallel tool paths for every cutter and its milling zone. After generating all tool paths for both milling stages (rough milling and finishing), the tool selection sequence is defined and all the tool paths for one tool are connected into the single tool path. The tool paths should be connected in the best possible manner in order to minimize the time of CNC non-cutting motions. This is similar to the travelling salesman problem with constraints. A heuristics solution is provided here. At the end, the total machining time for one tool set is calculated. Finally, the set of cutters used is changed to minimize the total machining time.

A digital, voxel-based model is used to represent a workpiece and the available tools. This model is selected so that the algorithms is simpler and they can be easily paralleled for thousands of computing cores. The parallel processing framework is implemented to work with multiple graphics processing units. Tool paths generated from this framework are post-processed into G-code and the representative part is machined.