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

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 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 %{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