Zum Inhalt springen

CAD XML Syntax-Objekt VC_CADSimpleLine

Aus VermCAD Hilfe Wiki
Version vom 20. Juli 2026, 13:50 Uhr von Hahn (Diskussion | Beiträge) (CAD-XML-Syntax-Dokumentation (automatischer Import))
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

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 (meist PunktQualitaet=pqHelp) — eine Linie ohne ihre beiden Punkte ist nicht ladbar.

Quellen im Code

  • CAD\GLGeometrics.pas:1735, 1813, 1929 — Klassendeklarationen T2DLine, T2DStartEndPunktLine, T2DSimpleLine
  • CAD\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 Wurzeltags
  • CAD\GLConsts.pas:513-583 — Init-Werte (INIT_T2DLINE_*)



[Nach oben]