A Constructive Approach to Solving Geometric Constraint Systems