PMI: Recompute behavior when geometry changes
- Dominant language
- C++
- Stars
- 33.6k
- Forks
- 6k
- Avg merge
- 3d 15h
- Merged PRs (30d)
- 196
Description
**User intent:** When the model was changed the recompute should not break PMI and should update nominal values automatically. Manually entered tolerances do not change. Leaders follow the geometry.
What happens when the model is edited and recomputed but the geometry references survive (TNP mitigated):
**Nominal values update automatically:** They are derived from geometry, not user input. If a pad goes from 30mm to 35mm, the dimension shows 35. No confirmation, no dialog. This is what CATIA, NX and SolidWorks all do and anything else would be unusable on a model with many dimensions.
**Tolerances stay as entered:** They are design intent. The +0.1/-0.05 stays +0.1/-0.05 regardless of the new nominl value. Same for geometric tolerance values, datum labels, modifiers, everything the user typed in manually.
**Fit designations stay but deviations get recalculated:** H7 stays H7, but the absolute deviations depend on the nominal size range per ISO 286-1. If the nominal crosses a range boundary (e.g. from 18mm to 35mm, which are in different ranges), the deviations change. The system recalculates silently. Optional: A small visual indicator on that dimension would be useful so the user notices the actual tolerance zone changed even though they didnt touch it.
**Leaders and attachment points follow the geometry:** If a face moves, the arrow tip moves with it. Text position stays relative to the reference point (or adjusts if the annotation plane moved).
**Annotation planes follow geometry if they were derived from it:** If the plane was aligned and attached to a face and that face moved, the plane follows. If it was placed manually or aligned to a coordinate plane, it stays.
**What should NOT update automatically:**
- Tolerance values (user intent and not derived)
- Modifier selections
- Datum letters and references
- Text overrides
**Optional: "changed since last edit" indicator:** After recompute, annotations where the nominal value actually changed could get a overlay icon in the tree (small refresh icon or dot). Not a blocker, just information. Clears when the user opens the annotation or acknowledges it. Not critical for first implementation but a nice to have.
**Validation note:** The validation command could optionally flag dimensions where the tolerance to nominal ratio changed drastically after recompute (eg. a 0,01mm tolerance on what was a 10mm feature but is now 200mm). The system cannot judge design intent, but it can point out things that look suspicious.
Contributor guide
Assessment
This issue has not been assessed yet.