CAD XML Syntax-Objekt VC_Hintergrundbild
Das Hintergrundbild bindet eine Rasterbild-Datei (z. B. gescannter Riss, Orthofoto) lagerichtig in die CAD-Szene ein. Delphi-Klasse ist T2DBackgroundPicture (CAD\GLGeometrics.pas), abgeleitet von T3DBaseObject. Achtung: Das XML-Tag heißt VC_Hintergrundbild — OHNE das sonst übliche „CAD" im Namen (wie auch VC_Plotrahmen).
Strukturregel
<VC_Hintergrundbild> <VermCadID> … </VermCadID> (siehe VermCadID-Block; CADObjektArt=cadBackgroundPicture) [Basiselemente] (siehe Basiselemente; Layer ist Pflicht) [<Verankert>bool</Verankert>] <HBild_Dateiname>text</HBild_Dateiname> (Dateiname/Pfad der Bilddatei) <HBild_Centre0>zahl</HBild_Centre0> (Bildmittelpunkt X) <HBild_Centre1>zahl</HBild_Centre1> (Bildmittelpunkt Y) <HBild_Centre2>zahl</HBild_Centre2> (Bildmittelpunkt Z) <HBild_ZLevel>ganzzahl</HBild_ZLevel> <HBild_Width>zahl</HBild_Width> <HBild_Height>zahl</HBild_Height> <HBild_RotAngle>zahl</HBild_RotAngle> <HBild_ScaleWidth>zahl</HBild_ScaleWidth> <HBild_ScaleHeight>zahl</HBild_ScaleHeight> <HBild_SpiegelHor>bool</HBild_SpiegelHor> <HBild_SpiegelVert>bool</HBild_SpiegelVert> <HBild_Ausblenden>bool</HBild_Ausblenden> <HBild_HasMWTRef>bool</HBild_HasMWTRef> </VC_Hintergrundbild>
Geerbte Elemente: VermCadID-Block und Basiselemente; Werteformate: Werteformate.
Schreib-Vorbedingung: Die eigenen HBild_*-Elemente werden beim Speichern NUR geschrieben, wenn die Textur geladen ist UND die Bilddatei auf der Platte existiert — sonst landen nur VermCadID und Basisdaten in der Datei (und das Objekt überlebt das nächste Laden nicht, siehe Referenzen).
Elemente
Nur die eigenen Elemente von T2DBackgroundPicture:
| Element | Typ/Format | Pflicht | Default | Bedeutung |
|---|---|---|---|---|
Verankert |
bool | nein | False | Bild ist verankert (nicht verschiebbar); wird beim Einpassen über World-File automatisch gesetzt |
HBild_Dateiname |
text | ja | — | Bilddatei. Geschrieben wird der projektrelative Pfad, wenn vorhanden (relativ zur Projektdatei), sonst der absolute; die Nutzereinstellung „Absolute Pfade" erzwingt absolute Pfade. Beim Lesen werden Pfade ohne Laufwerksangabe gegen den Projektdatei-Ordner aufgelöst |
HBild_Centre0 / HBild_Centre1 / HBild_Centre2 |
zahl (Float) | praktisch ja | 0 | Bildmittelpunkt X / Y / Z in Weltkoordinaten |
HBild_ZLevel |
ganzzahl | nein | 0 | Z-Ebene (Zeichenreihenfolge mehrerer Bilder) |
HBild_Width / HBild_Height |
zahl (Float) | praktisch ja | — | Bildgröße in Pixeln; historisch Integer — der Leser akzeptiert Float |
HBild_RotAngle |
zahl (Float) | nein | 0 | Drehwinkel des Bildes |
HBild_ScaleWidth / HBild_ScaleHeight |
zahl (Float) | praktisch ja | — | Skalierungsfaktor Breite / Höhe (Weltmaß pro Pixel-Anteil); bei unverzerrten Bildern identisch |
HBild_SpiegelHor / HBild_SpiegelVert |
bool | nein | False | horizontale / vertikale Spiegelung |
HBild_Ausblenden |
bool | nein | False | Bild ist ausgeblendet |
HBild_HasMWTRef |
bool | nein | False | Bild stammt aus einer Referenz in der MWT-Datei (MWT Syntax) |
Beim Lesen wird der Textknoten NAN bei allen Float-Elementen ignoriert (Wert bleibt Default).
Referenzen
Das Hintergrundbild hat keine GUID-Referenzen auf andere CAD-Objekte, aber eine harte Datei-Referenz: In SetReferencesAndUpdate (nach dem Laden) gilt
- leerer Dateiname → „Objekt wird nicht eingelesen" — das Bild wird verworfen;
- Laufwerk oder Datei nicht vorhanden → Logeintrag „Hintergrundbild … konnte nicht gefunden werden. Objekt wird nicht eingelesen" — das Bild wird zerstört (siehe Lesemechanik).
Ein gültiges VC_Hintergrundbild setzt also voraus, dass die Bilddatei beim Laden erreichbar ist.
Minimalform
<VC_Hintergrundbild>
<VermCadID>
<GUID>{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}</GUID>
<ObjektArt>oaCAD</ObjektArt>
<CADObjektArt>cadBackgroundPicture</CADObjektArt>
</VermCadID>
<Layer>0</Layer>
<HBild_Dateiname>bild.jpg</HBild_Dateiname>
<HBild_Centre0>545000.0</HBild_Centre0>
<HBild_Centre1>5721000.0</HBild_Centre1>
<HBild_Centre2>0</HBild_Centre2>
<HBild_Width>2000</HBild_Width>
<HBild_Height>1500</HBild_Height>
<HBild_ScaleWidth>0.1</HBild_ScaleWidth>
<HBild_ScaleHeight>0.1</HBild_ScaleHeight>
</VC_Hintergrundbild>
bild.jpg muss neben der Projektdatei existieren, sonst wird das Objekt beim Laden verworfen.
Beispiele
Beispiel (Sachsen, echt)
<VC_Hintergrundbild>
<VermCadID>
<GUID>{76E4D488-…}</GUID>
<ObjektArt>oaCAD</ObjektArt>
<CADObjektArt>cadBackgroundPicture</CADObjektArt>
</VermCadID>
<Layer>1018</Layer>
<Verankert>-1</Verankert>
<HBild_Dateiname>4267USR3-3.jpg</HBild_Dateiname>
<HBild_Centre0>3332591.62810421</HBild_Centre0>
<HBild_Centre1>5683956.65895749</HBild_Centre1>
<HBild_Centre2>0</HBild_Centre2>
<HBild_ZLevel>0</HBild_ZLevel>
<HBild_Width>21252</HBild_Width>
<HBild_Height>28818</HBild_Height>
<HBild_RotAngle>22.4573631286621</HBild_RotAngle>
<HBild_ScaleWidth>0.0861217868039655</HBild_ScaleWidth>
<HBild_ScaleHeight>0.0861217868039655</HBild_ScaleHeight>
<HBild_SpiegelHor>0</HBild_SpiegelHor>
<HBild_SpiegelVert>0</HBild_SpiegelVert>
<HBild_Ausblenden>0</HBild_Ausblenden>
<HBild_HasMWTRef>0</HBild_HasMWTRef>
</VC_Hintergrundbild>
Verfügbarkeit und Besonderheiten
- Verfügbar in allen Bundesland-Versionen (kein IFDEF); in den drei Beispielprojekten nur in Sachsen belegt (1 Exemplar).
- Legacy-Alias
HBild_Scale: einheitlicher Skalierungsfaktor alter Dateien; wird nicht mehr geschrieben (write=False), beim Lesen setzt er sowohlScaleWidthals auchScaleHeight. Folgen in einer alten Datei danach nochHBild_ScaleWidth/HBild_ScaleHeight, überschreiben diese den Wert. HBild_Width/HBild_Heightwurden früher als Integer geschrieben; aktueller Stand ist Float — der Leser verarbeitet beides.- Schreibreihenfolge im Manager: Bilder als eigene Gruppe nach den Texten, vor den Plotrahmen.
- Unterstützte Bildformate verarbeitet die FreeImage-Bibliothek (u. a. JPG, TIF, PNG, BMP); World-File-Einpassung (z. B. .jgw/.tfw) setzt
Verankertautomatisch.
Quellen im Code
CAD\GLGeometrics.pas:68197-68302—T2DBackgroundPicture.DataToXMLLite(Schreib-Vorbedingung Textur+Datei, alle HBild_*-Elemente)CAD\GLGeometrics.pas:68100-68195—InternalCreateFromXML(Lesen inkl. LegacyHBild_Scale, NAN-Behandlung)CAD\GLGeometrics.pas:68728-68755—SetReferencesAndUpdate(Dateiname Pflicht, Datei muss existieren)CAD\GLGeometrics.pas:69209-69237—SetFileName/GetSaveFileName(relative/absolute Pfadlogik, Einstellung „Absolute Pfade")VERMCAD\GlobalConsts.pas— Tag-Konstantenxn_Hintergrundbild=VC_Hintergrundbild,xn_HBild*(write_xn_HBildScale=False)