Table of Contents
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, B … Z, 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 |
Folio — freezeNewElement, 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_2auf 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:
tenmit dem Format0liefert trotz seines Namens ungefüllte Zahlen.
Siehe auch: Variablen und Formeln · Elemente verknüpfen · Klemmenleisten · 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
