ForHosting KIT · Engineering & construction

True position calculator

A hole measured 0.012 off in X and 0.008 off in Y has a true position of twice the hypotenuse of those two misses, the diametral value the drawing tolerance uses. You also see which way it wandered. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
X measured
25.012
Y measured
40.008
X nominal
25
Y nominal
40
You get
Delta x
0.012
Delta y
0.008
Radial deviation
0.0144222051
True position
0.0288444102

True position is the GD&T control that reports how far a hole's actual center sits from the basic location on the drawing. Inspectors, CNC programmers, and CMM reports express that offset as a diametral position error: twice the radial distance between the measured (x, y) pair and the nominal (x, y) pair. This true position calculator accepts those four coordinates in any shared linear unit, applies the closed-form identity two times the square root of delta-x squared plus delta-y squared, and returns the diametral error together with the signed deltas and the radial offset.

How diametral true position of a hole is computed

In ASME Y14.5 geometric dimensioning, a position tolerance on a hole describes a cylindrical zone, or in a single inspection plane a circular zone, whose axis is the basic true location given on the drawing. The diametral true position of an inspected hole is the diameter of the smallest such zone that still contains the actual center. The factor of two is not a style choice.

A radial miss of 0.05 millimetres is a 0.10 millimetre diametral position error, which is how the feature control frame writes the tolerance value. Units cancel inside the squares, so millimetres of all four coordinates yield millimetres of true position, and inches yield inches; mixing units would invent an error no drawing supports. A hole that lands exactly on the basic location produces zeros for every deviation field.

The calculator does not apply a bonus from MMC or LMC material modifiers, and it does not fold in a third z coordinate: those are different search intents.

Where a true position calculator earns its keep

CMM programmers and incoming-inspection desks already store measured XY and nominal XY for every hole on a first-article report; calling this contract turns those four numbers into the diametral true position the feature control frame expects, without re-deriving two times hypot in every spreadsheet. Classroom and apprenticeship worksheets ask for true position of a hole from measured and nominal coordinates; a deterministic oracle that rejects a non-finite coordinate keeps auto-graders from treating NaN as a clever zero.

Pin the rounded diametral value in tests: a 0.012 by 0.008 offset must stay twice the hypotenuse of those legs. If you later need an MMC bonus, a projected zone, a 3-D position that includes Z, or a pass-or-fail flag against a tolerance diameter, treat those as separate search intents rather than overloading this true-position page. The tool is a four-coordinate take-off, not a substitute for a CMM alignment, a datum reference frame, or a full GD&T stack-up.

Convert CMM XY into diametral true position

Paste measured and nominal hole coordinates from a CMM report and read the diametral position error the feature control frame expects, plus signed deltas.

Probe a bored hole on the machine

After a bore cycle, send probed XY against the program basic location and get twice the radial miss before the next tool runs.

Why is true position twice the radial distance, not the radius itself?

ASME Y14.5 writes a position tolerance as the diameter of the zone. A radial miss of 0.05 is a 0.10 diametral true position, matching the feature control frame.

What happens if a coordinate is missing or not a finite number?

True position is undefined when any coordinate is NaN, Infinity, empty, or non-numeric, and that failure is not billed.

Do the coordinates have to be in millimetres?

No. Any shared linear unit works because the hypotenuse is in that same unit. Millimetres and inches are both common; do not mix units across the four fields.

How do I calculate true position from measured and nominal coordinates?

Subtract the nominal X and Y from the measured ones, take the square root of the sum of both differences squared, and double it. A radial miss of 0.05 becomes a diametral true position of 0.10.

Does it add an MMC bonus or say pass or fail?

No. It returns the geometric position error from the four coordinates only. Material-condition bonus, projected zones, a third Z coordinate and the comparison with your tolerance diameter are separate steps you apply afterwards.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/build/true-position

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/build/true-position \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"x_measured":25.012,"y_measured":40.008,"x_nominal":25,"y_nominal":40}'
{
  "x_measured": 25.012,
  "y_measured": 40.008,
  "x_nominal": 25,
  "y_nominal": 40
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "build.true_position",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

max_abs1000000000000
HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

If any coordinate is missing or is not a finite number the task fails with invalid_input instead of emitting a silent NaN. Successful API calls use the published $0.002 per item, and failed validation is not billed.

How diametral true position of a hole is computed

Algebraically that diameter is twice the radial offset from the nominal point: true_position equals two times the square root of (x_measured minus x_nominal) squared plus (y_measured minus y_nominal) squared. This endpoint also returns the signed components delta_x and delta_y so a CMM overlay can show which way the hole wandered, and radial_deviation as the unsigned hypotenuse before doubling.

Input contract, units, and non-finite coordinates

All four measures must share one linear unit; mixing millimetres of measured data with inches of basic dimensions would invent a miss that no certificate should stamp. An upper bound keeps intermediate products finite: each field is at most 1e12 in magnitude. Send four required numeric fields. x_measured is the inspected X of the hole center; aliases measured_x, xm, x_meas, and x_actual are accepted so a CMM column named actual X does not need a rename. y_measured is the inspected Y; aliases measured_y, ym, y_meas, and y_actual are recognized. x_nominal is the basic true X from the drawing; aliases nominal_x, xn, x_nom, x_true, and x_basic cover prints that say basic or true rather than nominal. y_nominal is the matching basic Y, with aliases nominal_y, yn, y_nom, y_true, and y_basic. Strings that parse as finite numbers are treated the same as JSON numbers. The hard rule this landing exists to enforce is that every coordinate must be a finite number: missing fields, empty strings, non-numeric text, NaN, and Infinity fail with invalid_input naming the field, because a diametral position error built on a non-finite coordinate would be a silent NaN rather than a shop quantity. On success the body echoes the cleaned coordinates, publishes delta_x and delta_y as measured minus nominal, radial_deviation as the hypotenuse of those deltas, true_position as twice that radius, and formula as the string of the diametral identity. Failed validation does not consume prepaid balance. Successful API calls use the published base of $0.002 per item.

Grade GD&T true-position homework

Apprenticeship and LMS auto-graders check 2 × hypot(Δx, Δy) from four coordinates and treat a non-finite value as invalid_input rather than a silent NaN.

How do I calculate true position of a hole from measured and nominal XY?

Send finite numbers x_measured, y_measured, x_nominal, and y_nominal in the same linear unit. Diametral true position is 2 × √((x_measured − x_nominal)² + (y_measured − y_nominal)²).

What does the true position calculator cost?

The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.

Read the full KIT documentation →