Zum Inhalt springen

MWT Syntax-Makro VKTRANSFORMATION: Unterschied zwischen den Versionen

Aus VermCAD Hilfe Wiki
MWT-Syntax-Referenz: regelbasierte Seite aus Task MWT_Syntax (Quellen: Compiler-Code + Bestands-MWTs)
Alt-Klassik-Doku eingemischt: Mehrwert/Grafiken/Siehe-auch (Task MWT_Syntax)
Zeile 154: Zeile 154:
* In Sachsen erhalten Punkte aus DIG-Abschnitten automatisch LGA = 4 (ab 1.1.2006).
* In Sachsen erhalten Punkte aus DIG-Abschnitten automatisch LGA = 4 (ab 1.1.2006).
* Fehlerquellen: unbekanntes Abschnitts-Schlüsselwort (Fehler 76), Beobachtungssatz ohne Werte (Fehler 77), SYSID/TITEL zu lang (Fehler 81/78).
* Fehlerquellen: unbekanntes Abschnitts-Schlüsselwort (Fehler 76), Beobachtungssatz ohne Werte (Fehler 77), SYSID/TITEL zu lang (Fehler 81/78).
== Siehe auch ==
* [[Rechnen Menü-Das Dialogfenster Verkettete Transformationen|verkettete Transformation]]


== Entwicklerhinweise ==
== Entwicklerhinweise ==

Version vom 20. Juli 2026, 21:30 Uhr

Das Rechenmakro VKTRANSFORMATION (verkettete Transformationen, „VA") gleicht beliebig viele örtliche Systeme (Riss-Koordinaten, Digitalisierungen, Spannmaße, Richtungen, Polaraufnahmen, Parallelitätsbedingungen) gemeinsam in das Auftragssystem aus. Der Block besteht aus einem Kopf, der Festpunktliste (Punkte der VA) und beliebig vielen Beobachtungslisten-Abschnitten. Die Punkte erhalten die ausgeglichenen Koordinaten der Gesamtausgleichung.

Syntaxregel

VKTRANSFORMATION [, KOORDINATENSYSTEM <n> | , LS <n>] [, <Kopf-Parameter>]*
  <Festpunkt> { , <Festpunkt> }* ;                    (Satz 1: Punkte der VA)
  { <Beobachtungsabschnitt> }*
END[;]

<Festpunkt> ::= <NV> [<A>] <NR>  [<mf> [<mf0>]]  [o] [v]

<Beobachtungsabschnitt> ::=
    KOORDINATEN | KSKOORDINATEN | DIG_KOORDINATEN | KSDIG_KOORDINATEN   (örtliche/digitalisierte Koordinaten)
  | ENTFERNUNGEN                                                        (Spannmaße aus Rissen)
  | POLARELEMENTE                                                       (polare Rissaufnahmen)
  | RICHTUNGEN | PARALLELEN                                             (Richtungen, Parallelitätsbedingungen)
  jeweils: <KEYWORD> [, <AbschnittInfo>]*  <Datensätze…>
Regelelement Bedeutung
<Festpunkt> Punkt, der an der VA teilnimmt (im Auftrag koordiniert oder durch die VA zu bestimmen). <mf> = Standardabweichung des Punktes in der endgültigen Ausgleichung (fehlend/x = fest), <mf0> = Standardabweichung in der vorläufigen Ausgleichung (VA0). Flags: o = kein Passpunkt (nur prüfen), v = Veränderung.
Abschnittsbeginn Datensatz, dessen erstes Wort eines der Beobachtungslisten-Schlüsselwörter ist; ab dem 2. Datensatz zulässig, ungültige Schlüsselwörter melden Fehler 76. Ein Block darf beliebig viele Abschnitte (auch mehrere derselben Art) enthalten; erst END beendet den gesamten Block.

Die Syntax der Beobachtungslisten ist auf eigenen Seiten dokumentiert — dort auch die AbschnittInfos (SYSID, TITEL, P, POLAR, M, MF_*, VRK, GK_RED, ZP, DEA, DEA_CAD, REM):

  • KOORDINATEN, KSKOORDINATEN, DIG_KOORDINATEN, KSDIG_KOORDINATEN — örtliche und digitalisierte Koordinaten (mit KS <n>;-Satz bei den KS-Formen)
  • RICHTUNGEN und PARALLELEN — Richtungssätze und Parallelitätsbedingungen (inkl. PARABST, MF_Hz, MF_S, MF_PAR)
  • ENTFERNUNGEN (Abschnitt „Verwechslungsgefahr") — Spannmaß-Belegform: Von-Punkt-Satz ohne Wert, Ziel-Sätze mit Maß und optionaler Standardabweichung (MF_S, DFHD)
  • POLARELEMENTE (Abschnitt „Zweite Verwendung") — polare Belegform: Standpunkt-Satz, Zielsätze mit Hz HD (MF_Hz, MF_HD, MF_ZU, MF_HDr)

Parameter (Blockkopf)

Allgemeine Kopf-Parameter (NR =, DATUM =, ZEIT =, PNR =, KN =, REM =, NE) siehe Blockkopf-Parameter. Makrospezifisch:

Parameter Syntax Pflicht Bedeutung Bundesland
Koordinatensystem , KOORDINATENSYSTEM <n> / , LS <n> nein VA in einem anderen Koordinatensystem/Lagestatus rechnen (direkt nach dem Schlüsselwort) alle
gültige Iterationen ,GI = n nein Anzahl gültiger Iterationen (typisch GI = 3) alle
Näherungen ,NAE = n nein Anzahl der Näherungsiterationen alle
Abbruchschranke ,ABS = w nein Abbruchschranke der Iteration alle
Verbesserungsfaktor ,FVB = w nein Faktor für die Verbesserungen alle
normale NV ,NNV nein Nummerierungsverbund-Behandlung wie in normalen Berechnungen alle
normale Abhängigkeit ,NA nein normale Abhängigkeitsbehandlung alle
niedrige Präzision ,LP nein LowPrecision-Modus alle
Sortierung ,SNR nein Ausgabe nach Punktnummern sortieren alle
deaktiviert ,DEA / ,DEA_V nein gesamtes Makro deaktivieren / nur die vorläufige Ausgleichung VA0 deaktivieren alle
Toleranz ,ZP = w nein zulässige Punktabweichung alle
KS-Reduzierer ,KS_RED nein KS-Trafo-Reduzierer verwenden alle
Statistik ,DEA_EKP nein EKP-Zusatzstatistik deaktivieren (neu 05.10.2025) nur Berlin

Hinweis: DFHD (fixe Horizontalstrecken deaktivieren) ist eine AbschnittInfo der ENTFERNUNGEN-Beobachtungsliste, DEA_CAD eine AbschnittInfo der Systeme — beide gehören nicht in den Blockkopf.

Datenzeilen (Festpunktliste)

  • Punktangabe in der Makro-Kurzform ohne VMA, siehe Punktidentifikation.
  • Die Festpunktliste ist genau ein Datensatz (Punkte durch Kommas getrennt, Abschluss mit Semikolon). Ein deaktiviertes Makro (,DEA) darf eine leere Festpunktliste haben.
  • Je Punkt optional zwei Werte: Standardabweichung endgültige Ausgleichung und Standardabweichung vorläufige Ausgleichung (Platzhalter x für einen ausgelassenen ersten Wert).
  • Intern heißt die Festpunktliste FESTPUNKTE; im MWT-Text erscheint kein eigenes Schlüsselwort.

Ablauf

  1. Vorläufige Ausgleichung (VA0): Prüft die Beobachtungen mit den vorläufigen Standardabweichungen (<mf0>); mit ,DEA_V abschaltbar.
  2. Endgültige Ausgleichung: gemeinsame Ausgleichung aller Systeme/Beobachtungen; je System wird eine Transformation (Parameterzahl P je Abschnitt) mitgeschätzt.
  3. Punkte mit Flag B in den Koordinaten-Abschnitten erhalten die ausgeglichenen Koordinaten; Festpunkte mit Flag o werden nur geprüft.

Lösbarkeit / Näherungskoordinaten (häufige Fehlerquellen)

Die Ausgleichung linearisiert iterativ und braucht daher für jeden teilnehmenden Punkt Näherungskoordinaten im Auftragssystem. Regeln zur Vermeidung der typischen Fehler „Transformationsparameter für dieses System nicht berechenbar" bzw. „keine Koordinaten für Punkt … gefunden":

  • Jeder Punkt bekommt seine Näherung aus einem koordinatenliefernden System (KOORDINATEN, DIG_KOORDINATEN, KSKOORDINATEN, KSDIG_KOORDINATEN), das durch mindestens zwei Punkte mit bekannten Zielkoordinaten (Festpunkte) verankert ist. Punkte, die nur in POLARELEMENTE, ENTFERNUNGEN (Spannmaße), RICHTUNGEN oder PARALLELEN stehen, erhalten dort keine Position und müssen zusätzlich in einem Koordinaten-System (oder als Festpunkt) auftauchen.
  • POLARELEMENTE als System benötigt Standpunkt + mindestens zwei Zielpunkte mit bekannter Näherung, sonst sind die Transformationsparameter unterbestimmt.
  • Echte Neupunkte (Punktnummern, die im Auftrag noch nicht koordiniert sind) dürfen nicht in der Festpunktliste als „zu bestimmen" und nicht in einer KS-Form stehen — dort wird eine vorhandene Näherung erwartet. Ein echter Neupunkt wird über ein direktes Koordinaten-System (KOORDINATEN/DIG_KOORDINATEN) mit Flag B erzeugt.
  • Flags in den Beobachtungslisten: KOORDINATEN/DIG_KOORDINATEN verwenden für zu berechnende Punkte B; die KS-Formen (KSKOORDINATEN/KSDIG_KOORDINATEN) verwenden x (bzw. O/W/Q), nicht B.

Beispiele

Hinweis: VermCad ergänzt beim Speichern binäre Codierungszeilen; sie sind hier weggelassen.

Beispiel (Sachsen, echt — Kopf und Festpunktliste, gekürzt)

VKTRANSFORMATION, NR = 1, NNV, GI = 3, NE,
  DATUM = 27.04.2026,
  ZEIT = 08:14:01,
  PNR = 10

  54         104         x       0.0200 o,
  54         107         x       0.0200,
  54         108         x       0.0200,
  54         109         x       0.0200 o v,
  54         112         x       0.0200;

Alle Festpunkte sind in der endgültigen Ausgleichung fest (x), in der vorläufigen mit 0.02 m Standardabweichung angesetzt; 104 und 109 sind keine Passpunkte (o), 109 zusätzlich als verändert markiert (v).

Beispiel (Sachsen-Anhalt, echt — vollständiger Block mit zwei Systemen)

VKTRANSFORMATION  KOORDINATENSYSTEM 1, NR = 1, GI = 3,
  DATUM = 25.08.2019, ZEIT = 20:14:13, PNR = 71

  xx        5000 ,
  xx        5001 ;

KOORDINATEN, SYSID = '1', TITEL = 'S  1', MF_Y = 0.03, MF_X = 0.03, MF_M = 0.15,
  REM = '1919-1923'
  xx  1     5000  B       0.000      0.000;
  xx  1     5011  B       0.000     11.540;
  xx  1     5001  B       0.000    289.720;

KOORDINATEN, SYSID = '3', TITEL = 'S  2', MF_Y = 0.03, MF_X = 0.03, MF_M = 0.15
  xx  1     5001  B       0.000      0.000;
  xx  2    25013  B      -0.250     12.480;
  xx  1     5016  B       0.000    112.900;
END

Beispiel (Struktur mit gemischten Abschnitten, aus der Alt-Dokumentation, gekürzt)

VKTRANSFORMATION, NR = 4,
  DATUM = 31.07.2006, ZEIT = 13:57:54

  60       20001 ,
  60       20002  o,
  xx       20103 ;

KOORDINATEN, MF_Y = 0.05, MF_X = 0.03
  60  x    20010  B       0.000      0.000;
  60  x    20003  B       0.000     20.000;

KSDIG_KOORDINATEN, P = 5, MF_Y = 1.2, MF_X = 1.2
  KS 1;
  xx           1       60       20101  x  ;

ENTFERNUNGEN, MF_S = 0.05
  60  x    20003  x ;
  xx  x    20004  x       5.000;
END

Verfügbarkeit und Besonderheiten

  • Verfügbar in allen Bundesland-Versionen; Schwerpunkt Sachsen (>1900 Blöcke in den ausgewerteten MWTs), daneben Anhalt, Thüringen, MV, BRB, Berlin, BW.
  • Zugehörige globale Optionen: $ELL (Fehlerellipsen auch bei unkontrollierten Beobachtungen), $OldVRK (Festpunktauswahl der Restklaffenverteilung wie vor Version 4.4), $SP_DEP_TRAFO (Abhängigkeitsausnahme), $PCT_Ausgl (Parallelrechnung), $OptimizeWeights (Gewichte skalieren).
  • Doppelte SYSID im selben Makro ist ein Fehler; Abschnitte ohne SYSID gelten als Altbestand.
  • In Sachsen erhalten Punkte aus DIG-Abschnitten automatisch LGA = 4 (ab 1.1.2006).
  • Fehlerquellen: unbekanntes Abschnitts-Schlüsselwort (Fehler 76), Beobachtungssatz ohne Werte (Fehler 77), SYSID/TITEL zu lang (Fehler 81/78).

Siehe auch

Entwicklerhinweise

Diese Angaben richten sich an Entwickler bzw. eine KI mit Zugriff auf den VermCad-Quellcode; für die reine Nutzung der MWT-Syntax sind sie nicht nötig. Unit-Namen und besonders Zeilennummern können sich durch die laufende Weiterentwicklung verschieben - sie dienen als Einstieg, nicht als exakte Fundstelle.

Quellen im Code:

  • VERMCAD\GlobalConsts.pas:1572, 1577-1585 — kwVkTransformation, kwFestpunkte, Abschnitts-Schlüsselwörter
  • VERMCAD\VCSCHMWT.PAS:5387-5446 — Erkennung neuer Beobachtungsabschnitte, KS-Satz, deaktivierte leere Systeme, Fehler 76
  • VERMCAD\VCSCHMWT.PAS:6441-6478 — Festpunkt-Werte dk_MFa/dk_MFa0; GlobalTypConsts.pas:1020 — dk_MFa0 = vorläufige Ausgleichung
  • VERMCAD\VCSCHMWT.PAS:6514-6553 — Flags o/v in der Festpunktliste
  • VERMCAD\VCSCHMWT.PAS:6123-6131 — leere Festpunktliste bei deaktiviertem Makro
  • VERMCAD\VCSCHMWT.PAS:3141-3153 (GI), 3646-3661 (ABS, FVB), 2978-2990 (NAE), 3037-3038 (LP), 3194-3196 (SNR), 3231-3233 (DEA_V), 2961-2966 (NNV), 2954-2957 (NA)
  • VERMCAD\GlobalRecords.pas:1852-1897 — Zuordnung Schlüsselwort → TVAObservationKind
  • VERMCAD\VCCALCVT.PAS:5746-5814, 6553-6558, 7200 — Verwendung von dk_MFa/dk_MFa0, Schreiben der Festpunkte
  • VERMCAD\VcAusgl.pas:2226-2276 — Validierung der Beobachtungslisten



[Nach oben]