MWT Syntax-Makro TRANSFORMATION: 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 |
||
| (4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
{{DISPLAYTITLE: | {{DISPLAYTITLE:TRANSFORMATION}} | ||
Das Rechenmakro TRANSFORMATION transformiert Punkte aus einem beliebigen (örtlichen) Koordinatensystem über Passpunkte in das System des Auftrags. Der erste Satz enthält die Passpunkte mit ihren örtlichen Koordinaten, die folgenden Sätze die Neupunkte. Eine eingebettete ENTFERNUNGEN-Sektion erlaubt zusätzlich Spannmaße als Beobachtungen. | Das Rechenmakro TRANSFORMATION transformiert Punkte aus einem beliebigen (örtlichen) Koordinatensystem über Passpunkte in das System des Auftrags. Der erste Satz enthält die Passpunkte mit ihren örtlichen Koordinaten, die folgenden Sätze die Neupunkte. Eine eingebettete ENTFERNUNGEN-Sektion erlaubt zusätzlich Spannmaße als Beobachtungen. | ||
| Zeile 11: | Zeile 11: | ||
END[;] | END[;] | ||
<Passpunkt> ::= <NV> <NR> <W1> <W2> [<Gew> [<GewX>]] [o] [v] | <Passpunkt> ::= <NV> [<A>] <NR> <W1> <W2> [<Gew> [<GewX>]] [o] [v] | ||
<Neupunkt> ::= <NV> | <Neupunkt> ::= <NV> <A> <NR> <Flags> <W1> <W2> | ||
</pre> | </pre> | ||
{| class="wikitable" | {| class="wikitable" | ||
! Regelelement !! Bedeutung | ! Regelelement !! Bedeutung | ||
|- | |||
| <code><A></code> || Punktart. Beim '''Neupunkt''' steht sie in allen Ausgaben (Pflicht; als Platzhalter genügt <code>x</code>). Beim '''Passpunkt''' gibt es sie nur in den Ausgaben für '''Brandenburg''' und '''Berlin''', dort ist sie optional; siehe [[MWT Syntax-Punktidentifikation und Flags|Punktidentifikation]] | |||
|- | |- | ||
| <code><W1> <W2></code> || örtliche Koordinaten <code>Y X</code> (Pflicht); mit Kopf-Parameter <code>POLAR</code> stattdessen <code>Hz HD</code> (polare Quellwerte) | | <code><W1> <W2></code> || örtliche Koordinaten <code>Y X</code> (Pflicht); mit Kopf-Parameter <code>POLAR</code> stattdessen <code>Hz HD</code> (polare Quellwerte) | ||
| Zeile 65: | Zeile 67: | ||
== Datenzeilen == | == Datenzeilen == | ||
* Punktangabe siehe [[MWT Syntax-Punktidentifikation und Flags|Punktidentifikation]]; Transformationen gehören zu den Makros '''ohne VMA-Spalte''' in Neupunkten (<code>NV | * Punktangabe siehe [[MWT Syntax-Punktidentifikation und Flags|Punktidentifikation]]; Transformationen gehören zu den Makros '''ohne VMA-Spalte''' in Neupunkten (<code>NV A NR Flags Werte</code>, die Punktart <code>A</code> ist dort Pflicht). | ||
* '''Satz 1''' (Passpunkte, kommagetrennt): jeder Passpunkt braucht beide örtlichen Koordinaten (Fehler 77 bei fehlenden Werten). | * '''Satz 1''' (Passpunkte, kommagetrennt): jeder Passpunkt braucht beide örtlichen Koordinaten (Fehler 77 bei fehlenden Werten). | ||
* '''Ab Satz 2''' je Satz genau ein Neupunkt mit vollständiger Punktbeschreibung und beiden örtlichen Koordinaten. | * '''Ab Satz 2''' je Satz genau ein Neupunkt mit vollständiger Punktbeschreibung und beiden örtlichen Koordinaten. | ||
| Zeile 126: | Zeile 128: | ||
* Verwandte Makros: [[MWT Syntax-Makro KSTRANSFORMATION|KSTRANSFORMATION]] (Quelle ist ein VermCad-Koordinatensystem statt Wertespalten), [[MWT Syntax-Makro MASCHENTRANSFORMATION|MASCHENTRANSFORMATION/KSMASCHENTRANSFORMATION]] (maschenweise), [[MWT Syntax-Makro VKTRANSFORMATION|VKTRANSFORMATION]] (verkettete Systeme), [[MWT Syntax-Makro GRENZPRUEFUNG|GRENZPRUEFUNG]] (nur Prüfung, keine Neupunkte). | * Verwandte Makros: [[MWT Syntax-Makro KSTRANSFORMATION|KSTRANSFORMATION]] (Quelle ist ein VermCad-Koordinatensystem statt Wertespalten), [[MWT Syntax-Makro MASCHENTRANSFORMATION|MASCHENTRANSFORMATION/KSMASCHENTRANSFORMATION]] (maschenweise), [[MWT Syntax-Makro VKTRANSFORMATION|VKTRANSFORMATION]] (verkettete Systeme), [[MWT Syntax-Makro GRENZPRUEFUNG|GRENZPRUEFUNG]] (nur Prüfung, keine Neupunkte). | ||
* Zugehörige [[MWT Syntax-Globale Optionen|globale Optionen]]: <code>$SP_DEP_TRAFO</code> (Abhängigkeitsausnahme inkl. Trafos, schaltet <code>,NA</code> frei). | * Zugehörige [[MWT Syntax-Globale Optionen|globale Optionen]]: <code>$SP_DEP_TRAFO</code> (Abhängigkeitsausnahme inkl. Trafos, schaltet <code>,NA</code> frei). | ||
* | |||
== Siehe auch == | |||
* [[Rechnen Menü-Das Dialogfenster Transformation|Das Dialogfenster Transformation]] | |||
== Entwicklerhinweise == | == Entwicklerhinweise == | ||
| Zeile 132: | Zeile 136: | ||
'''Quellen im Code:''' | '''Quellen im Code:''' | ||
* VERMCAD\GlobalConsts.pas: | * VERMCAD\GlobalConsts.pas:1640 — <code>kwTransformation</code> | ||
* VERMCAD\VCSCHMWT.PAS: | * VERMCAD\VCSCHMWT.PAS:2241-2269 — <code>ReadTransParameters</code>: P = 3/4/5/6 (Lage), P| = 1/2 (Höhe) | ||
* VERMCAD\VCSCHMWT.PAS: | * VERMCAD\VCSCHMWT.PAS:5513-5525 — eingebettete ENTFERNUNGEN-Sektion; 6570, 6623 — Maß Pflicht + Gewicht | ||
* VERMCAD\VCSCHMWT.PAS: | * VERMCAD\VCSCHMWT.PAS:6656-6681 — Passpunkt-Koordinaten (Pflicht, Fehler 77), Gewicht/GewX, Flags o/v | ||
* VERMCAD\VCSCHMWT.PAS: | * VERMCAD\VCSCHMWT.PAS:6203-6262 — Neupunkte ab Satz 2 (Koordinaten Pflicht) | ||
* VERMCAD\VCSCHMWT.PAS: | * VERMCAD\VCSCHMWT.PAS:3505-3509 — <code>POLAR</code>; 3522-3528 — <code>M</code>; 3173-3191 — <code>GEWX</code>/<code>GEWM</code>; 3631-3635 — <code>CVA</code> | ||
* VERMCAD\VCSCHMWT.PAS: | * VERMCAD\VCSCHMWT.PAS:6819-6825 — keine Bedingungsflags (b/s) in Trafos (Fehler 66) | ||
* VERMCAD\VCCALCVT.PAS: | * VERMCAD\VCCALCVT.PAS:1331-1347 — <code>TTransformation_Base.Init</code>: Default tt_3P für ca_Transformation | ||
* VERMCAD\GlobalTypConsts.pas: | * VERMCAD\GlobalTypConsts.pas:373-378 — <code>ca_PunktIdentWithoutVMA</code> (keine VMA-Spalte) | ||
* VERMCAD\VCSCHMWT.PAS:6228 — Neupunkte über <code>NextPunktIdent</code> → VERMCAD\VcSCheck.pas:1236-1259 <code>NextPunktId</code>: Punktart <code>A</code> wird stets gelesen (alle Ausgaben); VERMCAD\VCSCHMWT.PAS:6396-6465 — Passpunkte in Satz 1: <code>A</code> nur unter <code>{$IFDEF A_NR}</code>, dort optional | |||
{{Hilfe:NachOben}} | {{Hilfe:NachOben}} | ||
[[Kategorie: | [[Kategorie:Blöcke mit Anweisungen (Makros)|TRANSFORMATION]] | ||
Aktuelle Version vom 18. September 2026, 10:39 Uhr
Das Rechenmakro TRANSFORMATION transformiert Punkte aus einem beliebigen (örtlichen) Koordinatensystem über Passpunkte in das System des Auftrags. Der erste Satz enthält die Passpunkte mit ihren örtlichen Koordinaten, die folgenden Sätze die Neupunkte. Eine eingebettete ENTFERNUNGEN-Sektion erlaubt zusätzlich Spannmaße als Beobachtungen.
Syntaxregel
TRANSFORMATION [, KOORDINATENSYSTEM <n> | , LS <n>] [, <Kopf-Parameter>]*
<Passpunkt> { , <Passpunkt> }* ; (Satz 1: Passpunkte)
{ <Neupunkt> ; }* (je Satz ein Neupunkt)
[ ENTFERNUNGEN [, M = <w>]
{ <NV> [<A>] <NR> <NV> [<A>] <NR> <Maß> [<Gew>] [o] ; }* ]
END[;]
<Passpunkt> ::= <NV> [<A>] <NR> <W1> <W2> [<Gew> [<GewX>]] [o] [v]
<Neupunkt> ::= <NV> <A> <NR> <Flags> <W1> <W2>
| Regelelement | Bedeutung |
|---|---|
<A> |
Punktart. Beim Neupunkt steht sie in allen Ausgaben (Pflicht; als Platzhalter genügt x). Beim Passpunkt gibt es sie nur in den Ausgaben für Brandenburg und Berlin, dort ist sie optional; siehe Punktidentifikation
|
<W1> <W2> |
örtliche Koordinaten Y X (Pflicht); mit Kopf-Parameter POLAR stattdessen Hz HD (polare Quellwerte)
|
<Gew> [<GewX>] |
optionales Gewicht des Passpunkts; mit Kopf-Parameter GEWX zusätzlich getrenntes X-Gewicht
|
o |
Passpunkt passiv setzen (nimmt nicht an der Ausgleichung teil, wird nur geprüft) |
v |
Flag Veränderung (Punkt wird als koordinatenmäßig verändert geführt; seit 29.05.2020 auch bei Trafo-Festpunkten) |
<Flags> |
Flags des Neupunkts, üblich x (keine); Bedingungsflags b/s sind in Transformationen nicht zulässig (Fehler 66)
|
ENTFERNUNGEN |
eingebettete Spannmaß-Sektion (ab Satz 2 möglich): je Satz zwei Punkte mit Pflicht-Maß, optional Gewicht; Flag o = Maß nicht verwenden
|
Parameter
Allgemeine Kopf-Parameter (NR =, DATUM =, ZEIT =, PNR =, KN = '…', REM = '…', NE, DEA) siehe Blockkopf-Parameter. Makrospezifisch:
| Parameter | Syntax | Pflicht | Bedeutung | Bundesland |
|---|---|---|---|---|
| Parameterzahl | ,P = 3|4|5|6 |
nein | Transformationstyp: 3 = Kongruenz (Standard), 4 = Helmert/Ähnlichkeit, 5 = 5-Parameter, 6 = Affin. Höhen: ,P| = 1|2 |
alle |
| polare Quelle | ,POLAR |
nein | Quellwerte sind Hz HD statt Y X |
alle |
| Maßstab | ,M = w |
nein | Multiplikator für alle örtlichen Werte (auch reziprok M = 1/0.9987); in Folgesätzen für die ENTFERNUNGEN-Sektion erlaubt |
alle |
| GK-Reduktion | ,GK_RED |
nein | örtliche Werte Gauß-Krüger-reduzieren (auch in Folgesätzen erlaubt) | alle |
| Toleranzen | ,ZP = w / ,ZS = w |
nein | zulässige Punkt- bzw. Spannmaßabweichung | alle |
| Restklaffen | ,VRK / ,VRK = s|s2|s32 |
nein | nachbarschaftstreue Verteilung der Restklaffen | alle |
| Gewichte | ,GEWX / ,GEWM = w |
nein | getrennte X-Gewichte zulassen / Gewichtsmaßstab | alle |
| mittlere Fehler | ,MF_S = w / ,MF_YX = w |
nein | a-priori-Fehler der Spannmaße bzw. der Koordinaten | alle |
| gemeinsame VA | ,CVA |
nein | Transformation verkettet mit der Streckenausgleichung der ENTFERNUNGEN-Sektion rechnen (statt nacheinander) | alle |
| Sortierung | ,SNR_P / ,SX_P / ,SNR_N / ,SX_N |
nein | Passpunkte/Neupunkte nach Nummer bzw. X sortieren | alle |
| Fixierungen | ,FIXM / ,FIXN |
nein | Maßstab bzw. Nachbarschaft fixieren | alle |
| Abhängigkeit | ,NA |
nein | normale Abhängigkeit (nur mit globaler Option $SP_DEP_TRAFO) |
alle |
| BW-Spezifika | ,APA / ,AWS = n |
nein | automatische Punktausscheidung / Auswerteschranke | nur BW |
Datenzeilen
- Punktangabe siehe Punktidentifikation; Transformationen gehören zu den Makros ohne VMA-Spalte in Neupunkten (
NV A NR Flags Werte, die PunktartAist dort Pflicht). - Satz 1 (Passpunkte, kommagetrennt): jeder Passpunkt braucht beide örtlichen Koordinaten (Fehler 77 bei fehlenden Werten).
- Ab Satz 2 je Satz genau ein Neupunkt mit vollständiger Punktbeschreibung und beiden örtlichen Koordinaten.
- ENTFERNUNGEN-Sektion: erster Datensatz je Paar enthält beide Punkte und das gemessene Maß (Pflicht), optional ein Gewicht; wie beim Makro ENTFERNUNGEN, aber als Beobachtung der Ausgleichung.
Beispiele
Hinweis: VermCad ergänzt beim Speichern binäre Codierungszeilen; sie sind hier weggelassen.
Beispiel (Baden-Württemberg, echt — Helmert mit VRK)
TRANSFORMATION, NR = 1, P = 4, GK_RED, VRK, GEWM = 50000.0, DATUM = 16.09.2020, ZEIT = 15:10:34, PNR = 1, REM = 'Datei ws.txt' 0455 218/22 50736.59 70881.81, 0455 218/38 50858.57 70916.22, 0455 220/0 50677.31 71012.43, 0456 471/0 50845.70 71067.51; 0455 2 218/31 x 50778.17 70899.03; 0455 2 218/29 x 50772.10 70908.53; 0455 2 218/30 x 50774.33 70909.72; END
Beispiel (Baden-Württemberg, echt — 5-Parameter, Zahlenriss mit X-Gewichten)
TRANSFORMATION, NR = 2, P = 5, GK_RED, GEWX, DATUM = 16.09.2020, ZEIT = 16:01:17, PNR = 1, KN = '1854/55 S.15', REM = 'Datei linie_4.txt' 0455 V709 0.00 12.32, 0455 V710 0.00 14.15, 0455 218/104 0.00 35.67, 0455 218/105 -68.36 39.54; 0455 2 218/131 x 0.00 38.10; END
Beispiel (polare Quelle, aus der Alt-Dokumentation)
TRANSFORMATION, NR = 8, P = 4, POLAR xx 80 114.3402 81.307, xx 20 18.4710 101.390, xx 30 324.5825 76.239; xx x 4001 x 201.3487 54.230; xx x 4002 x 187.0450 68.540; END
Verfügbarkeit und Besonderheiten
- Verfügbar in allen Bundesland-Versionen; sehr häufig in BW (Zahlenriss-Auswertung), daneben Anhalt, Sachsen, Thüringen, MyMWTs.
- Standard-Transformationstyp ist die Kongruenztransformation (P = 3) — anders als bei KSTRANSFORMATION und GRENZPRUEFUNG (dort P = 4).
- Verwandte Makros: KSTRANSFORMATION (Quelle ist ein VermCad-Koordinatensystem statt Wertespalten), MASCHENTRANSFORMATION/KSMASCHENTRANSFORMATION (maschenweise), VKTRANSFORMATION (verkettete Systeme), GRENZPRUEFUNG (nur Prüfung, keine Neupunkte).
- Zugehörige globale Optionen:
$SP_DEP_TRAFO(Abhängigkeitsausnahme inkl. Trafos, schaltet,NAfrei).
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:1640 —
kwTransformation - VERMCAD\VCSCHMWT.PAS:2241-2269 —
ReadTransParameters: P = 3/4/5/6 (Lage), P| = 1/2 (Höhe) - VERMCAD\VCSCHMWT.PAS:5513-5525 — eingebettete ENTFERNUNGEN-Sektion; 6570, 6623 — Maß Pflicht + Gewicht
- VERMCAD\VCSCHMWT.PAS:6656-6681 — Passpunkt-Koordinaten (Pflicht, Fehler 77), Gewicht/GewX, Flags o/v
- VERMCAD\VCSCHMWT.PAS:6203-6262 — Neupunkte ab Satz 2 (Koordinaten Pflicht)
- VERMCAD\VCSCHMWT.PAS:3505-3509 —
POLAR; 3522-3528 —M; 3173-3191 —GEWX/GEWM; 3631-3635 —CVA - VERMCAD\VCSCHMWT.PAS:6819-6825 — keine Bedingungsflags (b/s) in Trafos (Fehler 66)
- VERMCAD\VCCALCVT.PAS:1331-1347 —
TTransformation_Base.Init: Default tt_3P für ca_Transformation - VERMCAD\GlobalTypConsts.pas:373-378 —
ca_PunktIdentWithoutVMA(keine VMA-Spalte) - VERMCAD\VCSCHMWT.PAS:6228 — Neupunkte über
NextPunktIdent→ VERMCAD\VcSCheck.pas:1236-1259NextPunktId: PunktartAwird stets gelesen (alle Ausgaben); VERMCAD\VCSCHMWT.PAS:6396-6465 — Passpunkte in Satz 1:Anur unter{$IFDEF A_NR}, dort optional