MWT Syntax-Makro MASCHENTRANSFORMATION: Unterschied zwischen den Versionen
Claude (Diskussion | Beiträge) MWT-Syntax-Referenz: regelbasierte Seite aus Task MWT_Syntax (Quellen: Compiler-Code + Bestands-MWTs) |
Claude (Diskussion | Beiträge) Entwicklerhinweise: Zeilennummern an den Code vom 18.09.2026 angeglichen |
||
| (2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
{{DISPLAYTITLE: | {{DISPLAYTITLE:MASCHENTRANSFORMATION und KSMASCHENTRANSFORMATION}} | ||
Die Rechenmakros MASCHENTRANSFORMATION und KSMASCHENTRANSFORMATION (neu seit 12/2024) führen eine '''maschenweise Transformation''' durch: Das Passpunktfeld wird in Dreiecksmaschen zerlegt und jeder Neupunkt wird mit den Parametern „seiner" Masche transformiert (nachbarschaftstreue, lokal affine Anpassung). MASCHENTRANSFORMATION arbeitet wie [[MWT Syntax-Makro TRANSFORMATION|TRANSFORMATION]] mit örtlichen Koordinaten in den Datensätzen, KSMASCHENTRANSFORMATION wie [[MWT Syntax-Makro KSTRANSFORMATION|KSTRANSFORMATION]] mit einem VermCad-Quell-Koordinatensystem. Die Maschen werden im Untersektions-Schlüsselwort '''MASCHEN''' explizit definiert oder mit dem Kopf-Parameter '''AUTO_MASCHEN''' automatisch erzeugt. | Die Rechenmakros MASCHENTRANSFORMATION und KSMASCHENTRANSFORMATION (neu seit 12/2024) führen eine '''maschenweise Transformation''' durch: Das Passpunktfeld wird in Dreiecksmaschen zerlegt und jeder Neupunkt wird mit den Parametern „seiner" Masche transformiert (nachbarschaftstreue, lokal affine Anpassung). MASCHENTRANSFORMATION arbeitet wie [[MWT Syntax-Makro TRANSFORMATION|TRANSFORMATION]] mit örtlichen Koordinaten in den Datensätzen, KSMASCHENTRANSFORMATION wie [[MWT Syntax-Makro KSTRANSFORMATION|KSTRANSFORMATION]] mit einem VermCad-Quell-Koordinatensystem. Die Maschen werden im Untersektions-Schlüsselwort '''MASCHEN''' explizit definiert oder mit dem Kopf-Parameter '''AUTO_MASCHEN''' automatisch erzeugt. | ||
| Zeile 114: | Zeile 114: | ||
'''Quellen im Code:''' | '''Quellen im Code:''' | ||
* VERMCAD\GlobalConsts.pas: | * VERMCAD\GlobalConsts.pas:1642-1643, 1664, 1754 — <code>kwMaschenweiseTransformation</code>, <code>kwMaschenweiseKSTransformation</code>, <code>kwMaschenDefinitionen = 'MASCHEN'</code>, <code>kwAutoGenerateMaschen = 'AUTO_MASCHEN'</code> | ||
* VERMCAD\VCSCHMWT.PAS: | * VERMCAD\VCSCHMWT.PAS:5708-5717 — Erkennung der MASCHEN-Sektion (Fehler 800), Satzgrenzen (MASCHENTRAFO > 1, KS-Variante > 2) | ||
* VERMCAD\VCSCHMWT.PAS: | * VERMCAD\VCSCHMWT.PAS:3760-3768 — Kopf-Parameter <code>AUTO_MASCHEN</code> (nur Maschen-Makros) | ||
* VERMCAD\VCSCHMWT.PAS: | * VERMCAD\VCSCHMWT.PAS:5155-5159, 3793-3809 — KS/LS-Satz der KS-Variante (<code>ReadSourceKsNr</code>) | ||
* VERMCAD\VCSCHMWT.PAS: | * VERMCAD\VCSCHMWT.PAS:6656-6660 — Koordinaten-/Paarlesen inkl. Maschen-Ausnahme (<code>FMaschenDefinitionen</code>) | ||
* VERMCAD\VCSCHMWT.PAS: | * VERMCAD\VCSCHMWT.PAS:6494-6551 — Punktpaare der KS-Variante, virtuelle Zielpunkte | ||
* VERMCAD\VCSCHMWT.PAS: | * VERMCAD\VCSCHMWT.PAS:3178, 3217-3238, 3524, 3576-3579, 3736-3748 — zugelassene Kopf-Parameter (GEWM, Sortierungen, M, MF_YX, FIXM/FIXN) | ||
* VERMCAD\VCCALCVT.PAS: | * VERMCAD\VCCALCVT.PAS:5163 — Schreiben der MASCHEN-Sektion | ||
{{Hilfe:NachOben}} | {{Hilfe:NachOben}} | ||
[[Kategorie: | [[Kategorie:Blöcke mit Anweisungen (Makros)|MASCHENTRANSFORMATION]] | ||
Aktuelle Version vom 18. September 2026, 10:38 Uhr
Die Rechenmakros MASCHENTRANSFORMATION und KSMASCHENTRANSFORMATION (neu seit 12/2024) führen eine maschenweise Transformation durch: Das Passpunktfeld wird in Dreiecksmaschen zerlegt und jeder Neupunkt wird mit den Parametern „seiner" Masche transformiert (nachbarschaftstreue, lokal affine Anpassung). MASCHENTRANSFORMATION arbeitet wie TRANSFORMATION mit örtlichen Koordinaten in den Datensätzen, KSMASCHENTRANSFORMATION wie KSTRANSFORMATION mit einem VermCad-Quell-Koordinatensystem. Die Maschen werden im Untersektions-Schlüsselwort MASCHEN explizit definiert oder mit dem Kopf-Parameter AUTO_MASCHEN automatisch erzeugt.
Syntaxregel
MASCHENTRANSFORMATION [, KOORDINATENSYSTEM <n> | , LS <n>] [, <Kopf-Parameter>]*
<Passpunkt> { , <Passpunkt> }* ; (Satz 1: Passpunkte mit Y X)
{ <Neupunkt> ; }* (je Satz ein Neupunkt mit Y X)
[ MASCHEN
{ <P1> , <P2> , <P3> ; }* ] (je Satz ein Dreieck)
END[;]
KSMASCHENTRANSFORMATION [, <Kopf-Parameter>]*
KS <QuellKsNr> | LS <Lagestatus> ; (Satz 1: Quellsystem)
<Passpunktpaar> { , <Passpunktpaar> }* ; (Satz 2: Passpunkte)
{ <Neupunktpaar> ; }*
[ MASCHEN
{ <P1> , <P2> , <P3> ; }* ]
END[;]
<Passpunkt> ::= <NV> <NR> <Y> <X> [o] [v] (wie TRANSFORMATION)
<Neupunkt> ::= <NV> [<A>] <NR> <Flags> <Y> <X>
<Passpunktpaar> ::= <QuellPunkt> [<ZielPunkt>] [o] [v] (wie KSTRANSFORMATION)
<P1>, <P2>, <P3> ::= <NV> [<A>] <NR> (Eckpunkte der Masche)
| Regelelement | Bedeutung |
|---|---|
MASCHEN |
leitet die Maschendefinitionen ein (eigener Satzbeginn, kein eigenes END); bei MASCHENTRANSFORMATION ab Satz 2, bei KSMASCHENTRANSFORMATION ab Satz 3 zulässig (Fehler 800, wenn das Schlüsselwort erwartet, aber nicht gefunden wird) |
| Dreieckssatz | genau drei Passpunkte, durch Kommas getrennt, Abschluss mit Semikolon; die Punkte referenzieren bei der KS-Variante die Punktnummern im Quellsystem |
xx xxxxx |
Platzhalter-Zielpunkt in Punktpaaren der KS-Variante: der Punkt behält seine Nummer |
Parameter
Allgemeine Kopf-Parameter (NR =, DATUM =, ZEIT =, PNR =, KN =, REM =, NE, DEA) siehe Blockkopf-Parameter. Makrospezifisch:
| Parameter | Syntax | Pflicht | Bedeutung | Bundesland |
|---|---|---|---|---|
| Auto-Maschen | ,AUTO_MASCHEN (abschaltbar ,AUTO_MASCHEN-) |
nein | Dreiecksmaschen automatisch aus dem Passpunktfeld erzeugen (Delaunay); dann entfällt die MASCHEN-Sektion | alle |
| GK-Reduktion | ,GK_RED |
nein | Quellwerte Gauß-Krüger-reduzieren | alle |
| KS-Reduzierer | ,KS_RED |
nein | nur KSMASCHENTRANSFORMATION: KS-Trafo-Reduzierer verwenden | alle |
| Maßstab | ,M = w |
nein | nur MASCHENTRANSFORMATION: Multiplikator für die örtlichen Werte | alle |
| mittlerer Fehler | ,MF_YX = w |
nein | a-priori-Fehler der Koordinaten | alle |
| Gewichtsmaßstab | ,GEWM = w |
nein | Gewichtsmaßstab | alle |
| Sortierung | ,SNR_P / ,SX_P / ,SNR_N / ,SX_N |
nein | Pass-/Neupunkte nach Nummer bzw. X sortieren | alle |
| Fixierungen | ,FIXM / ,FIXN |
nein | Maßstab bzw. Nachbarschaft fixieren | alle |
| Toleranzen | ,ZP = w |
nein | zulässige Punktabweichung | alle |
Nicht zulässig sind u. a. GEWX (nur TRANSFORMATION/KSTRANSFORMATION/GRENZPRUEFUNG) und CVA; auch das Flag v wird bei Maschentransformationen nicht in Flags übernommen (Fehler 66 wie bei Bedingungsflags).
Datenzeilen
- Punktangabe wie bei TRANSFORMATION bzw. KSTRANSFORMATION, siehe Punktidentifikation.
- Passpunkt-/Neupunkt-Sätze wie bei TRANSFORMATION (Werteform) bzw. KSTRANSFORMATION (Paarform).
- In der MASCHEN-Sektion enthält jeder Satz genau ein Dreieck; alle Eckpunkte müssen Passpunkte sein. Ohne MASCHEN-Sektion ist
AUTO_MASCHENzu setzen.
Beispiele
Hinweis: VermCad ergänzt beim Speichern binäre Codierungszeilen; sie sind hier weggelassen.
Beispiel (Baden-Württemberg, echt — KSMASCHENTRANSFORMATION mit expliziten MASCHEN)
KSMASCHENTRANSFORMATION, NR = 7, GK_RED, DATUM = 19.06.2026, ZEIT = 10:55:47 LS 895; 0390 804/157 0390 xxxxx , 0390 309/6 0390 xxxxx , 0390 309/7 0390 xxxxx , 0390 777/2 0390 xxxxx ; MASCHEN 0390 309/7 , 0390 777/2 , 0390 309/6 ; END
Beispiel (Testprojekt, echt — automatische Maschen)
KSMASCHENTRANSFORMATION, NR = 4, GK_RED, AUTO_MASCHEN, DATUM = 13.01.2025, ZEIT = 17:41:45 KS 1; xx 10 xx xxxxx , xx 11 xx xxxxx , xx 12 xx xxxxx ; xx 97 xx xxxxx, xx 99 xx xxxxx; END
Die Punkte 10-12 sind Passpunkte (im Auftrag koordiniert), 97 und 99 werden maschenweise transformiert und behalten ihre Nummern.
Verfügbarkeit und Besonderheiten
- Verfügbar in allen Bundesland-Versionen (Compiler); in echten Projekten bisher nur in Baden-Württemberg und Testdaten beobachtet (Makrofamilie ist neu, 12/2024).
- Die MASCHEN-Sektion und der Parameter
AUTO_MASCHENexistieren nur in diesen beiden Makros. - MASCHENTRANSFORMATION entspricht in Datensatzform und Header weitgehend TRANSFORMATION, KSMASCHENTRANSFORMATION entspricht KSTRANSFORMATION — dokumentierte Abweichungen: keine
P =-Angabe (je Masche wird eine eigene lokale Transformation gerechnet, intern Standardtyp tt_4P), keine ENTFERNUNGEN-Sektion, keine punktweisen Gewichte, keinGEWX/CVA. - Verwandte nachbarschaftstreue Alternative ohne Maschen:
,VRKbei TRANSFORMATION/KSTRANSFORMATION.
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:1642-1643, 1664, 1754 —
kwMaschenweiseTransformation,kwMaschenweiseKSTransformation,kwMaschenDefinitionen = 'MASCHEN',kwAutoGenerateMaschen = 'AUTO_MASCHEN' - VERMCAD\VCSCHMWT.PAS:5708-5717 — Erkennung der MASCHEN-Sektion (Fehler 800), Satzgrenzen (MASCHENTRAFO > 1, KS-Variante > 2)
- VERMCAD\VCSCHMWT.PAS:3760-3768 — Kopf-Parameter
AUTO_MASCHEN(nur Maschen-Makros) - VERMCAD\VCSCHMWT.PAS:5155-5159, 3793-3809 — KS/LS-Satz der KS-Variante (
ReadSourceKsNr) - VERMCAD\VCSCHMWT.PAS:6656-6660 — Koordinaten-/Paarlesen inkl. Maschen-Ausnahme (
FMaschenDefinitionen) - VERMCAD\VCSCHMWT.PAS:6494-6551 — Punktpaare der KS-Variante, virtuelle Zielpunkte
- VERMCAD\VCSCHMWT.PAS:3178, 3217-3238, 3524, 3576-3579, 3736-3748 — zugelassene Kopf-Parameter (GEWM, Sortierungen, M, MF_YX, FIXM/FIXN)
- VERMCAD\VCCALCVT.PAS:5163 — Schreiben der MASCHEN-Sektion