Reference (Driven) Dimensions

Understand driven dimensions — measurements that report a size without constraining it — and the conflict policy that is currently the only way to create one.

Every dimension you've added so far has been a driving dimension: type a value and the geometry moves to match it. A reference (or driven) dimension is the opposite — a number that simply reports a size other constraints already control, without adding a constraint of its own.

A driven dimension measures the geometry and displays the result, but contributes nothing to the solve. It never fights your other constraints and never uses up a degree of freedom.

Warning: currently hard to reach

On default settings you cannot create a driven dimension. The rendering and the data model are both implemented, but the only route to one is a conflict-resolution setting that defaults to off and has no user interface yet. This chapter documents what exists rather than a workflow you can follow today. See How one gets created below.


Prerequisites

Before you begin, ensure that:

  • You've completed Constraining a Sketch and are comfortable applying and reading ordinary (driving) dimensions.

Recognizing One

A driven dimension is drawn differently from a driving one:

  • Its label is wrapped in parentheses(25.00) rather than 25.00.
  • Label, leader lines and chip background all use a separate, muted colour from ordinary dimensions.

It is also not a constraint, and nothing that reports on constraints counts it. Driven dimensions are kept in a collection of their own, separate from the sketch's constraints, so one never moves the degree-of-freedom count and never appears among the rows Validate drawing lists.

No screenshot here, deliberately

Illustrating this would mean showing a driven dimension on screen, and as the warning above explains, one cannot be created on default settings. Rather than stage a picture of a state you can't reach, the description stands on its own: a parenthesised label in a muted colour, sitting beside ordinary dimensions that are neither.


How One Gets Created

There's exactly one path, and it runs through the numeric input's conflict policy.

When you type a value while drawing or dimensioning, and that value would over-constrain the sketch, Pingendum peels the offending dimension back off. What happens to it depends on the policy:

PolicyBehaviour
Reject (default)Silently removes the dimension you just typed. You never see a driven dimension.
PromptAsks what to do — one of the choices converts it to driven.
DrivenSilently converts it to a driven dimension, keeping the number visible.

Only your just-typed dimension is ever a candidate. Pre-existing constraints are never silently removed.

The Prompt dialog

With the policy set to Prompt, a Dimension Conflict dialog appears:

The typed value conflicts with an existing constraint and would over-constrain the sketch.

with three buttons:

  • Keep Existing / Cancel New (default) — stop peeling and change nothing. The sketch is left over-constrained for the validator to report.
  • Convert New to Driven — remove your typed dimension as a driving constraint but keep its value on screen as a driven one.
  • Remove Conflicting Constraint — remove your typed dimension outright.

Warning: the third button's label is misleading

Remove Conflicting Constraint reads as though it will delete the older constraint and keep what you just typed. It does the opposite: the dimension it removes is always your new one. Nothing pre-existing is ever touched by this dialog.

The practical difference between it and Keep Existing is only what the sketch is left in: Remove drops the new dimension so the sketch solves cleanly, while Keep Existing leaves it in place and over-constrained. Neither keeps your typed value as a driving dimension — no button in this dialog does.

If you want your new value to win, cancel out and delete the older constraint yourself first.

Changing the policy

The setting is stored under sketch/numericInput/conflictPolicy in Pingendum's saved settings, where 0 is Reject, 1 is Prompt and 2 is Driven.

There is no Preferences dialog in the current build, so this can only be changed by editing the stored settings directly. Until one exists, Reject is what nearly every user will have.


Watching a Driven Dimension Track the Geometry

The point of a driven dimension is that it follows the geometry rather than controlling it. Drag an endpoint of a line that carries one and the line moves freely — the dimension does not hold it.

Note: the label re-measures on release, not during the drag

While you're still dragging, the parenthesised label keeps showing its previous value — you can stretch a line to several times its length and watch (60.00) sit there unchanged. The moment you let go of the mouse, the label snaps to the true measurement.

So a stale-looking number mid-drag isn't a broken dimension. Release the mouse before reading it.

Recording this has the same problem as the label above: it needs a driven dimension on screen, which the current build won't let you make. The behaviour is described here so that it's documented when the route opens up.


How It Interacts With Other Tools

  • The solver. A driven dimension contributes no equation to the solve, and is never reported as redundant or conflicting.
  • The DOF indicator. Because it constrains nothing, it never lowers the DOF count. A sketch that reads 2 DOF still reads 2 DOF with a driven dimension on it.
  • Exports. Driven dimensions are annotation only. They don't affect the geometry a DXF export writes, and like all dimensions they aren't carried into the DXF itself.

Note

Only dimensional values can become driven — length, distance, radius, diameter and angle. Geometric relations like Horizontal or Coincident have no value to report.


Next Steps

You now know how to:

  • Tell a driving dimension apart from a driven one by its parentheses and colour
  • Understand why a driven dimension never changes the DOF count
  • Recognize the Dimension Conflict dialog and what each of its three buttons does
  • Predict when the label re-measures during a drag

The next chapter covers what to do when a sketch has too many constraints rather than too few — the state that this chapter's conflict policy exists to resolve.

Next: Diagnosing Sketches