CAD XML Syntax-Objekt VC_CADSimpleLine
Die einfache Linie (Gerade zwischen zwei Punkten) ist das häufigste Linienobjekt der CAD-Daten. Delphi-Klasse ist T2DSimpleLine (CAD\GLGeometrics.pas), gespeichert unter dem XML-Tag VC_CADSimpleLine. Die Klasse selbst hat keine eigenen XML-Elemente — sie erbt alles von den abstrakten Zwischenklassen T2DLine und T2DStartEndPunktLine, die kein eigenes Wurzeltag besitzen. Deren Elemente sind deshalb auf dieser Seite dokumentiert; die übrigen Linienseiten (VC_CADMeteredSimpleLine, VC_CADArcLine, Klotoiden) verweisen hierauf.
Strukturregel
<VC_CADSimpleLine> <VermCadID> … </VermCadID> (siehe VermCadID-Block; CADObjektArt=cadLinie) [Basiselemente] (siehe Basiselemente; Layer ist Pflicht) [<RichtungInvertiert>bool</RichtungInvertiert>] (T2DLine) [<VerbundIdentischerLinien>bool</VerbundIdentischerLinien>] (T2DLine) <Startpunkt GUID="guid"/> (T2DStartEndPunktLine — Pflicht) <Endpunkt GUID="guid"/> (T2DStartEndPunktLine — Pflicht) [<LaengeGemessen>zahl</LaengeGemessen>] [<VerlaengerungAmStartpunkt>zahl</VerlaengerungAmStartpunkt>] [<VerlaengerungAmEndpunkt>zahl</VerlaengerungAmEndpunkt>] </VC_CADSimpleLine>
Die Reihenfolge entspricht der Schreibkette T3DBaseObject → T2DLine → T2DStartEndPunktLine: die beiden T2DLine-Elemente stehen vor Startpunkt/Endpunkt. Geerbte Elemente: VermCadID-Block und Basiselemente; Zahlen-/GUID-Formate: Werteformate.
Elemente
Elemente der Zwischenklassen T2DLine und T2DStartEndPunktLine (gelten für alle davon abgeleiteten Linien):
| Element | Typ/Format | Pflicht | Default | Bedeutung |
|---|---|---|---|---|
RichtungInvertiert |
bool | nein | False | Linienrichtung invertiert (T2DLine) |
VerbundIdentischerLinien |
bool | nein | True | Darstellung im Verbund trotz identischer Linien; wird nur geschrieben, wenn der Wert False ist (T2DLine) |
Startpunkt |
GUID-Attribut-Element | ja | — | Referenz auf den Start-VC_CADPunkt |
Endpunkt |
GUID-Attribut-Element | ja | — | Referenz auf den End-VC_CADPunkt |
LaengeGemessen |
Float | nein | 0.0 | manuell gemessene Länge |
VerlaengerungAmStartpunkt |
Float | nein | 0.0 | optische Verlängerung über den Startpunkt hinaus |
VerlaengerungAmEndpunkt |
Float | nein | 0.0 | optische Verlängerung über den Endpunkt hinaus |
T2DSimpleLine selbst fügt keine weiteren Elemente hinzu — die Objektart ergibt sich allein aus dem Wurzeltag.
Referenzen
| Referenz | Ziel | Pflicht | Verhalten bei fehlendem Ziel |
|---|---|---|---|
Startpunkt |
VC_CADPunkt | ja | harte Referenz: fehlt die GUID oder ist das Ziel nach dem LastTry des Referenzen-Updates nicht auffindbar, wird die Linie mit Logeintrag „Objekt wird nicht eingelesen" zerstört |
Endpunkt |
VC_CADPunkt | ja | wie Startpunkt |
Beim Lesen landen die GUIDs zunächst in Merk-Feldern (FSPGUID/FEPGUID); die Auflösung zu Objektzeigern geschieht erst nach dem Einlesen ALLER Objekte im Referenzen-Update des Managers (Wiederholungsschleife mit LastTry, siehe Lesemechanik).
Minimalform
<VC_CADSimpleLine>
<VermCadID>
<GUID>{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}</GUID>
<ObjektArt>oaCAD</ObjektArt>
<CADObjektArt>cadLinie</CADObjektArt>
</VermCadID>
<Layer>-102</Layer>
<Startpunkt GUID="{XXXX…}" />
<Endpunkt GUID="{XXXX…}" />
</VC_CADSimpleLine>
Beide Punkt-GUIDs müssen auf existierende VC_CADPunkt-Objekte in derselben Datei zeigen — sonst wird die Linie nach dem LastTry zerstört.
Beispiele
Minimalfall (echtes Beispiel — reine Topologie)
<VC_CADSimpleLine>
<VermCadID>
<GUID>{FB786524-…}</GUID>
<ObjektArt>oaCAD</ObjektArt>
<CADObjektArt>cadLinie</CADObjektArt>
</VermCadID>
<Layer>-102</Layer>
<Startpunkt GUID="{5E840B97-…}" />
<Endpunkt GUID="{4B8E94CA-…}" />
</VC_CADSimpleLine>
Reiches Exemplar (echtes Beispiel — voller Linien-Darstellungsblock)
<VC_CADSimpleLine>
<VermCadID>
<GUID>{E7EF1789-…}</GUID>
<ObjektArt>oaCAD</ObjektArt>
<CADObjektArt>cadLinie</CADObjektArt>
</VermCadID>
<Farbe>2147483644</Farbe>
<Alpha>2147483644</Alpha>
<VCBerLayerID>-5704</VCBerLayerID>
<Layer>-5704</Layer>
<LayerErben>-1</LayerErben>
<Linienstaerke>2147483644</Linienstaerke>
<LinienendenFreistellen>2147483644</LinienendenFreistellen>
<Liniensymbol>2147483644</Liniensymbol>
<Linienmuster>2147483644</Linienmuster>
<LineCloseType>2147483644</LineCloseType>
<Startpunkt GUID="{7ADD6286-…}" />
<Endpunkt GUID="{99443D76-…}" />
</VC_CADSimpleLine>
Alle Stil-Elemente sind Basiselemente; 2147483644 = „vom Layer erben". In den Beispielprojekten kommt LineCloseType nur mit den Werten 1 oder 2147483644 vor, Linienmuster/Liniensymbol ausschließlich mit 2147483644.
Verfügbarkeit und Besonderheiten
- Verfügbar in allen Bundesland-Versionen (Factory-Eintrag ohne IFDEF).
- Belegt in allen drei Beispielprojekten: BW 5.050, Sachsen 53.743, Thüringen 9.069 Exemplare — das mit Abstand häufigste Linienobjekt.
- Keine Legacy-Aliase an dieser Klasse.
- Die Enden der Linie sind eigenständige
VC_CADPunkt-Objekte (meistPunktQualitaet=pqHelp) — eine Linie ohne ihre beiden Punkte ist nicht ladbar.
Quellen im Code
CAD\GLGeometrics.pas:1735, 1813, 1929— KlassendeklarationenT2DLine,T2DStartEndPunktLine,T2DSimpleLineCAD\GLGeometrics.pas:32670-32702—T2DLine.DataToXMLLite(RichtungInvertiert, VerbundIdentischerLinien)CAD\GLGeometrics.pas:34503-34564—T2DStartEndPunktLine.DataToXMLLite(Startpunkt, Endpunkt, LaengeGemessen, Verlängerungen)CAD\GLGeometrics.pas:34473-34500—InternalCreateComplexStructsFromXML(GUID-Attribute → FSPGUID/FEPGUID)CAD\GLGeometrics.pas:36651-36710—SetReferencesAndUpdate(„Objekt wird nicht eingelesen" bei fehlender SP/EP-Referenz)CAD\GLGeometrics.pas:96996-97034— Factory-Registrierung des WurzeltagsCAD\GLConsts.pas:513-583— Init-Werte (INIT_T2DLINE_*)