Diecast: a knowledge-based approach to die casting design