RelCAD: a relational CAD system with contraint based geometric modelling