Overdefined Consistent And Inconsistent Constraint Systems

In practice, many sketches are overdefined, as they contain redundant constraints. In the simplest case, the constraints can be duplicated, for example, there can be two tangencies for one pair of circles. In more general cases, an extra constraint is completely satisfied by other constraints that define the same geometric condition. For example, if “perpendicularity” is set between two lines, “horizontality” is set for one line, and “verticality” is set for another line at the same time, then any of these three constraints can be considered as an extra one. C3D Solver excludes extra constraints from calculation. This overdefinition type is related to consistent systems that permit extra constraints if they do not contradict each other.

Overdefinition may also cause the constraint system become inconsistent, if the redundant constraint contradicts other constraints, i.e. it can’t be satisfied together with other constraints. To correct this situation, it is required to delete one of the constraints in the overdefined group. If an extra constraint causes the system to become inconsistent, then the GCE_Evaluate() method returns the GCE_RESULT_Overconstrained error code.

Blocked dimensions. It is recommended to avoid extra constraints even if it does not result in contradictions. In particular, extra constraints may block the controlling dimensions created to add constraints to the sketch. For instance, the left part of Fig. 1 shows a parametric rectangle defined by three driving dimensions (they are equal to 40, 40, and 60) and paired verticalities and horizontalities (V and H symbols). In this example, the constraint system is overdefined, as it contains two V constraints, two H constraints, and two dimensions equal to 40. The constraint chain is satisfied, but neither of two driving dimensions equal to 40 can be changed separately without adequate change of the other one. To release the dimension, it is required either to delete one of the dimensions equal to 40 or delete one of horizontality/verticality constraints. The sketch on the right shows the solution that deletes verticality of the upper segment. Then all dimensions can be changed. It should be noted that the dimension equal to 60 is not included into the chain of extra constraints. It means that every overdefinition covers a group of constraints, not always the whole sketch, but rather a part of it. Any dimension in overdefined group becomes blocked. Diagnostics of blocked dimensions is described in Item Redundancy Test.

image{width=”50%”}

Fig. 1