A Feature-Based Tolerancing Model for Functional Analysis in Assemblies of Rigid Parts