Computer-aided design (CAD) software allows a user to construct and manipulate complex three-dimensional (3D) models.  A number of different modeling techniques can be used to create a 3D model.  One such technique is a solid modeling technique, which provides for topological 3D models where the 3D model is a collection of interconnected topological entities (e.g., vertices, edges, and faces).  The topological entities have corresponding supporting geometrical entities (e.g., points, trimmed curves, and trimmed surfaces).  The trimmed surfaces correspond to respective topological faces bounded by edges.  CAD systems may combine solid modeling and other modeling techniques, such as parametric modeling techniques.  Parametric modeling techniques can be used to define various parameters for different features and components of a model, and to define relationships between those features and components based on relationships between the various parameters. 
A design engineer is a typical user of a 3D CAD system.  The design engineer designs physical and aesthetic aspects of 3D models, and is skilled in 3D modeling techniques.  The design engineer creates parts and may assemble the parts into a subassembly or an assembly.  A subassembly may also consist of other subassemblies.  An assembly is designed using parts and subassemblies.  Parts and subassemblies are hereinafter collectively referred to as components. 
During the design process, an engineer may wish to analyze the motion of a 3D design of a model to evaluate the real-world requirements and performance of the product being designed.  Such an analysis may be executed by an engineering simulation process, for example, SolidWorks® Simulation Xpress and SolidWorks® Simulation, both of which use the CAD model data to set up and execute simulation studies and both of which are available from Dassault Systemes Solidworks Corporation of Waltham, Mass.
Analyzing the motion of a mechanism early in the design phase helps determine what constraints need to be included in the CAD model, and thereby, how the physical mechanism represented by the CAD model needs to be constrained.  During motion analysis, a 3D representation of a real-world assembly of parts is put in motion by attaching one or more motor components or motion elements (e.g., springs and dampers) to one or more of the 3D parts in the CAD model.  The design engineer then studies the effect of the motion input data (e.g., the part directly moved, the location of the motor on the part, and the type of motor) on part displacements, velocities, accelerations, joint forces, joint torques, and motor forces and torques required to cause the motion.  The motion analysis results are important for various design tasks, including path-planning, workspace determination, interference detection, proximity sensing, and motor-sizing.  These results can also be used as a basis for doing more advanced analyses such as multi-physics simulations and finite element analysis. 
To perform a proper motion analysis, the design engineer has to define all the motions that drive the mechanism in a desired way, which requires a significant amount of input from the design engineer.  For example, for motion analysis, current state-of-the-art CAD systems require a design engineer to specify as motion input data (1) the part that is directly moved by the motor, (2) the location on the part where the motor needs to be mounted, (3) the type of the motor, for example, linear, rotary, or path, (4) the axis of motion of the part, (5) the motion function that describes how the motion changes over time (e.g., ramp or sinusoidal functions) or other model parameters (e.g., switch off the motor when an edge of a plane or an end of a path is reached), and (6) the reference part relative to which the motion function is defined (e.g., to define a local coordinate system for the motion). 
Because of the large amount of information needed to define motion for a CAD model, applying the desired motion to the 3D model that represents a real-world mechanism becomes a multistep and burdensome task for the design engineer, especially for one inexperienced or not well-trained in motion analysis techniques.  Therefore, motion analysis is a task that is not often performed in an early design iteration loop, which may lead to a poor, inefficient, and less economical design.  Generally, the motion input data previously described must be defined in a step-by-step fashion so that the desired motion of the assembly can be obtained.  This multi-step and burdensome task deters design engineers from performing motion analysis. 
Time-saving advantages and enhancements to current state-of-the-art CAD systems may be achieved by providing more efficient means for performing motion analysis early in the design phase, resulting in an appropriately constrained 3D model and real-world mechanism represented by the 3D model.  Allowing the design engineer to drive the motion of an assembly with a minimal amount of input would enhance the capabilities of a 3D CAD system.