Variablen und Formeln
Mehrere Felder in QElectroTech nehmen eine Formel entgegen — Text mit
%-Variablen, die QET beim Zeichnen ersetzt. %f-%l%c auf einer
Elementbeschriftung wird zu 3-B7. %id/%total im Foliofeld wird zu 3/12.
Der Haken: Es gibt keine einheitliche Variablensprache. Fünf verschiedene Stellen nehmen Formeln entgegen, jede löst einen anderen Satz auf, und eine Variable, die an einer Stelle funktioniert, bleibt an einer anderen stillschweigend als wörtlicher Text stehen. Dafür ist diese Seite da.
Quellen: sources/autoNum/assignvariables.cpp (AssignVariables,
replaceVariable), sources/bordertitleblock.cpp,
sources/titleblocktemplate.cpp (interpreteVariables).
1. Wo Formeln zulässig sind
| Ort | Eingestellt in | Löst auf |
|---|---|---|
| Elementbeschriftung | Elementinformationen oder Projekteigenschaften → Elementnummerierung | Position, Folio, Sequenzen, %{…} |
| Leitertext | Leitereigenschaften → Formel, oder Leiternummerierung | Position, Folio, Sequenzen, Drahteigenschaften |
| Foliofeld | Folioeigenschaften → Folio | nur %autonum, %id, %total |
| Schriftfeldzellen | die .titleblock-Vorlage |
was im Schriftfeld-Kontext steht |
| Querverweis-Beschriftungen | Projekteigenschaften → Querverweise | wie Elementbeschriftungen |
2. Folio- und Positionsvariablen
Diese lösen auf Elementbeschriftungen, Leitertexten und Querverweis-Beschriftungen auf.
| Variable | Wird zu |
|---|---|
%f |
Index des Folios, ab 1 |
%id |
derselbe Folio-Index — %f und %id sind hier identisch |
%F |
das Folio-Feld, also das, was die Einstellung Folio ergibt |
%total |
Gesamtzahl der Folios im Projekt |
%M |
Anlage (plant) des Folios |
%LM |
Ort / Maschine (locmach) des Folios |
%l |
der Zeilenbuchstabe der Elementposition im Rahmen |
%c |
die Spaltennummer der Elementposition |
%prefix |
das Präfix des Elements |
%f und %F sind nicht austauschbar
%f ist der Folio-Index — eine bloße Zahl. %F fügt das Folio-Feld ein, das
selbst eine Formel ist. QETs Vorgabe für dieses Feld lautet %id/%total, also
auf Folio 3 von 12:
%f → 3
%F → 3/12
Beides liest sich in einer Beschriftung natürlich, weshalb der Unterschied
unbemerkt bleibt — bis jemand das Foliofeld ändert und alle
Elementbeschriftungen ihre Form mitändern. Wer die Zahl will, nimmt %f.
%c zählt je nach Einstellung ab 0 oder ab 1
Die Spaltennummer fällt um eins kleiner aus, wenn die Einstellung Spalten beginnen bei 0 aktiv ist. Dasselbe Projekt, von zwei Personen mit unterschiedlichen Einstellungen geöffnet, ergibt unterschiedliche Beschriftungen. Sollen Beschriftungen im Team stabil sein, einigen Sie sich zuerst darauf.
3. Leitervariablen
Nur in Leiterformeln:
| Variable | Wird zu |
|---|---|
%wf |
Funktion des Leiters |
%wv |
Spannung / Protokoll |
%wc |
Drahtfarbe |
%ws |
Drahtquerschnitt |
4. Sequenzvariablen
Die automatische Nummerierung stellt nummerierte Sequenzen bereit. Jede gibt es
projekt- und folioweise, und jede nimmt einen angehängten Index — _1 ist die
erste im Nummerierungsschema definierte Sequenz, _2 die zweite und so fort.
| Familie | Pro Projekt | Pro Folio |
|---|---|---|
| Einer | %sequ_1 |
%sequf_1 |
| Zehner | %seqt_1 |
%seqtf_1 |
| Hunderter | %seqh_1 |
%seqhf_1 |
| Alphabetisch | %seqa_1 |
— |
| Umlauf | %seqw_1 |
— |
Eine Sequenzvariable, deren Index im aktuellen Schema nicht existiert, bleibt
unverändert im Text stehen. Ein wörtliches %sequ_2 auf einem Folio heißt,
dass das Schema nur eine Sequenz definiert — nicht, dass die Nummerierung
fehlgeschlagen ist.
5. Elementinformations-Variablen — %{…}
Variablen in geschweiften Klammern greifen auf die Informationsfelder des Elements zu:
%{label} %{manufacturer_reference}
Gebräuchlich: %{label}, %{plant}, %{location}, %{function},
%{comment}, %{description}, %{designation}, %{manufacturer},
%{manufacturer_reference}, %{machine_manufacturer_reference},
%{supplier}, %{quantity}, %{unity}.
Ebenfalls verfügbar: %{auxiliary1} … %{auxiliary4} samt ihren Varianten
description_, designation_, manufacturer_, manufacturer_reference_,
supplier_, quantity_ und unity_; die SPS-Felder %{plc_type},
%{plc_address}, %{plc_function}, %{plc_comment}, %{plc_crossref},
%{plc_t1} … %{plc_t4}, %{plc_tc}; die Leiterfelder
%{conductor_color}, %{conductor_section}, %{tension_protocol}; und
%{void}, das sich zu nichts auflöst.
Die Liste ist fest verdrahtet, und vier Felder fehlen darin
Die %{…}-Ersetzung ist eine feste Liste in
AssignVariables::replaceVariable(), kein Nachschlagen über alle
Informationsfelder. QETInformation::elementInfoKeys() führt 61
Informationsschlüssel; 59 geschweifte Variablen werden erkannt, und beide
Mengen decken sich nicht vollständig.
Zwei Schlüssel fehlen absichtlich: formula (das ist die Formel) und xref.
Neun weitere haben überhaupt keine geschweifte Variable:
%{machine_manufacturer_reference_auxiliary1}
%{machine_manufacturer_reference_auxiliary2}
%{machine_manufacturer_reference_auxiliary3}
%{machine_manufacturer_reference_auxiliary4}
%{category} %{model} %{notes} %{voltage_rating} %{current_rating}
Sie können jedes dieser Felder an einem Element ausfüllen, und das einfache
%{machine_manufacturer_reference} löst normal auf — keine der neun steht aber
in der Ersetzungsliste, sie bleiben daher als wörtlicher Text auf der Zeichnung.
Nutzen Sie bis zur Behebung ein anderes Feld.
Die letzten fünf kamen mit den Smart-Device-Metadatenfeldern hinzu und wurden nie
in replaceVariable() eingetragen; die vier Zusatz-Varianten fehlen schon
länger.
Gemessen an master 3cbb93075. Frühere Fassungen dieser Seite nannten 57
Schlüssel, drei absichtlich fehlend und vier unerklärt — das stimmte damals, und
genau diese Abweichung ist der Grund, aus dem man im Quelltext nachzählen
sollte.
6. Variablen des Foliofelds
Das Foliofeld ist die Ausnahme auf dieser Seite: Es wird von einer anderen Funktion aufgelöst und kennt nur drei Variablen.
| Variable | Wird zu |
|---|---|
%id |
der Index dieses Folios |
%total |
die Anzahl der Folios |
%autonum |
der Wert der automatischen Folionummerierung |
Die Vorgabe ist %id/%total. %f, %l, %c, %M, %LM und %{…} tun
hier nichts — sie bleiben wörtlich im Feld stehen und werden auf jedem Folio
genau so gedruckt, wie sie eingegeben wurden. Das ist die häufigste
Variablen-Enttäuschung in QET.
7. Schriftfeld-Variablen
Zellen von Schriftfeldvorlagen nutzen einen eigenen Mechanismus: Jeder Schlüssel
im Kontext des Schriftfelds wird ersetzt, und zwar in beiden Formen —
%{author} und %author wirken gleichermaßen.
Die Standardschlüssel sind die Informationsfelder des Folios: title, author,
filename, folio, plant, locmach, indexrev, date, display_folio.
Projekteigenschaften und alle dem Folio hinzugefügten eigenen Felder werden
ebenfalls ersetzt.
Zwei nützliche Einzelheiten:
- Die Schlüssel werden vom längsten zum kürzesten ersetzt, mit Absicht.
Sonst fräße ein Schlüssel namens
plantden Anfang von%plantcodeund ließecodeübrig. - Nur die geschweifte Form
%{name}lässt sich auffinden: Die Liste der verwendeten Variablen im Vorlageneditor entsteht durch Suche nach%{…}. Ein nacktes%namelöst zwar auf, kann aber von nichts aufgezählt werden — in Vorlagen daher die geschweifte Form bevorzugen.
8. Ein Durchlauf, in fester Reihenfolge
Formeln werden nicht rekursiv ausgewertet. QET führt eine Folge gewöhnlicher Textersetzungen aus, in fester Reihenfolge:
%F,%f,%id,%total,%M,%LM%c,%l,%prefix(Elemente) bzw.%wf,%wv,%wc,%ws(Leiter)- Schriftfeldfelder, dann Projekteigenschaften, in beiden Formen
%{name}und%name - Sequenzen
Zwei Folgen daraus:
%Ffunktioniert, weil es zuerst expandiert wird. Es fügt das Foliofeld ein, das selbst%idund%totalenthalten kann — und die werden im selben Schritt unmittelbar danach ersetzt. Alles, was das Foliofeld enthält und was Schritt 1 nicht kennt, überlebt als wörtlicher Text bis auf die Zeichnung.- Eine unbekannte Variable ist nie ein Fehler. Sie wird schlicht nicht
ersetzt. Eine Beschriftung, die
%seqh_3oder%{machine_manufacturer_reference_auxiliary1}zeigt, ist QETs Art zu sagen, dass diese Variable hier nicht auflösbar ist.
9. Kurzübersicht
| Ich möchte… | Nehmen | Wo es wirkt |
|---|---|---|
| die Folionummer | %f |
Element-/Leiter-/Querverweis-Beschriftungen |
| die Folionummer im Foliofeld | %id |
nur im Foliofeld |
Folionummer und Gesamtzahl, z. B. 3/12 |
%F |
Element-/Leiter-/Querverweis-Beschriftungen |
| die Rasterposition des Elements | %l%c |
Elementbeschriftungen |
| eine fortlaufende Nummer | %sequ_1 |
Element-/Leiterbeschriftungen |
| die Sachnummer eines Elements auf der Zeichnung | %{manufacturer_reference} |
dynamische Texte, Beschriftungen |
| die Anlage im Schriftfeld | %{plant} oder %plant |
Schriftfeldvorlagen |
Siehe auch: Elemente verknüpfen · Die Projektdatenbank · Project XML
Getting Started
🌐 Languages — English · Français · Deutsch
Guides
Conductors — wire properties, what feeds which export, and cables
Wire & cable catalogue — cable types, IEC 60757 core colours, assigning a core to a conductor
Printing and exporting — paper, PDF, images, and what each path does differently
Linking elements — master, slave, terminal
PLC modules — I/O tables and linking a wire to a specific point
Using the element editor — drawing tools, saving, checks
Preferences reference — what each settings page does
Keyboard-only control — mouseless QET, and the one real gap
Mouse modifiers — what Shift, Ctrl and Alt change while you drag
Managing collections — folders, writability, building your own shortlist
Templates — reusable multi-element blocks, and why clicking one does nothing
Search & Replace — bulk property changes
Building a nomenclature query — the BOM/summary table builder
Linking wires across pages — folio reports
Variables & formulas — %f, %{label}, sequences
Auto-numbering — schemes, sequences, freezing
Terminal strips — strips, levels, bridges
Title block templates — the .titleblock format
Importing EPLAN parts (.edz) — EPLAN Data Portal
DXF import & export — two unrelated features, one format
The project database — the in-memory SQLite cache
Development
Automating QET — CLI, XML formats, external tools
CLI Reference — command line usage
JavaScript Scripting — --run, geometry editing, undo
Vision — proposal, under discussion
