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:
| Selector | Picks | Use When |
|---|---|---|
XLarge | Solution with largest X coordinate | You want the right-side solution |
XSmall | Solution with smallest X coordinate | You want the left-side solution |
YLarge | Solution with largest Y coordinate | You want the upper solution |
YSmall | Solution with smallest Y coordinate | You 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 operationsCW / CCW— clockwise or counter-clockwise arc directionStart / End— which endpoint of a line or arc to move or referenceLeft / 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.