Clone
1
autonumbering DE
ispyisail edited this page 2026-09-11 22:00:29 +12:00

Automatische Nummerierung

QElectroTech kann Elemente, Leiter und Folios für Sie nummerieren. Es gibt drei voneinander unabhängige Nummerierungssysteme, dazu die Klemmennummerierung, die etwas ganz anderes ist und anders arbeitet.

System Nummeriert Eingestellt in
Element Elementbeschriftungen (K1, Q55) Projekteigenschaften → Elementnummerierung
Leiter Leitertexte (Drahtnummern) Projekteigenschaften → Leiternummerierung
Folio das %autonum des Foliofelds Projekteigenschaften → Folionummerierung
Klemme Klemmenleisten-Nummerierung eigener Dialog — siehe §8

Jedes Projekt kann mehrere benannte Schemata je System enthalten, und jedes Folio wählt, welches es benutzt. So kann ein Projekt die Leistungsverdrahtung anders nummerieren als die Steuerung.

Quellen: sources/autoNum/numerotationcontext.cpp, numerotationcontextcommands.cpp, assignvariables.cpp sowie ui/ für die Editoren; sources/conductorautonumerotation.cpp für Leiter.


1. Ein Schema ist eine geordnete Liste von Teilen

Ein Nummerierungsschema (im Code ein Nummerierungskontext) ist eine Liste von Teilen, hintereinandergesetzt. K plus ein Einerzähler ergibt K1, K2, K3. Folionummer plus - plus Zähler ergibt 3-1, 3-2.

Jedes Teil hat einen Typ; es gibt sechzehn davon.

Zählerteile

Sie enthalten eine Zahl und zählen weiter. Sieben Typen:

Typ Auffüllung Anmerkungen
unit keine einfacher Zähler: 1, 2, 3
ten auf 2 Stellen 01, 02 … 10, 11
hundred auf 3 Stellen 001, 002 … 010 … 100
unitfolio keine wie unit, beginnt je Folio neu
tenfolio auf 2 Stellen wie ten, je Folio
hundredfolio auf 3 Stellen wie hundred, je Folio
wrap keine springt alle modulus Werte zurück auf 0

Die folio-Varianten sind nützlich, wenn die Nummerierung je Seite neu beginnen soll statt durch das ganze Projekt zu laufen.

Kontextteile

Diese beziehen ihren Wert aus dem Ort des Elements, nicht aus einem Zähler:

Typ Wird zu
idfolio der Folio-Index (%id)
folio das Foliofeld (%F)
plant die Anlage des Folios (%M)
locmach Ort / Maschine des Folios (%LM)
elementline der Zeilenbuchstabe des Elements (%l)
elementcolumn die Spaltennummer des Elements (%c)
elementprefix das Präfix des Elements

Textteile

Typ Wird zu
string fester Text, den Sie eingeben — das K in K1
alpha ein Buchstabe, der a, b … z, aa, ab … weiterzählt

alpha zählt wie ein Tabellen-Spaltenname: zur Basis 26, mit Übertrag von rechts nach links bei z, und mit einem neuen führenden Buchstaben, wenn die ganze Zeichenkette überläuft. Die Groß-/Kleinschreibung jeder Stelle bleibt erhalten: Ein Schema ab A läuft A, BZ, aA — der vorangestellte Buchstabe ist stets klein.


2. Was man einem Teil sagen kann

Neben seinem Typ trägt ein Zählerteil vier Einstellungen:

Einstellung Bedeutung
Wert der aktuelle Wert — den das nächste Nummerierte bekommt
Schrittweite normalerweise 1
Startwert worauf das Teil zurückgesetzt wird
Modulus nur für wrap: alle N Werte zurück auf 0
Format Nullen-Auffüllmaske im Tabellenstil: 00 auf zwei Stellen, 000 auf drei

Das Format hat Vorrang vor der natürlichen Auffüllung des Typs. ten füllt von sich aus auf zwei Stellen; mit dem Format 0000 sind es vier. Ein leeres Format behält die typeigene Breite — genau das tun auch alle Schemata, die vor Einführung dieses Feldes geschrieben wurden; alte Projekte bleiben also unberührt.


3. Vom Schema zur Beschriftung

Ein Schema erzeugt die Beschriftung nicht allein. Es liefert Sequenzen, und eine Formel bestimmt, wohin sie kommen.

Die Formel ist gewöhnlicher Beschriftungstext mit %sequ_1, %seqt_1, %seqhf_2 und Verwandten darin — die vollständige Liste steht unter Variablen und Formeln. Das Suffix _1, _2 wählt, welches Teil dieser Familie benutzt wird, in der Reihenfolge ihrer Definition.

Ein Schema mit einem string-Teil (K) und einem unit-Teil ergibt mit der Formel K%sequ_1 also K1, K2, K3. Ändert man die Formel zu %f-K%sequ_1, entsteht auf Folio 3 3-K1, ohne das Schema anzurühren.

Eine Sequenzvariable, deren Index das Schema nicht definiert, bleibt wörtlich im Text stehen. Eine Beschriftung %sequ_2 heißt, dass das Schema nur ein Einerteil hat — keine fehlgeschlagene Nummerierung, und nichts warnt Sie.


4. Wann nummeriert wird

Elemente werden beim Platzieren nummeriert, sofern für das Folio ein Elementschema gewählt und neue Elemente nicht eingefroren sind.

Leiter sind verwickelter, denn eine Drahtnummer gehört zu einem Potential — allen elektrisch verbundenen Leitern — und nicht zu einem einzelnen Leiter:

  • Zieht man einen Leiter an ein bestehendes Potential, übernimmt er dessen Nummer, statt eine neue zu ziehen.
  • Widersprechen sich die Leiter dieses Potentials — unterschiedliche Texte oder Formeln —, kann QET nicht raten und öffnet die Potentialauswahl, damit Sie entscheiden.
  • Nur ein wirklich neues Potential zieht eine frische Nummer aus dem Schema.

Deshalb bewirkt das Hinzufügen eines Drahtes mal gar nichts und stellt mal eine Frage.

Verwandte Feinheit: In einer Leiterformel lösen Foliovariablen je Leiter auf, nicht je Potential. Ein Potential über zwei Folios bekommt also keine einheitliche Folionummer — jeder Leiter löst gegen das Folio auf, auf dem er gezeichnet ist.


5. Einfrieren

Einfrieren verhindert, dass sich Nummern mit der Zeichnung ändern. Es gibt drei Ebenen, die leicht zu verwechseln sind:

Geltung Wirkung
Projekt — neue Elemente / Leiter einfrieren neu platzierte Objekte entstehen mit eingefrorener Beschriftung
FoliofreezeNewElement, freezeNewConductor dasselbe, je Folio
Objekt — Beschriftung einfrieren dieses eine Element oder dieser Leiter behält seinen Text

Eine eingefrorene Beschriftung wird nicht mehr neu berechnet. Fügt man davor ein Folio ein, bleibt ein eingefrorenes 3-K1 bei 3-K1, während die nicht eingefrorenen Nachbarn zu 4-K1 werden. Genau dafür ist die Funktion da — eine herausgegebene Zeichnung soll sich nicht selbst umnummerieren — aber ebendarum kann ein Projekt Nummern enthalten, die ihrer eigenen Formel widersprechen.


6. Automatische Folionummerierung

Die Folionummerierung fällt aus dem Rahmen: Sie speist eine einzige Variable, %autonum, die nur im Foliofeld Bedeutung hat. Setzen Sie das Foliofeld auf %autonum (statt auf die Vorgabe %id/%total), dann entscheidet das Folioschema, was erscheint.

Zu beachten: %f, %l, %c und %{…} bewirken im Foliofeld nichts — es kennt nur %autonum, %id und %total. Siehe Variablen und Formeln §6.


7. Speicherung

Die Schemata liegen in den Vorgabeeigenschaften des Projekts:

<conductors_autonums current_autonum="steuerung" freeze_new_conductors="false"
                     auto_break_conductors="false">
    <conductor_autonum title="steuerung" formula="%sequ_1">
        <part type="unit" value="1" increase="1"/>
    </conductor_autonum>
</conductors_autonums>
<folio_autonums>
    <folio_autonum title="seiten"> ... </folio_autonum>
</folio_autonums>
<element_autonums current_autonum="standard" freeze_new_elements="false">
    <element_autonum title="standard" formula="%sequ_1"> ... </element_autonum>
</element_autonums>

Jedes <part> trägt type, value und increase. Drei weitere Attribute werden nur geschrieben, wenn sie zutreffen: initialvalue für die drei …folio-Zählertypen, modulus für wrap, und format nur dann, wenn tatsächlich eine Auffüllmaske gesetzt wurde. Ein fehlendes Attribut bedeutet also „nicht anwendbar“ oder „Vorgabe“, nicht „null“.

current_autonum nennt das benutzte Schema. Ein Schema mit leerem Titel oder leerer Formel wird gar nicht geschrieben — ein halb eingerichtetes Schema verschwindet daher beim Speichern stillschweigend.

Je Folio trägt <diagram> die Attribute freezeNewElement und freezeNewConductor.


8. Die Klemmennummerierung ist eine andere Funktion

Die Klemmen einer Klemmenleiste zu nummerieren gehört nicht zu diesem System. Sie hat einen eigenen Dialog und beachtet einen Schalter je Element: Ein Element, dessen Informationen auto_num_locked = "true" tragen, wird übersprungen statt umnummeriert.

Dieser Schalter wird mit der exakten Zeichenkette "true" verglichen — siehe Elemente verknüpfen §6. Die Klemmenleisten selbst behandelt Klemmenleisten.


9. Was überrascht

  • Eine undefinierte Sequenzvariable druckt sich selbst. %sequ_2 auf einer Zeichnung heißt, das Schema definiert ein Einerteil, nicht zwei.
  • Ein Schema ohne Titel oder ohne Formel wird beim Speichern verworfen. Beim erneuten Öffnen ist es weg, ohne Meldung.
  • Einfrieren wird je Objekt gemerkt, ein Projekt kann also absichtlich Beschriftungen enthalten, die nicht mehr zu ihrer Formel passen.
  • Ein neuer Leiter bekommt meist keine neue Nummer — er erbt die des Potentials. Wer eine frische erwartet hat, prüfe, ob der Draht elektrisch mit etwas bereits Nummeriertem verbunden ist.
  • Das Format schlägt die Typ-Auffüllung: ten mit dem Format 0 liefert trotz seines Namens ungefüllte Zahlen.

Siehe auch: Variablen und Formeln · Elemente verknüpfen · Klemmenleisten · Project XML