Repository navigation
variables DE
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).
| 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 |
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 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.
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.
Nur in Leiterformeln:
| Variable | Wird zu |
|---|---|
%wf |
Funktion des Leiters |
%wv |
Spannung / Protokoll |
%wc |
Drahtfarbe |
%ws |
Drahtquerschnitt |
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.
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_,
machine_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 %{…}-Ersetzung ist eine feste Liste in
AssignVariables::replaceVariable(), kein Nachschlagen über alle
Informationsfelder. QETInformation::elementInfoKeys() führt 64
Informationsschlüssel; 63 geschweifte Variablen werden erkannt, und beide
Mengen decken sich nicht vollständig.
Zwei Schlüssel fehlen absichtlich: formula (das ist die Formel) und xref.
Acht weitere haben überhaupt keine geschweifte Variable:
%{category} %{model} %{notes} %{voltage_rating} %{current_rating}
%{width} %{height} %{depth}
Sie können jedes dieser Felder an einem Element ausfüllen, aber keine der acht steht in der Ersetzungsliste; sie bleiben daher als wörtlicher Text auf der Zeichnung. Nutzen Sie bis zur Behebung ein anderes Feld.
Die ersten fünf kamen mit den Smart-Device-Metadatenfeldern hinzu, width,
height und depth (die Gerätemaße in mm) mit den Element-Abmessungsfeldern;
keine davon wurde in replaceVariable() eingetragen.
Die vier Variablen %{machine_manufacturer_reference_auxiliary1} … 4
fehlten ebenfalls, bis
PR #1236
(gemergt am 2. Oktober 2026). In seither erstellten Builds lösen sie wie die
anderen auf; in älteren Builds bleiben sie als wörtlicher Text auf der
Zeichnung.
Gemessen an master b48525842. Frühere Fassungen dieser Seite nannten 57, dann
61 Schlüssel — jede Zahl stimmte damals, und genau diese Abweichung ist der
Grund, aus dem man im Quelltext nachzählen sollte.
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.
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.
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%{category}zeigt, ist QETs Art zu sagen, dass diese Variable hier nicht auflösbar ist.
| 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
Windows without admin rights — the portable archive, no installer
Guides
Conductors — wire properties, what feeds which export, cables, and hops where wires cross
Wires per terminal — limit the wires on a terminal, chain wiring instead of stars
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
Grid size and element size — why symbols aren't all the same scale, and scaling one without leaving the grid
Preferences reference — what each settings page does
Saving and loading settings — your whole setup in one file, to copy or keep
Keyboard-only control — mouseless QET, and what still needs a mouse
Mouse modifiers — what Shift, Ctrl and Alt change while you drag
3D mouse — SpaceMouse pan, zoom and buttons
Aligning items — snap symbols back to the grid, or line them up
Pictures on a sheet — labels, crop, transparency, what they cost in the file
Arcs and curved wires — the Arc tool, pulling an arc in or out, rounding a corner with a fillet, dashed arcs for lighting layouts
Grouping items — select, move and copy several items as one
Finding your place on a sheet — go to a cell like B13 or 4-B7, keep the headers in sight, show the cell limits, zoom and pan
Showing and hiding kinds of items — hide texts, wire numbers, shapes, pictures, tables or cross-references on every sheet
Drawing faster — place without dragging, the S shortcut bar, command search, gestures
Customising QElectroTech — keys, toolbar size and contents, the gesture ring (partly pending)
Managing collections — folders, writability, building your own shortlist
Templates — reusable multi-element blocks, placed by double-click or drag
Search & Replace — bulk property changes
Building a nomenclature query — the BOM/summary table builder
Linking wires across pages — sheet 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; command-line export and layers
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
MCP server — let an AI assistant read, verify and edit projects
Connecting an AI assistant — setup for Claude, Copilot, Gemini, Codex, Cursor, LM Studio
Script buttons — stored scripts with an icon, by hand or by an assistant
Live mode — an assistant working in the open project while you watch
Macro recorder — record a task by hand, for an assistant to script
Vision — proposal, under discussion
