System Bereitstellungsraum 500
Anhang E.1 · aus Grundzeichen zusammengesetzt · Hauptfassung
technisch: mit Abweichung · 17.08.2026 · rvfachlich: noch nicht geprüft
„Technisch: mit Abweichung" heißt: das Bild ist gegen die Vorlage nachgemessen worden und weicht an einer benannten Stelle von ihr ab. Die Abweichung ist geprüft und benannt, sie ist also kein offener Fehler, sondern eine bekannte Ausnahme. „Fachlich noch nicht geprüft" heißt: niemand aus der Fachwelt hat bestätigt, dass dies das richtige Zeichen für diese Bedeutung ist. Beide Angaben stehen an jedem Zeichen dieser Website; die rechte ist die, die man leicht übersieht. Was genau abweicht, steht darunter im Wortlaut der Prüfung zum Aufklappen.
Wortlaut der Abweichung aus dem technischen Review (Fachsprache)
Körperhülle per matchFingerprint gegen die Referenz gegated — für E.1.37 erstmals gegen den Gebäudekörper und nicht gegen die ring-Form der Taktischen Formation. Was das Gate dabei nicht sieht, bleibt unverändert: `pickShape` greift eine Form je Zeichnung, die verkürzten Füllflächen und die Balkenkopfzone von E.1.31 erreicht es gar nicht. Für die Beschriftungszonen prüft die Rasterprüfung in fonts.test.ts die tatsächliche Tinte aller 37 Kürzelsätze aus E-a, E-b und E-c gegen die deklarierte boxMm. Neu ist ein Kernschritt in compose.ts: die mittige Grundlinie rechnet seit E.1.37 gegen die Körperunterkante (maxY − 8) statt gegen die Oberkante (minY + 12) — an `formation` dieselbe Zahl, am Gebäudekörper 18,0 statt 15,0 mm. Kein Snapshot der 28 Bestandszeichen hat sich dadurch geändert. Dazu die globalen Mehrgrößen-, viewBox-, Metadaten- und Kontrast-Gates; ein neuer Kontrastvertrag entsteht nicht, weisser Text auf blau steht seit E-a als eigene 4,5:1-Anforderung im A11y-Gate. Die neun Referenzdateien sind einzeln vermessen; daraus stammen die drei Befunde und die eine deklarierte Abweichung. Befund an der Referenzdatei: Blaue Füllfläche der Referenz unten um 3,0 mm verkürzt (22,0 statt 25,0 mm), die gesamte Beschriftung um dieselben 3,0 mm nach oben verschoben (mittige Grundlinie 15,0, THW-Grundlinie 21,0 mm), Grundlinienabstand normgerecht 6,0 mm; der Rahmen steht normal. Das Muster von E.1.6/E.1.14 aus E-a, in allen vier Größen zahlengleich mit E.1.23 aus E-b — dessen Klasse steigt damit von einem auf zwei Fälle. Der Katalog baut das Zeichen wie die 22 normgerechten E.1-Dateien. Die Kopfzone ist von diesem Befund unberührt und eine eigene, schwerere Sache; sie trägt ein technisches Review mit status: deviation. Abweichung der Umsetzung: Der Katalog baut das Zeichen ohne Kopfzone, weil die Referenz an dieser Stelle keinen Stärkegrad trägt: zwei senkrechte Balken von je 1,500 × 4,000 mm bei cx 12,000 und 20,000 mm, y 1,000…5,000 mm (Pfad „M54.567,2.835h4.252v11.339h-4.252V2.835ZM31.89,14.173h4.252V2.835h-4.252v11.339Z"), Mitte also bei cy 3,000 mm. Alle vier Stärkegrade sind dagegen aus Kreisen r 1,500 mm gebaut und keiner aus einem Rechteck: trupp, gruppe und zug als Reihe auf den Plätzen 11/16/21 mm mit cyFromTopMm 1,5 (absolut cy 3,500 mm), staffel als senkrechter Stapel zweier Marken auf der Mittelachse (cyFromTopMm 1,5 und 5,5, vermessen an C.1.1/C.1.8 und in E.1 nicht vorkommend). Weder Form noch Lage stimmen überein, und StrengthId kennt nur diese vier. Grund ist hier ausdrücklich **nicht** die Fallzahl, anders als bei der Innenreihe von E.1.19/E.1.24: der Balkenpfad kommt in genau drei von 661 Referenzdateien vor — E.1.31, „[Referenzdatei]" und „[Referenzdatei]" — und dort byteweise identisch, die Geometrie ist also eine vermessene Konstante. Was fehlt, ist die Bedeutung: StrengthId ist ein Fachbegriff, und welchen Begriff diese Balken tragen, entscheidet die Datei nicht. Die Zahl der Balken trifft „5.5.2_Bereitschaft (Verband II)", das Maß nicht — dort 4,000 × 10,000 mm bei cx 7,000 und 25,000 mm, also Breite ×0,375, Höhe ×0,400 und Achsabstand ×0,444: keine gleichmäßige Verkleinerung. Eine ID zu vergeben hieße einen Begriff zu behaupten, den die Quelle nicht trägt — dieselbe Falschaussage, aus der E-b den capability.*-Weg verworfen hat. Die Platzierung wäre dabei nicht das Hindernis: die Balken sind mit den Kreiskopfzonen aller acht anderen bündig unten auf 5,000 mm und wachsen nur nach oben in freien Raum. Es fehlt eine Markenform (HeadMark ist {cxMm, cyFromTopMm, rMm} und kann kein Rechteck ausdrücken) und ein Begriff, keine Platzierungsmathematik.
Zeichen verwenden
So sieht es aus
Dasselbe Zeichen in sechs Größen — von 16 bis 256 Pixel breit —, jeweils auf hellem und auf dunklem Untergrund. Die drei Schaltflächen wechseln die Farbfassung: „Referenz“ ist die Palette der Vorlage, „Kontraststark hell“ hebt die Farben für schwierige Bildschirme an, „Druck monochrom“ ist die Fassung für Schwarz-Weiß-Druck und Kopien.
Bedeutung und Herkunft
Grundzeichen: Taktische Formation. Organisation: Technisches Hilfswerk. Kürzel: SysBR. Trägerkürzel: THW.
- Kennung
recipe.E.1.31- Quelle
- Anhang E.1 · BBK / BABZ: Taktische Zeichen im Bevölkerungsschutz — Empfehlungen zur Einführung einer FwDV 102/DV 102 · alle Quellen mit Prüfstand
- Zeichenprofil
bund— die Maßregeln, nach denen dieses Zeichen gezeichnet ist
Andere Bezeichnungen und frühere Kennungen führt der Katalog für dieses Zeichen noch nicht.
Für Entwicklerinnen und Entwickler
Ab hier stehen die Begriffe der Bibliothek: SymbolSpec, compose(), renderSvg(). Wer das Zeichen nur benutzen will, ist mit den Dateien oben fertig.
Bauanleitung als JSON
{
"kind": "formation",
"organization": "thw",
"labels": {
"center": "SysBR",
"bottomRight": "THW"
}
}Manifestschlüssel dieser Zeile: bbk-babz-2025:E.1.31 · dieselbe Spec im Baukasten öffnen
Codebeispiele
Vier Kanäle, ein Zeichen. Die Beispiele entstehen aus derselben Vorlage wie im Quickstart und im Baukasten (src/lib/code-samples.ts), damit sie nicht hinter den Paket-APIs zurückbleiben.
import { composeFromCatalog } from '@einsatzzeichen/catalog';import { renderSvg } from '@einsatzzeichen/core';import type { SymbolSpec } from '@einsatzzeichen/schema';
// Spezifikation für "recipe.E.1.31"const spec: SymbolSpec = { "kind": "formation", "organization": "thw", "labels": { "center": "SysBR", "bottomRight": "THW" }};
const drawing = composeFromCatalog(spec);const svg = renderSvg(drawing, { size: 64 });import { Einsatzzeichen } from '@einsatzzeichen/react';import { composeFromCatalog } from '@einsatzzeichen/catalog';import type { SymbolSpec } from '@einsatzzeichen/schema';
// Spezifikation für "recipe.E.1.31"const spec: SymbolSpec = { "kind": "formation", "organization": "thw", "labels": { "center": "SysBR", "bottomRight": "THW" }};
const drawing = composeFromCatalog(spec);
export function Symbol() { return <Einsatzzeichen drawing={drawing} size={64} />;}import { DEFAULT_TAG_NAME, defineEinsatzzeichenElement, type EinsatzzeichenElement,} from '@einsatzzeichen/web-component';import { composeFromCatalog } from '@einsatzzeichen/catalog';import type { SymbolSpec } from '@einsatzzeichen/schema';
// Spezifikation für "recipe.E.1.31"const spec: SymbolSpec = { "kind": "formation", "organization": "thw", "labels": { "center": "SysBR", "bottomRight": "THW" }};
// Registriert <einsatzzeichen-symbol> einmalig (ruft customElements.define auf).defineEinsatzzeichenElement();
const element = document.createElement(DEFAULT_TAG_NAME) as EinsatzzeichenElement;element.drawing = composeFromCatalog(spec);document.body.append(element);import maplibregl from 'maplibre-gl';import { addSymbolImage } from '@einsatzzeichen/maplibre';import { composeFromCatalog } from '@einsatzzeichen/catalog';import type { SymbolSpec } from '@einsatzzeichen/schema';
// Spezifikation für "recipe.E.1.31"const spec: SymbolSpec = { "kind": "formation", "organization": "thw", "labels": { "center": "SysBR", "bottomRight": "THW" }};
const map = new maplibregl.Map({ container: 'map', style: 'https://example.org/style.json' });
map.on('load', () => { // addSymbolImage rastert die Zeichnung und ruft intern map.addImage(...) auf. addSymbolImage(map, "recipe.E.1.31", composeFromCatalog(spec), { size: 64 });});Zulässige Kombinationen
Diese Spec setzt 3 Felder. Darunter steht, welche Werte gesetzt sind und welche Regeln aus validateSpec() an diesen Feldern hängen — 46 an der Zahl.
| Feld | Wert | Regeln an diesem Feld |
|---|---|---|
Grundzeichenartkind | Taktische Formation formation | keine Regel allein an diesem Feld |
Organisationorganization | Technisches Hilfswerk thw |
|
Beschriftungenlabels | SysBR centerTHW bottomRight |
|
Die Zuordnung ist von Hand gepflegt und steht an der Erklärung jeder Regel (src/lib/rule-explanations.ts): eingetragen ist das Feld, das man ändern müsste, damit die Regel nicht mehr greift. validateSpec() selbst führt keine Feldzuordnung — deshalb bleibt diese Liste nicht die vollständige Prüfung. Regeln, die zwei Achsen gegeneinander stellen, erscheinen nur unter einer von beiden, und eine Regel ohne einzelnes Feld — wie der Streit um die Kopfzone — steht in keiner Zeile dieser Tabelle. Wer wissen will, ob eine geänderte Kombination trägt, ändert sie im Baukasten: dort läuft dieselbe Komposition wie im Katalog, und jede abgelehnte Kombination kommt mit ihrer Regel und deren Erklärung zurück.
Nachweise
Diese Testarten decken die Zeile dieses Zeichens in der Prüfliste ab:
- Körper-Fingerprint gegen die Referenzdatei (matchFingerprint)
body-fingerprint - SVG-Snapshot: die Ausgabe von renderSvg bleibt bytegleich
svg-snapshot
Gemessen und gerendert wird im Profil bund; die Profile und ihre Prüfstände stehen auf der Grundlage-Seite, der gesamte Prüfstand unter Stand der Prüfung.
Texte und Code dieser Website sind mit KI-Unterstützung entstanden und werden von Menschen geprüft; der fachliche Reviewstatus steht an jedem Zeichen.