One of the first things new XyzPilot users notice is that many operators require a direction selector — XLarge, XSmall, YLarge, or YSmall. This is not an arbitrary design choice. It is the mathematically correct response to a fundamental property of geometry.

Why Two Solutions Exist

Many geometry operations have two valid solutions. A line and a circle can intersect at two points. A parallel line can be on either side of the reference line. A tangent line from a point to a circle can go to either side of the circle.

Both solutions are mathematically correct. Both satisfy all the geometric constraints. But they produce different geometry — and in CNC machining, different geometry means different machined components.

The Wrong Response: Guessing

A system that guesses which solution the user wants is dangerous. The guess may be correct most of the time. But when it is wrong, the result is silent wrong geometry — geometry that looks plausible but is incorrect.

In CNC machining, silent wrong geometry produces scrapped components. The programmer does not know the geometry is wrong until the component comes off the machine.

The Correct Response: Explicit Selection

The correct response to geometric ambiguity is to require an explicit selection. The user must specify which solution they want. This choice is recorded permanently as part of the geometry definition.

XyzPilot uses four direction selectors:

SelectorPicksUse When
XLargeSolution with largest X coordinateYou want the right-side solution
XSmallSolution with smallest X coordinateYou want the left-side solution
YLargeSolution with largest Y coordinateYou want the upper solution
YSmallSolution with smallest Y coordinateYou want the lower solution

The Rule: Use the Axis Where Solutions Differ

The key rule for choosing the correct selector: use the selector on the axis where the two solutions differ.

  • Horizontal line intersects circle → both intersections at same Y → use XLarge/XSmall
  • Vertical line intersects circle → both intersections at same X → use YLarge/YSmall
  • Angled line intersects circle → both X and Y differ → use the axis with more separation

"The direction selector is not a limitation of XyzPilot — it is a feature. It forces the programmer to make an explicit, informed choice about which geometric solution they intend."

Additional Selectors

Beyond XLarge/XSmall/YLarge/YSmall, XyzPilot uses additional selectors for specific operations:

  • OUT / IN — external or internal tangency for circle-to-circle operations
  • CW / CCW — clockwise or counter-clockwise arc direction
  • Start / End — which endpoint of a line or arc to move or reference
  • Left / Right — direction a perpendicular segment extends from a point

The Permanence of the Selection

Once a direction selector is specified, it is recorded permanently as part of the geometry definition. The selection cannot change silently between sessions, software versions, or machines.

This is what makes XyzPilot deterministic. The same inputs — including the same selector — always produce the same outputs. The geometry is reproducible.