variables DE
ispyisail edited this page 2026-09-14 20:36:22 +12:00
Clone

Wiki Page Revisions

2 Commits

Author SHA1 Message Date
ispyisail 85b61c8e75 variables: recount the element information keys against master
The page said an element carries 57 information keys, that three are absent
from the braced-variable list by design, and that four more are absent with no
apparent reason. Measured against master 3cbb93075 that is now out of date.

QETInformation::elementInfoKeys() lists 61 keys; 59 braced variables are
recognised in AssignVariables::replaceVariable(). Eleven keys have no braced
variable: formula and xref, absent by design, plus nine more. Five of those
nine -- category, model, notes, voltage_rating and current_rating -- arrived
with the smart-device metadata fields and were never added to
replaceVariable(). The four machine_manufacturer_reference_auxiliary variants
the page already documented have been missing for longer.

exclude_from_bom is dropped from the "absent by design" list: it is not in
elementInfoKeys() at all, so it was never a candidate.

Applied to the English, French and German pages, which carried the same
figures. Each now records what the earlier numbers were and that they were
correct when written -- the drift is the argument for counting from the source
rather than maintaining the list by hand.
2026-09-14 20:36:22 +12:00
ispyisail 7ebdce88f4 Document the variable and formula language, all five dialects of it
There is no single %-variable language in QET: element labels, conductor
texts, the folio field, title block cells and cross-reference labels each
resolve a different set, and a variable that works in one is left as
literal text in another with no error. The folio field is the sharpest
case -- it understands %autonum, %id and %total and nothing else, so the
%f and %{...} people reach for there print verbatim on every folio.

Also records two things the code says that nothing else documents:

- %f and %F are not interchangeable. %f is the folio index; %F inserts
  the folio *field*, which defaults to "%id/%total" and so renders
  "3/12". It works only because %F is expanded before %id and %total in
  the same pass.
- AssignVariables::replaceVariable() is a hard-coded list, not a lookup
  over elementInfoKeys(). Three omissions are deliberate (formula, xref,
  exclude_from_bom) but machine_manufacturer_reference_auxiliary1..4 are
  simply missing: the fields exist and can be filled in, the plain
  machine_manufacturer_reference resolves, and the four auxiliary
  variants stay on the drawing as literal text.

EN/FR/DE.
2026-09-11 21:47:33 +12:00