Files
solvecraft/docs/hole-presets.md
T
amolinari-autotex 1d02a5f2d4 Personal Hole parameter presets (#4480)
* feat: add personal Hole parameter presets

* feat(hole): prompt for preset names and recall changed selections

Ask for a name only on Save new or Rename in the kit confirmation. Keep Enter and Escape inside the prompt, preserve cancelled drafts, recall only changed selections, and retain independent recessed-hole bottom choices.

* feat(hole): preserve thread direction and partial depth in presets

Carry Left/Partial, explicit source units and Custom draft guards through personal preset capture and recall. Preserve legacy Right/Full/flat defaults and reject unknown options before changing the form. This production bridge depends on the handedness and graphical-depth changes inherited below it.

* docs(hole): describe supported preset thread options

* feat(ui): save modified hole presets in place

* fix(presets): retain reference placement and current locale contracts

* test(ui): borrow restored preset library during serialization

* test(presets): preserve modal focus with viewport focus restoration

* Use UI kit controls for hole preset selection
2026-10-26 22:00:56 +00:00

3.7 KiB

Personal Hole presets

Open Hole, expand Personal presets, and choose Save new. Enter a name in the confirmation prompt to store the current hole parameters in this application's personal profile. The presets are available in every project using that profile and survive restarting the application.

Selecting a different saved name immediately fills the open Hole form. The same selection is not reapplied every frame, so subsequent manual edits stay intact. A modified selected preset displays * before its name. The small Save icon to the right overwrites that same preset without a naming prompt; it is disabled when no preset is selected or the parameters are unchanged. Reverting the parameters clears the marker. A successful save clears the marker and disables Save again. Invalid active values or unrecognized future options report an error without replacing the stored preset. The marker is display-only and never becomes part of the preset name.

Each newly opened Hole starts with no selected preset. Recall does not create or edit a feature; the normal Hole OK/Apply operation validates and commits it. Cancel closes the Hole form without changing the model. Saving, renaming or deleting a personal preset is a preference change, independent of cancelling the Hole operation.

Presets include simple or drilled holes, counterbores, countersinks, tapping and the extent mode. Dimensions, thread designations, expression text and explicit units and the independent flat/angled bottom choice are retained without baking them into numeric results. Implicit length units are written explicitly when saving, including mm; unitless expressions keep their text inside an explicit unit expression. An expression using a named project parameter is evaluated in the destination project by the normal Hole operation; the preset does not copy that project's parameters.

Positions, faces, sketch identifiers, placement mode, target bodies, direction picks, history and connection data are excluded. To Object retains only the extent choice and requires a fresh destination selection after selecting the preset. Current placement picks remain in the open form.

Use Rename to open a name prompt prefilled with the selected name. Confirm to rename it; Cancel leaves the library and Hole form unchanged. Empty, overlong or duplicate names report an error in the prompt. Delete asks for a second confirmation and removes only the personal preset. Neither operation edits existing holes. Names are unique ignoring case. Save new with an existing name reports a conflict instead of replacing it silently; the adjacent Save icon explicitly updates the selected preset.

The library is limited to 64 entries, names to 96 UTF-8 bytes and each parameter expression to 512 UTF-8 bytes. Malformed saved rows are ignored without discarding other valid preferences. Preference-page resets do not erase the library. There is no design-file format change or dependency on a project, PDM service or connection.

Older drilled presets still imply an angled bottom; older recess presets default to flat.

Presets retain Right/Left thread direction and Full/Partial tapping independently of drill depth. Partial-depth expressions carry explicit source units, so recalling an mm preset in an inch design keeps the same physical depth. Older records without these options retain Right/Full defaults. A recalled preset clears an unfinished Custom thread draft; saving an invalid active Custom draft reports an error instead of saving its last valid value. Inactive diameter and full-depth fields do not block saving a valid tapped preset.

Unrecognized future thread options survive renaming and serialization. Recall rejects them before changing any Hole field, rather than silently discarding them.