A case-based approach to the design of mechanical linkages