Combining physical constraints with geometric constraint-based modeling for virtual assembly