Skip to content
ispyisail edited this page Oct 2, 2026 · 3 revisions

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_, 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 Liste ist fest verdrahtet, und acht Felder fehlen darin

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.


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 plant den Anfang von %plantcode und ließe code übrig.
  • Nur die geschweifte Form %{name} lässt sich auffinden: Die Liste der verwendeten Variablen im Vorlageneditor entsteht durch Suche nach %{…}. Ein nacktes %name lö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:

  1. %F, %f, %id, %total, %M, %LM
  2. %c, %l, %prefix (Elemente) bzw. %wf, %wv, %wc, %ws (Leiter)
  3. Schriftfeldfelder, dann Projekteigenschaften, in beiden Formen %{name} und %name
  4. Sequenzen

Zwei Folgen daraus:

  • %F funktioniert, weil es zuerst expandiert wird. Es fügt das Foliofeld ein, das selbst %id und %total enthalten 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_3 oder %{category} 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

Home

🌐 Languages — English · Français · Deutsch

Downloads

Windows without admin rights — the portable archive, no installer

Quick Start Guide

User Manual

FAQ

Tips & Tricks

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

File formats
Elements XML
Project XML
Development

Building from Source

Contributing Code

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

Development Roadmap

Vision — proposal, under discussion

Developer Tools

About

Features

History

Community

License

Contributing to this Wiki

Clone this wiki locally