Zum Inhalt springen

Globale Optionen

Aus VermCAD Hilfe Wiki
Version vom 18. September 2026, 10:38 Uhr von Claude (Diskussion | Beiträge) (Entwicklerhinweise: Zeilennummern an den Code vom 18.09.2026 angeglichen)

Globale Optionen (Compiler-Anweisungen) verändern Einstellungen für das gesamte Projekt. Sie beginnen mit einem Dollarzeichen $, enden wie jeder Datensatz mit ; und dürfen nur am Dateianfang vor allen Datenblöcken stehen — sonst meldet der Compiler Fehler 110 („Compiler-Anweisung nicht am Anfang“). Die angegebenen Werte überschreiben die Einstellungen der Dialoge (z. B. „Zulässige Abweichungen“).

Syntaxregel

GlobaleOption ::=   '$' NAME ['+'|'-'] ';'          (boolescher Schalter; ohne Zeichen = '+')
                  | '$' NAME '=' Wert ';'            (Wert-Option)
                  | '$' NAME ('_'|'|') ['=' Wert] ';' (Suffix nur Lage / nur Höhe; nur $A und $EK)
Regelelement Bedeutung
+ / - Ein-/Ausschalter boolescher Optionen. Ohne Zeichen gilt +. Ein nachgestelltes - (auch mit Leerzeichen: $NOT_Z -;) bewirkt genau das Gegenteil der Option — damit lässt sich eine zentral (in den Programmoptionen) gesetzte Option für das aktuelle Projekt wieder abschalten.
_ / | Suffix „nur Lage“ bzw. „nur Höhe“ — nur bei $A und $EK (z. B. $A|=1; alle Höhenanschlüsse mit nur einem Passpunkt; $EK_; einfach vorgelegte Lageanschlusspunkte). Ohne Suffix gilt die Option für Lage und Höhe.
Wert w = reelle Zahl (Meter bzw. Gon), a = ganze Zahl, sonst Sonderwerte laut Tabelle. Negative Zahlenwerte sind unzulässig.

Compiler-Anweisungen (Schalter)

Option Bedeutung Bundesland
$NE; Fehlerprüfung aus: es wird nur bei fatalen Fehlern angehalten. alle
$NO_CHECK_NRVSK; keine Prüfung Punktnummer gegen Kennzahl alle
$KONTROLLEN; in jedem Messungsblock muss wenigstens eine Abschlusskontrolle vorhanden sein alle
$VRK; jede freie Stationierung standardmäßig mit Verteilung der Restklaffen (wirkt nur in Messblöcken, nicht in Transformations-Makros) alle
$VRK_GNSS; (alt: $VRK_GPS) wie $VRK, beschränkt auf GNSS-Messungen alle
$TT_4P; jede freie Stationierung standardmäßig mit Maßstab (4 Parameter) alle
$TR; jeder Anschluss eines Messblocks als Transformation/Einzelpunktausgleichung (niemals Abriss mit anschließender Polarpunktberechnung) alle
$EA; alle freien Stationierungen stets als Einzelpunktausgleichung (sonst bevorzugt Transformation) alle
$NOT_Z; keine Höhenauswertung (Prüfung von Z = … aus); $NOT_Z-; aktiviert die Höhenprüfung im Einzelfall wieder alle
$FN; freie Reihenfolge der Datensätze in Netzmessungen (Prüfung auf „schulmäßiges Messen“ aus); Netzausgleichungen als freies Netz alle
$GK_HD; alle aufgeführten Schrägstrecken sind bereits Gauß-Krüger-reduziert alle außer Sachsen-Anhalt
$FL_RN; Flächenberechnungen mit zuvor gerundeten Koordinaten alle außer Sachsen-Anhalt
$FL_MM; Flächen mit auf mm gerundeten Koordinaten berechnen alle außer Sachsen-Anhalt
$FL_RR; Flächen-Bogenberechnung über Nicht-Flächen-Hilfspunkte erlauben alle außer Sachsen-Anhalt
$KOO_SORT_A; Koordinatenverzeichnis nach Punktart sortieren alle außer Sachsen-Anhalt
$UseLSKoordinatenSysteme; Koordinatensysteme je Lagestatus automatisch anlegen alle
$NTRAFO_LHS; automatische Transformation der Vorgabenblöcke (VORGABEN, SOLLWERTE) in das Auftragskoordinatensystem aus alle
$TRAFO_LHS_EINZ; LHS-Transformation einzeln je Block alle
$NO_NTv2_TRAFO; keine automatische NTv2-Transformation alle
$WITH_H_PUNKTE; H-Punkte (Hilfspunkte) mitführen alle
$NO_CYCLE_DEP; keine zyklischen Abhängigkeiten unterstützen alle
$NORMAL_DEP; keine Ausnahmeregel für Durchfluchtung (normale Abhängigkeitslogik) alle
$SP_DEP_TRAFO; Transformationen in die Ausnahmeregel (nur VKT) einbeziehen alle
$GNSS_NM_FIRST; (alt: $GPS_NM_FIRST) GNSS-Netzmessungen vor Netzmessungen auswerten alle
$LRI_FE_MP; längenabhängiger Richtungsfehler nach der Methode von M. Pröseler alle
$CALC_GRAF_PKT_NO_WARN; keine Warnung bei Berechnungen mit grafischen Punkten (DES ≥ 4000); Warnung bei ALKIS-Flächenberechnungen bleibt alle
$EK; (auch $EK_; / $EK|;) „Einzelkoordinaten“: einfach vorgelegte Anschlusspunkte verwendbar (Standard: erst nach doppelter Aufmessung); Suffix für nur Lage / nur Höhe alle
$ELL; Fehlerellipsen auch bei unkontrollierten Beobachtungen berechnen/anzeigen (VKT) alle
$DOPPELTBERNR; doppelte Berechnungsnummern zulassen alle
$OLDVRK; Festpunkt-Auswahlverfahren der Restklaffenverteilung im Makro „Verkettete Transformationen“ wie vor Version 4.4 alle
$OptimizeWeights; Gewichte in Ausgleichungen skalieren alle
$UseIndividualMeanYForReduction; Maßstab der UTM-Reduktion für jede Berechnung individuell ermitteln: Jede Berechnung, Messung usw. reduziert die örtlichen Maße mit einem eigenen Maßstab, der sich aus dem mittleren Rechtswert der dabei verwendeten Festpunkte ergibt. Ohne die Option gilt für alle Berechnungen derselbe Maßstab aus dem mittleren Rechtswert des ganzen Projekts. Die mittlere Höhe (Höhenhorizont der Reduktion) stammt in beiden Fällen weiterhin aus dem Koordinatensystem des Auftrags. In Sachsen-Anhalt wird die Option zwar gelesen, bleibt aber ohne Wirkung – dort gibt es die UTM-Reduktion nicht. alle
$NBZ7; Nummerierungsbezirke 7-stellig ausgeben alle

Compiler-Anweisungen (Wert-Optionen)

Option Syntax Bedeutung Bundesland
$A $A = a; (auch $A_ = a; / $A| = a;) Default-Anzahl der Passpunkte für alle Messblöcke des Projekts (entspricht lokaler Option A=); Wert ≥ 2; ohne Suffix: Lage = a, Höhe = a−1 alle
$VRK $VRK = s|s2|s32; Art der Restklaffenverteilung (entspricht den zentralen Optionen „Anschlüsse“). Weist noch nicht an, dass alle Blöcke mit VRK anzuschließen sind — dazu zusätzlich $VRK; setzen. alle
$PCT_Ausgl $PCT_Ausgl = 1..3; Parallel-Computing-Typ der Ausgleichung (1 = aus, 2 = parallel, 3 = parallel optimiert) alle
$AutoGoDown $AutoGoDown = 1..3; automatisches # (Untergang) für grafische gemessene Punkte alle
$UTMZone $UTMZone = Auto|31|32|33; UTM-Zone des LS 489 im Auftrag alle
$VKS489Y $VKS489Y = 6|7|8; Vorkommastellen des Rechtswerts im LS 489 in den Drucklisten alle
$KooSymTranslator $KooSymTranslator = <Dateipfad>; externe Übersetzungstabelle für Symbole beim Koordinatenexport (Dateisyntax je Zeile: VermCad-Symbol externes-Symbol;); relative Pfade ab Projektverzeichnis alle

Zulässige Abweichungen (Toleranz-Optionen)

Syntax jeweils $NAME = w; (w = reelle Zahl; Meter bzw. Gon). Die Werte überschreiben den Dialog „Zulässige Abweichungen“.

Option Bedeutung Bundesland
$AP_YX zulässige Abweichung für Anschlusspunkte alle
$OP_SI zulässige Soll-Ist-Abweichung alle
$OP_YX zulässige Abweichung für Doppelmessungen (Lage) alle
$OP_Z zulässige Abweichung für Höhen alle
$OP_sL zulässige Abweichung sL aus Mehrfachmessungen nur Sachsen-Anhalt
$NM_Hz zulässige Abweichung für Richtungen (Netzmessung) alle
$NM_HD zulässige Abweichung für Horizontalstrecken in Netzmessungen alle
$NM_Z zulässige Abweichung für Höhen in Netz-/Nivellementmessungen alle
$WS_D zulässige Abweichung für Entfernungskontrollen (Strecken und Radien) alle
$TA_RK zulässige Restklaffung für Anschlüsse alle
$TA_RA zulässiger relativer Abstand vom Passpunktfeld alle
$TA_AB zulässige Abhängigkeit(stiefe) eines Standpunktes (ganze Zahl) alle
$PZ_W zulässiger Winkelfehler für Polygonzug alle
$PZ_L zulässiger Längsfehler für Polygonzug alle
$PZ_Q zulässiger Querfehler für Polygonzug alle
$SO_SW kleinster zulässiger Schnittwinkel alle
$SO_TS Trennschärfe für Nachbarschaftsprüfung alle
$SO_EX zulässige Exzentrizität (relativ zur Entfernung des Prismas) alle
$SV_YX zulässige Abweichung für Sicherungsvermessungen nur Sachsen-Anhalt
$SV_SP zulässiger Abstand zwischen den Standpunkten einer Sicherungsvermessung nur Sachsen-Anhalt
$SO_RE zulässiger relativer Abstand zu den Bezugspunkten nur Sachsen-Anhalt

Dezimalstellen für Listenausgaben

Syntax jeweils $NAME = a; (ganze Zahl, maximal 10).

Option Bedeutung Standard Bundesland
$YXDeci Dezimalstellen für Y und X 3 alle
$ZDeci Dezimalstellen für Z 3 alle
$HzDeci Dezimalstellen für Richtungen 4 alle
$HDDeci Dezimalstellen für Strecken 3 alle
$VDeci Dezimalstellen für Vertikalwinkel 4 alle
$MFDeci Dezimalstellen für mittlere Fehler — alle
$NASDeci Dezimalstellen für NAS-Ausgaben — alle

Bundeslandspezifische Optionen

Option Bedeutung Bundesland
$KVZ_CM; Koordinatenverzeichnis standardmäßig mit auf cm gerundeten Koordinaten nur Sachsen
$MESS_PID; für PID-Nachweis und Entfernungskontrollen (Maßbandkontrollen) werden Messwerte den Soll-Vorgaben vorgezogen nur Brandenburg
$RRRRHHHH; 4+4-stellige Nummernlogik (RRRRHHHH) nur Thüringen
$ROUND_CALCULATED_COO; berechnete Koordinaten runden („BW-Rundung“) nur Baden-Württemberg
$ML_CURVE_COO_Y_0; Messungslinienprotokoll: Rechtswert 0.0 ausgeben nur Baden-Württemberg
$AlkisDefaultZST = a; überstimmt die zentrale Einstellung der zuständigen Stelle (gültiger Dienststellenschlüssel, z. B. 130101) nur Mecklenburg-Vorpommern
$FSIV; keine strenge Prüfung in Sicherungsvermessungen (freie SiV) nur Sachsen-Anhalt
$NN; Sicherungsvermessungen nicht mit dem gemessenen Netz abgleichen nur Sachsen-Anhalt
$SIV_SP; Standpunkte der Sicherungsvermessungen im LTK bereitstellen nur Sachsen-Anhalt
$LTK_GK; LTK-Strecken stets aus Gauß-Krüger-Koordinaten berechnen, auch wenn originäre Strecke vorliegt nur Sachsen-Anhalt
$No15LTK; LTK-Sonderlogik (kein 15er-LTK) nur Sachsen-Anhalt
$NLS; Transformation LSYX → YX aus (stellt sonst nur im Lagestatus 150 gegebene Koordinaten im LTK bereit) nur Sachsen-Anhalt
$LGLZ47_22; LG/LZ-Ersetzungslogik (47 → 22) nur Sachsen-Anhalt

Beispiele

$NE;                       { nur fatale Fehler melden                        }
$NOT_Z -;                  { zentral gesetztes NOT_Z projektweise aufheben   }
$A|=1;                     { alle Höhenanschlüsse mit nur einem Passpunkt    }
$EK_;                      { einfach vorgelegte Lageanschlusspunkte          }
$VRK = s2;                 { Verfahren der Restklaffenverteilung festlegen   }
$VRK;                      { ... und alle Messblöcke mit VRK anschließen     }
$AP_YX = 0.04;             { Toleranz Anschlusspunkte 4 cm                   }
$YXDeci = 2;               { Y/X-Listen mit 2 Dezimalstellen                 }
$UTMZone = 32;             { UTM-Zone des LS 489                             }
$KooSymTranslator = C:\temp\translate.txt;

AUFTRAG                    { ab hier keine $-Optionen mehr erlaubt }
  ...
END

Verfügbarkeit und Besonderheiten

  • Position: nur am Dateianfang vor allen Datenblöcken; danach Fehler 110.
  • Groß-/Kleinschreibung ist wie überall bedeutungslos ($ne; = $NE;).
  • Wertprüfungen des Compilers: $A ≥ 2 (Fehler 50), $PCT_Ausgl/$AutoGoDown ∈ 1..3 (Fehler 59/99), $VKS489Y ∈ 6..8 (Fehler 49), $UTMZone ∈ {Auto, 31, 32, 33} (Fehler 47); negative Zahlenwerte unzulässig (Fehler 26/42).
  • Aliase alter Schreibweisen: $VRK_GPS → $VRK_GNSS, $GPS_NM_FIRST → $GNSS_NM_FIRST.
  • Die Alt-Dokumentation nennt für Sachsen eine Option $OldVMA; (alte, einstellige Vermarkungsarten) — sie ist im aktuellen Parser nicht mehr vorhanden (veraltet).
  • Veraltet und nicht mehr unterstützt: $NO_NV_NR_Index (wird gesammelt überlesen).
  • Bundesland-Zuordnung beachten: In der jeweils „fremden“ Bundesland-Version ist eine bundeslandspezifische Option unbekannt und erzeugt einen Fehler.

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\VCSCHMWT.PAS:807-941 — HandleAssignment (Verarbeitung aller $-Optionen inkl. Bundesland-Defines)
  • VERMCAD\VCSCHMWT.PAS:3998-4039 — Erkennung der $-Anweisungen, Suffixe _/|, +/--Schalter
  • VERMCAD\VCSCHMWT.PAS:4054 — Fehler 110 „Compiler-Anweisung nicht am Anfang“
  • VERMCAD\VCSCHMWT.PAS:4065-4072 — $KooSymTranslator; VCSCHMWT.PAS:4074-4084 — $UTMZone (Auto/31/32/33); VCSCHMWT.PAS:4094-4113 — Ganzzahl-Optionen mit Wertprüfung
  • VERMCAD\VCSCHMWT.PAS:866-879 — $A und $EK mit Lage-/Höhen-Suffix
  • VERMCAD\VcEditorUtils.pas:1927-2108 — Keyword-Tabelle (u. a. ID[kSingleCoo] := '$EK', Zeile 1976)
  • VERMCAD\GlobalConsts.pas:1814-1903 — Namenskonstanten der Optionen (kwNotErrorCheck … kwNASDecimals)
  • VERMCAD\VcToleranz.pas:945-975 — $-Bezeichner der Toleranz-Optionen (GetIdentStr, tls_Ident)
  • VERMCAD\GlobalTypes.pas:1531-1713 — Enum TBlockKind (Abschnitt der Compiler-Anweisungen)



[Nach oben]