Tolerancing is one of the most important tasks in product and manufacturing process design. The allocation of design tolerances between the components of a mechanical assembly and manufacturing tolerances in the intermediate machining steps of component fabrication can significantly affect a product's quality and its robustness. This paper presents a methodology to maximize a product's robustness by appropriately allocating assembly and machining tolerances. The robust tolerance design problem is formulated as a mixed nonlinear optimization model. A simulated annealing algorithm is employed to solve the model and an example is presented to illustrate the methodology