Schriftfeldvorlagen
Das Schriftfeld ist das umrahmte Feld mit den Zeichnungsangaben in der Ecke
eines Folios. Sein Aufbau steckt nicht fest im Programm — er ist eine
Vorlage, eine .titleblock-Datei, die Sie ändern oder selbst schreiben
können.
QElectroTech liefert zehn Vorlagen mit und bringt einen eigenen Editor dafür mit.
Quellen: sources/titleblocktemplate.cpp, sources/titleblockcell.h und
sources/titleblock/ für den Editor.
1. Eine Vorlage ist ein Raster
Eine Vorlage ist ein Raster aus Zellen. Es gibt drei Zelltypen:
| Typ | Zeigt |
|---|---|
| Feld | eine Beschriftung und einen Wert, beide dürfen Variablen enthalten |
| Logo | ein in der Vorlagendatei gespeichertes Bild |
| Leer | nichts — die Zelle hält den Platz frei |
Zellen können benachbarte Zeilen und Spalten überspannen; eine breite Titelzelle oben über einem Stapel kleiner Zellen ist nichts anderes als das.
Spaltenbreiten haben drei Naturen
Das ist der Teil des Formats, den man verstehen sollte, denn er lässt eine
Vorlage zu jedem Papierformat passen. Das Attribut cols des Rasters ist eine
Liste von Längen, jede mit ihrem Präfix:
| Geschrieben | Bedeutet |
|---|---|
120px; |
absolut — immer 120 Pixel |
t22%; |
22 % der gesamten verfügbaren Breite |
r100%; |
100 % des Rests, nachdem absolute und gesamtbezogene Spalten abgezogen sind |
cols="t22%;r100%;t22%;" — die mitgelieferte Vorgabe — heißt also: eine Spalte
mit 22 % der Breite, dann eine, die alles Übrige aufnimmt, dann wieder 22 %. Die
mittlere Spalte dehnt sich, die äußeren behalten ihre Proportion, unabhängig von
der Breite des Folios.
Zeilen sind stets absolut, als Pixelhöhen angegeben: rows="25;25;". Eine
relative Zeilenhöhe gibt es nicht.
2. Beschriftungen, Werte und Übersetzungen
Eine Feldzelle enthält zwei Texte, beide übersetzbar:
<field row="0" col="0" name="author" align="left" valign="center"
displaylabel="true" hadjust="true">
<value>
<translation lang="en">%author</translation>
</value>
<label>
<translation lang="en">Author</translation>
<translation lang="fr">Auteur</translation>
<translation lang="de">Autor</translation>
</label>
</field>
- Die Beschriftung ist die feste Aufschrift — Autor — und wird üblicherweise in alle von der Vorlage unterstützten Sprachen übersetzt.
- Der Wert ist das, was sich je Folio ändert, und enthält gewöhnlich eine
Variable. Meist genügt ein einziger Eintrag, da
%authorin jeder Sprache gleich ist. displaylabelentscheidet, ob die Aufschrift überhaupt gezeichnet wird. Eine große Titelzelle setzt es meist auffalse.namebezeichnet die Zelle innerhalb der Vorlage. Er wird nicht gezeichnet.hadjustverkleinert die Schrift, wenn der Text nicht passt, statt ihn überlaufen zu lassen.
3. Variablen
Schriftfeldzellen haben ihre eigene Ersetzung, und sie ist großzügiger als
überall sonst in QET: Jeder Schlüssel im Kontext des Folios wird ersetzt, in
beiden Formen. %{author} und %author wirken gleichermaßen.
Standardschlüssel sind die Felder des Folios: title, author, filename,
folio, plant, locmach, indexrev, date, display_folio.
Projekteigenschaften und eigene Foliofelder werden ebenfalls ersetzt — so kann
eine Vorlage ein Feld tragen, von dem QET nichts weiß.
Zwei Einzelheiten:
- Schlüssel werden vom längsten zum kürzesten ersetzt, mit Absicht, damit
ein Schlüssel namens
plantnicht den Anfang von%plantcodeauffrisst. - Nur die geschweifte Form
%{name}lässt sich auffinden: Der Editor baut seine Liste der verwendeten Variablen durch Suche nach%{…}; ein nacktes%namewird zwar gezeichnet, kann aber von nichts aufgezählt werden. Bevorzugen Sie die geschweifte Form in Vorlagen.
Vollständige Referenz: Variablen und Formeln.
4. Logos
Logos werden in der Vorlagendatei gespeichert; eine Vorlage ist damit in sich geschlossen und lässt sich als eine Datei weitergeben.
Das Tag <logo> steht für zwei verschiedene Dinge — gut zu wissen, bevor man
eine Datei von Hand bearbeitet:
<logos>
<!-- das gespeicherte Bild selbst -->
<logo storage="xml" type="svg" name="qelectrotech.svg">
<svg …>…</svg>
</logo>
</logos>
<grid cols="…" rows="…">
<!-- eine Zelle, die eines anzeigt -->
<logo row="0" col="0" rowspan="1" name="" resource="qelectrotech.svg"/>
</grid>
In <logos> ist es das Bild, in <grid> eine Zelle, die ein Bild über
resource bezeichnet.
Zwei Speicherformen:
storage |
Für | Wie |
|---|---|---|
xml |
nur SVG | der <svg>-Baum wird direkt als XML eingebettet |
base64 |
jedes Rasterbild (und SVG, wenn man darauf besteht) | die Rohbytes, base64-kodiert, als Text |
Rasterbilder können nur als base64 gespeichert werden — QET erzwingt das,
gleich was man angibt. SVG kann beides, und xml ist die vernünftige Wahl: Die
Datei bleibt vergleichbar und das Logo skalierbar.
Fügt man ein Logo über den Editor hinzu, versucht QET zuerst SVG und fällt dann auf Raster zurück; die Speicherform wird also für Sie gewählt.
Bekannter Fehler. Ein
<logo>, dessen Attributstoragewederxmlnochbase64ist, verliert beim Speichern seine Bilddaten: Das Element wird mit seinen Attributen und ohne Inhalt geschrieben, stillschweigend. Der Code enthält den Rückfall, der das verhindern würde, benutzt ihn aber nicht. Nur von Hand geschriebene oder erzeugte Dateien können darauf laufen — keine der mitgelieferten Vorlagen. Bleiben Sie bei den beiden gültigen Werten.
5. Wo Vorlagen liegen
Vier Sammlungen, in QETs eigenem Vokabular:
| Sammlung | Ort | Für |
|---|---|---|
| Gemeinsam | titleblocks/ neben dem Programm |
die mit QET gelieferten Vorlagen |
| Firma | <Datenverzeichnis>/titleblocks-company/ |
gemeinsame Vorlagen einer Organisation |
| Benutzer | <Datenverzeichnis>/titleblocks/ |
Ihre eigenen |
| Eingebettet | in der .qet-Datei |
Vorlagen, die ein Projekt mitführt |
Die eingebettete zählt beim Weitergeben: Ein Projekt, das eine von Ihnen geschriebene Vorlage nutzt, führt eine Kopie mit und wird daher auch auf einem Rechner richtig dargestellt, der Ihre Vorlage nie gesehen hat.
6. Das Format auf einen Blick
<titleblocktemplate name="default">
<information></information>
<logos/>
<grid cols="t22%;r100%;t22%;" rows="25;25;">
<field row="0" col="0" name="author" align="left" valign="center"
displaylabel="true" hadjust="true">
<value><translation lang="en">%author</translation></value>
<label><translation lang="de">Autor</translation></label>
</field>
…
</grid>
</titleblocktemplate>
| Element | Enthält |
|---|---|
<information> |
freier Text über die Vorlage — Autor, Zweck |
<logos> |
die gespeicherten Bilder |
<grid> |
cols, rows und die Zellen |
<field> |
eine Feldzelle |
<logo> (im Raster) |
eine Logozelle |
<empty> |
eine leere Zelle |
Der Tagname einer Zelle ist ihr Typ: field, logo oder empty.
Gemeinsame Attribute sind row, col, rowspan, colspan und name. Ein
field ergänzt align (left/center/right), valign, displaylabel,
hadjust und fontsize — Letzteres nur, wenn eine Größe gesetzt wurde; ein
fehlendes fontsize heißt also „Vorgabe“. Eine logo-Zelle ergänzt
resource.
7. Praktische Hinweise
- Entwerfen Sie für die Dehnung, nicht für eine feste Breite. Geben Sie den
Zellen, die ihre Proportion halten müssen, eine
t…%-Breite und lassen Sie eine Spalter100%nehmen. Eine nur aus absoluten Breiten gebaute Vorlage sieht auf einem anderen Papierformat falsch aus. - Übersetzen Sie Beschriftungen, nicht Werte. Ein Wert ist meist eine Variable und in jeder Sprache gleich.
- Nutzen Sie
%{geschweifte}Variablen, damit der Editor sie auflisten kann. - Halten Sie eine Vorlage in sich geschlossen. Logos leben in der Datei; verlassen Sie sich nicht auf einen externen Pfad.
- Ein eigenes Foliofeld genügt für eine zusätzliche Zeile. Sie müssen QET
nicht ändern, um projektspezifische Angaben zu zeigen: Fügen Sie das Feld dem
Folio hinzu und verweisen Sie mit
%{meinfeld}darauf.
Siehe auch: Variablen und Formeln · Automatische Nummerierung · 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
