Optimizing Tolerance Allocation Based on Manufacturing Cost and Quality Loss