Computer Aided Design (CAD) and Computer Aided Manufacture (CAM) software has been developed since the late 1950s and is an essential component of modern manufacturing. The term CAD covers a range of applications from 2D drafting packages to full 3D design packages with simulation and analysis tools. CAM software covers any system that generates programs for use in manufacturing, typically using a 3D model or 2D pattern as input. CAD and CAM packages may be provided as integrated systems where design, analysis, simulation and manufacturing functions are all available in a single environment or they can be discrete packages that perform a single function.
CAD is used at all stages of development from component and assembly design through to design of manufacturing stage models, condition of supply models, associated process tooling and fixturing, and the creation of CNC programs for machining.
Maintaining an association between all of these components can form a "Digital Thread", a linked path of all data relating to a component definition. This ensures all involved are working from the same specification and allows changes to a definition to cascade through all stages of manufacturing with reduced risk version conflicts. When the association is lost, for example if a model is exported to a new format for use in a different system, this thread is broken and there is manual effort required to ensure all derivatives of the model are at the same revision and correct to the specification.
Interoperability and Standards
There are two main types of 3D CAD systems based on different methods of representing a shape; facet model systems and boundary representation (b-rep) systems. A facet model consists of as a set of planar "facet" faces. In a facet model a curved surface is broken up into a series of facets that conform to the original surface within a specified tolerance. A b-rep model defines topology and geometry. A curved surface in a b-rep model will be defined by the boundary curves that define its edges along with internal U and V curves maintaining the defined profile through the surface. These curves are “Non-uniform rational B-splines” and allow a b-rep system to define true arcs and curved features where a facet system would break these into linear segments.
Most engineering CAD packages are b-rep systems and may not allow use of facet models however use of facet models in engineering is growing as 3D scanning and analysis based modelling methods such as topology optimisation and generative design are becoming more common. Facet model formats include .stl and .obj.
Each b-rep system may use different methods to define geometry which can be proprietary or licensed. This limits the ability to transfer data between CAD systems. To resolve this issue there are standard formats to transfer data, most commonly STEP. The current version STEP-242 allows the inclusion of almost all model data including Product Manufacturing Information (PMI) but the standard does not include the full modelling history of the component, only the resulting body or bodies. This makes the STEP model slightly less useful than a native format but if a file must be transferred between two systems this is usually the preferred format.
Other notable formats include IGES and JT
Model Based Definition
A model based definition is a 3D model that includes all manufacturing information required to completely define the product. This includes datum features, dimensions, geometric tolerances, limits and fits. PMI allows these elements of a definition, usually contained on the drawing, to be placed directly on the model in 3D space. This definition can be shared as a full 3D model in STEP format or through a 3D PDF. Inclusion of this information enriches the model enabling CAM software to infer more than it could from a plain 3D model with some systems being able to automate certain elements of machining or inspection programming based on recognised features.
Computer Aided Manufacturing enables programming of machine tools offline from a model or other source data. In a typical CAM system, a 3D model is used to drive toolpaths. The programmer must define the tooling they want to use, select a strategy for each feature, use the appropriate tools in the CAM software to generate the required toolpath and define all cut parameters. As with CAD systems these can be complex and require time for the programmer to learn to use them effectively.
CAM software will usually provide some visualisation of the intended toolpath but before the program can be run on the machine the path must be output in the correct language and format for the specific CNC machine being used. The CAM system may not have the full kinematic information for the machine and is only able to provide a path of coordinates with tool orientations relative to a known coordinate system. The program is output through a Post Processor that calculates the resulting locations of each axis of the machine at each point in the path to output the required CNC code. This calculation and the required formatting of CNC programs is complex, and the output should be checked before running on the machine.
With accurate models it is possible to simulate CNC code offline before it is run. Some CAM packages may do this natively, processing and interpreting the output CNC code during simulation but external verification packages are more commonly used. These programs act as a virtual machine tool with models of tools, fixtures, parts and stock models loaded as they would to a real machine tool. The program can then be run and any collisions, gouges or other defects detected.