Zum Inhalt springen

CAD XML Syntax-Objekt VC_CADBMPunkt

Aus VermCAD Hilfe Wiki

Der Bogenmittenpunkt markiert die Mitte eines Kreisbogens auf dem Bogen. Delphi-Klasse ist T3DBMPoint (CAD\GLGeometrics.pas), gespeichert unter dem XML-Tag VC_CADBMPunkt. Die Klasse erbt vollständig von T3DPoint — Struktur und Elemente sind identisch zu VC_CADPunkt, ergänzt um zwei eigene Bool-Felder.

Strukturregel

<VC_CADBMPunkt>
  <VermCadID> … </VermCadID>                     (siehe VermCadID-Block)
  [Basiselemente]                                (siehe Basiselemente; Layer ist Pflicht)
  … alle Elemente von VC_CADPunkt …              (PunktQualitaet, Position/gml:pos,
                                                  PointSymbolGUID, RissKoordinaten, …)
  [<ImmerAufBogen>bool</ImmerAufBogen>]          (nur geschrieben, wenn False!)
  [<IstEntstandenDurchBearbeitung>bool</IstEntstandenDurchBearbeitung>]
</VC_CADBMPunkt>

Die beiden eigenen Elemente stehen NACH allen geerbten Punkt-Elementen (das inherited-Schreiben läuft zuerst). CADObjektArt ist wie beim normalen Punkt cadPunkt — die Unterscheidung liegt allein im Wurzeltag.

Elemente

Nur die eigenen Elemente von T3DBMPoint (alles andere: VC_CADPunkt):

Element Typ/Format Pflicht Default Bedeutung
ImmerAufBogen bool nein True Bogenmittenpunkt bleibt beim Verschieben immer auf dem Bogen. Achtung: Da der Default True ist, wird das Element nur geschrieben, wenn der Wert False ist (<ImmerAufBogen>0</ImmerAufBogen>); ein fehlendes Element bedeutet True.
IstEntstandenDurchBearbeitung bool nein False Kennzeichen „durch Bearbeitung entstanden" (nur geschrieben, wenn True)

Referenzen

Der BM-Punkt selbst trägt keine Referenz auf seinen Bogen. Die Zuordnung läuft umgekehrt: Das Bogen-Objekt VC_CADArcLine referenziert den BM-Punkt über sein Element <BogenMittePoint GUID="{…}"/> (und meist zusätzlich BogenZwischenPunkt). Beim Erzeugen gehört zu jedem VC_CADBMPunkt also ein VC_CADArcLine, dessen BogenMittePoint-GUID auf ihn zeigt. Die weichen Symbol-Referenzen (PointSymbolGUID, WeitereSymbole) verhalten sich wie beim VC_CADPunkt.

Minimalform

<VC_CADBMPunkt>
  <VermCadID>
    <GUID>{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}</GUID>
    <ObjektArt>oaCAD</ObjektArt>
    <CADObjektArt>cadPunkt</CADObjektArt>
  </VermCadID>
  <Layer>-102</Layer>
  <PunktQualitaet>pqHelp</PunktQualitaet>
  <Position>
    <gml:Point>
      <gml:pos>545123.456 5721456.789</gml:pos>
    </gml:Point>
  </Position>
</VC_CADBMPunkt>

Beispiele

Beispiel (Baden-Württemberg) — typischer ALKIS-Bogenmittenpunkt

Alle 175 BM-Punkte der BW-Beispieldatei haben exakt diese Form (17 Zeilen, keine eigenen Elemente, da beide Defaults gelten):

<VC_CADBMPunkt>
  <VermCadID>
    <GUID>{26A2B7A6-…}</GUID>
    <ObjektArt>oaAlkisCADRepr</ObjektArt>
    <CADObjektArt>cadPunkt</CADObjektArt>
  </VermCadID>
  <Layer>-100890</Layer>
  <PunktQualitaet>pqHelp</PunktQualitaet>
  <Position>
    <gml:Point>
      <gml:pos>32518902.215 5308847.597</gml:pos>
    </gml:Point>
  </Position>
  <PointSymbolGUID GUID="{F4A81545-…}" />
  <RissKoordinaten />
  <RissPktNrTextType />
</VC_CADBMPunkt>

Der zugehörige Bogen referenziert diesen Punkt: <BogenMittePoint GUID="{26A2B7A6-…}"/> im VC_CADArcLine.

Verfügbarkeit und Besonderheiten

  • Verfügbar in allen Bundesland-Versionen; kommt nur in Projekten mit Kreisbögen vor (BW/Sachsen-Beispieldateien: ja, THR-Beispieldatei: keiner).
  • Umgekehrte Default-Logik bei ImmerAufBogen (Init True → nur False wird geschrieben) — in den drei Beispielprojekten kommt keines der beiden eigenen Elemente vor.
  • PostProcessing, UTM-Y-Korrektur, Fehlwert-Filter beim Speichern: identisch zu VC_CADPunkt.

Quellen im Code

  • CAD\GLGeometrics.pas:30319-30350 — T3DBMPoint.DataToXMLLite
  • CAD\GLGeometrics.pas:30241-30265 — T3DBMPoint.InternalCreateFromXML
  • CAD\GLConsts.pas — INIT_T3DBMPOINT_IMMERAUFBOGEN = True, INIT_T3DBMPOINT_ISTENTSTANDENDURCHBEARBEITUNG = False
  • VERMCAD\GlobalConsts.pas:4566-4567 — Tag-Konstanten xn_ImmerAufBogen, xn_IstEntstandenDurchBearbeitung
  • CAD\GLGeometrics.pas:96996-97034 — Factory-Registrierung VC_CADBMPunkt → T3DBMPoint



[Nach oben]