Knowledge-based approach to flexible part design