CAD XML Syntax-Objekt VC_CADBoeschung
Die Böschung stellt eine Böschungsschraffur zwischen zwei Kantenobjekten (Oberkante und Unterkante) dar. Delphi-Klasse ist T2DBoeschung (CAD\GLGeometrics.pas), abgeleitet direkt von T3DBaseObject, XML-Tag VC_CADBoeschung. Nicht verwechseln mit dem BoeschungsInfos-Container an Flächen (VC_CADFlaeche) — das ist eine andere, flächengebundene Böschungs-Variante.
Strukturregel
<VC_CADBoeschung> <VermCadID> … </VermCadID> (siehe VermCadID-Block; CADObjektArt=cadBoeschung) [Basiselemente] (siehe Basiselemente; Layer ist Pflicht) <Oberkante GUID="guid"/> <Unterkante GUID="guid"/> [<NumBoxes>ganzzahl</NumBoxes>] </VC_CADBoeschung>
Geerbte Elemente: VermCadID-Block und Basiselemente; Werteformate: Werteformate.
Elemente
Nur die eigenen Elemente von T2DBoeschung:
| Element | Typ/Format | Pflicht | Default | Bedeutung |
|---|---|---|---|---|
Oberkante |
GUID-Attribut-Element | ja | — | Referenz auf das Oberkanten-Objekt |
Unterkante |
GUID-Attribut-Element | ja | — | Referenz auf das Unterkanten-Objekt |
NumBoxes |
ganzzahl | nein | 0 (INIT_T2DBOESCHUNG_FNUMBOXES, nicht geschrieben) |
Anzahl der Schraffur-Boxen (Unterteilungen der Böschungsschraffur); 0 = automatisch |
Der Schraffur-Stil der Böschung kommt aus dem geerbten Basiselement BoeschungsSchraffurStil (Integer-Config-ID einer Böschungsschraffur-Definition; Default 2147483644 = nicht gesetzt/erben) — siehe Basiselemente.
Referenzen
| Referenz | Ziel | Pflicht | Verhalten bei fehlendem Ziel |
|---|---|---|---|
Oberkante |
beliebiges T3DBaseObject mit Kanten-Geometrie — typischerweise eine Linie oder ein Linien-Kompo |
ja | siehe unten |
Unterkante |
wie Oberkante | ja | siehe unten |
Auflösungsverhalten von T2DBoeschung.SetReferencesAndUpdate (nach dem Laden aller Objekte):
- Fehlt eine der beiden GUIDs im XML → Logeintrag „hat nicht alle Verweis-GUIDs belegt. Objekt wird nicht eingelesen" — die Böschung wird verworfen.
- Ziel-GUID (noch) nicht verarbeitet → Wiedervorlage-Liste; bleibt ein Ziel bis zum „LastTry" unauffindbar, wird die Böschung als fehlerhaft zerstört (harte Referenzen, siehe Lesemechanik).
- Syntaktisch ungültige GUID → Böschung wird verworfen.
Nach der Auflösung trägt sich die Böschung bei beiden Kantenobjekten in deren ConnectedCADObjects ein; die Darstellung (Boxen, Schraffurlinien) wird komplett aus den Kanten-Geometrien neu berechnet und nicht gespeichert.
Minimalform
<VC_CADBoeschung>
<VermCadID>
<GUID>{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}</GUID>
<ObjektArt>oaCAD</ObjektArt>
<CADObjektArt>cadBoeschung</CADObjektArt>
</VermCadID>
<Layer>0</Layer>
<Oberkante GUID="{XXXX…}"/>
<Unterkante GUID="{XXXX…}"/>
</VC_CADBoeschung>
Beide GUIDs müssen auf existierende Objekte derselben Datei zeigen — sonst wird die Böschung beim Laden verworfen.
Beispiele
Beispiel (konstruiert — kein Bestandsbeleg)
Hinweis: In keinem der drei untersuchten Beispielprojekte (BW/Sachsen/THR) kommt ein VC_CADBoeschung-Objekt vor. Das folgende Beispiel ist nach den Code-Regeln konstruiert:
<VC_CADBoeschung>
<VermCadID>
<GUID>{A1B2C3D4-XXXX-XXXX-XXXX-XXXXXXXXXXXX}</GUID>
<ObjektArt>oaCAD</ObjektArt>
<CADObjektArt>cadBoeschung</CADObjektArt>
</VermCadID>
<Layer>346</Layer>
<BoeschungsSchraffurStil>3</BoeschungsSchraffurStil>
<Oberkante GUID="{B2C3D4E5-…}"/>
<Unterkante GUID="{C3D4E5F6-…}"/>
<NumBoxes>12</NumBoxes>
</VC_CADBoeschung>
Verfügbarkeit und Besonderheiten
- Verfügbar in allen Bundesland-Versionen (kein IFDEF); in den drei Beispielprojekten aber ohne Bestandsbeleg.
- Beim interaktiven Erzeugen (
NewBoeschung) übernimmt die Böschung Farbe und Alpha von Ober-/Unterkante; im XML stehen diese Werte wie üblich nur bei Abweichung vom Default. - Schreibreihenfolge im Manager: Böschungen sind die letzte Objektgruppe (nach Punkten, Linien, Flächen, Kompos, Texten, Bildern, Plotrahmen) — ihre Kantenobjekte stehen beim Lesen also bereits im GUID-Suchbaum.
- Renderreihenfolge (
TCADObjArt):cadBoeschungliegt zwischencadKompoundcadLinie. - Es werden nur die zwei Referenzen und
NumBoxespersistiert; sämtliche Boxen-/Schraffurkoordinaten sind Laufzeitdaten.
Quellen im Code
CAD\GLGeometrics.pas:3782-3860— KlassendeklarationT2DBoeschung(OK/UK alsT3DBaseObject,FNumBoxes)CAD\GLGeometrics.pas:67258-67313—DataToXMLLite(Oberkante/Unterkante als GUID-Attribut-Elemente, NumBoxes nur ≠ 0)CAD\GLGeometrics.pas:67174-67202—InternalCreateComplexStructsFromXML(Lesen der OK/UK-GUIDs)CAD\GLGeometrics.pas:67232-67255—InternalCreateFromXML(NumBoxes)CAD\GLGeometrics.pas:67803-67865—SetReferencesAndUpdate(beide GUIDs Pflicht, Fehlerverhalten)CAD\GLGeometrics.pas:66684-66738— Konstruktoren (Init-Werte, Farb-/Alpha-Übernahme)CAD\GLConsts.pas:513-583—INIT_T2DBOESCHUNG_FNUMBOXES = 0VERMCAD\GlobalConsts.pas— Tag-Konstantenxn_CADBoeschung=VC_CADBoeschung,xn_OK=Oberkante,xn_UK=Unterkante,xn_NumBoxes