This article provides a detailed technical analysis of the seven documented failure modes of constraint-based CAD systems in CNC machining workflows. Each failure mode is described with its root cause, a real-world example, and the analytic solution that eliminates it.

Background: How Constraint Solvers Work

A constraint solver maintains a set of geometric entities and a set of constraints. When constraints are added or modified, the solver iterates from the current state to find a configuration that satisfies all constraints within a specified tolerance.

The critical dependency: the result depends on the starting state. Different starting states produce different results — even when all constraints are satisfied.

FM 1 — Solution Flip

Symptom: A tangent arc appears on the wrong side of the profile after a dimension change.

Root cause: The solver, starting from a slightly different state after the dimension change, converges to the other valid tangent solution.

Real example: A fillet arc between two lines flips from the inside corner to the outside corner when the adjacent dimension is modified.

Analytic solution: The direction selector (XLarge/XSmall/YLarge/YSmall) is permanently recorded. The solution cannot flip regardless of what other geometry changes.

FM 2 — Under-Constrained Drift

Symptom: A bolt-hole pattern rotates by an unpredictable amount when the file is opened on a different machine.

Root cause: The starting angle of the pattern is under-constrained — it has a free degree of freedom that the solver resolves differently on different machines.

Real example: A 6-hole flange pattern is specified as "6 holes equally spaced" without a starting angle. The solver places the first hole at a different angle on each machine.

Analytic solution: Explicit start angle required. Points/On,C,N,Atangle,0 — the starting angle is specified and recorded. No free degrees of freedom.

FM 3 — Constraint Conflict

Symptom: Adding a new dimension silently changes geometry that was previously correct.

Root cause: The new constraint conflicts with an existing constraint. The solver resolves the conflict by modifying geometry the programmer did not intend to change.

Real example: Adding a dimension to a slot length causes the slot width to change, because the solver resolves the over-constrained system by modifying the width.

Analytic solution: No constraint network. Each operation is independent. Adding a new line does not affect existing lines.

FM 4 — Solver State Dependency

Symptom: Two programmers get different geometry from the same file.

Root cause: The solver converges to different solutions depending on the history of operations on each machine.

Real example: Programmer A creates a tangent circle by adding constraints in one order. Programmer B opens the same file and gets a different tangent solution because the solver history is different.

Analytic solution: Geometry is fully determined by the operator sequence. Circle/Tanto,L,L,R,YLarge always produces the same circle regardless of history.

FM 5 — Tolerance Accumulation

Symptom: A complex profile is not mathematically closed — there is a small gap at the closure point.

Root cause: Each constraint is satisfied within tolerance. Over 40 entities, the accumulated tolerance errors leave a gap.

Real example: A 40-entity profile has a 0.001mm gap at the closure point. The toolpath has a corresponding step in the surface finish.

Analytic solution: All results are exact. Profile closure is exact by construction. No tolerance accumulation.

FM 6 — Regeneration Failure

Symptom: A sketch enters a dangling reference state after a 3D model change.

Root cause: The sketch references a face or edge of the 3D model that no longer exists after the model change.

Real example: A pocket sketch references the top face of a boss. When the boss height changes, the face reference becomes invalid and the sketch cannot regenerate.

Analytic solution: XyzPilot is a 2D system. No 3D face references exist. This failure mode is architecturally impossible.

FM 7 — Version Non-Determinism

Symptom: Geometry changes silently when the file is opened in a new software version.

Root cause: The solver algorithm has been updated in the new version. It now converges to a different solution from the same starting state.

Real example: A previously correct machining program produces wrong geometry after a software update, because the solver now resolves a tangency constraint differently.

Analytic solution: Fixed analytic formulas never change between versions. Point/Intof,L,C always uses the same formula. The result is always the same.

Summary

All seven failure modes share a common root cause: the solver produces different results from the same inputs, depending on the starting state, the solver version, or the constraint history. Analytic geometry eliminates all seven by eliminating the solver.