MWT Syntax-Makro AUSGLEICHGERADEN: 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: Dateiname vor Zeilenangaben ergänzt, die hinter einer anderen Unit standen |
||
| (6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
{{DISPLAYTITLE: | {{DISPLAYTITLE:AUSGLEICHGERADEN}} | ||
Das Rechenmakro AUSGLEICHGERADEN berechnet eine oder mehrere ausgleichende Geraden über beliebig viele Punkte (gewichtete Ausgleichung). Punkte mit Bedingung <code>b</code> werden auf die ausgeglichene Gerade gelotet; steht ein Punkt mit <code>b</code> in zwei Geraden, erhält er den Schnittpunkt beider ausgeglichener Geraden als Bedingungskoordinate. | Das Rechenmakro AUSGLEICHGERADEN berechnet eine oder mehrere ausgleichende Geraden über beliebig viele Punkte (gewichtete Ausgleichung). Punkte mit Bedingung <code>b</code> werden auf die ausgeglichene Gerade gelotet; steht ein Punkt mit <code>b</code> in zwei Geraden, erhält er den Schnittpunkt beider ausgeglichener Geraden als Bedingungskoordinate. | ||
| Zeile 40: | Zeile 40: | ||
| NA || <code>, NA</code> || nein || normale Abhängigkeitsbehandlung des Makros (keine Ausnahmeregel für Durchfluchtung) || alle | | NA || <code>, NA</code> || nein || normale Abhängigkeitsbehandlung des Makros (keine Ausnahmeregel für Durchfluchtung) || alle | ||
|- | |- | ||
| ZP || <code>, ZP = <w></code> || nein || zulässige Punktabweichung | | ZP || <code>, ZP = <w></code> || nein || wird im Makrokopf zwar angenommen, aber nicht ausgewertet: VermCad setzt den Wert vor der ersten Geraden zurück. Die zulässige Punktabweichung gibt man je Gerade über den ZP-Satz an || alle | ||
|- | |- | ||
| NETZ || <code>, NETZ</code> || nein || berechnete Punkte dem Netz bereitstellen || alle | | NETZ || <code>, NETZ</code> || nein || berechnete Punkte dem Netz bereitstellen || alle | ||
| Zeile 94: | Zeile 94: | ||
== Verfügbarkeit und Besonderheiten == | == Verfügbarkeit und Besonderheiten == | ||
* Verfügbar in allen Bundesland-Versionen; in echten Projekten v. a. Sachsen und Thüringen, daneben Anhalt, BW, BRB, Berlin. | * Verfügbar in allen Bundesland-Versionen; in echten Projekten v. a. Sachsen und Thüringen, daneben Anhalt, BW, BRB, Berlin. | ||
* | * Steht ein Punkt in zwei Geraden, ist aber nur in einer davon mit <code>b</code> gerückt, meldet VermCad den Fehler ''Punkt wurde in andere Gerade gerückt. Die aktuelle Gerade geht nicht durch diesen Punkt !'' (wahrscheinlich vergessene zweite Bedingung), und die Berechnung hält an. Mit <code>NE</code> im Makrokopf (im Dialogfenster ''Fehler aus'') oder der globalen Option <code>$NE</code> erscheint die Meldung nur als Hinweis, und VermCad rechnet weiter. | ||
* Für Lotfußpunkte als '''eigene Neupunkte''' (statt Rücken des Originalpunkts) siehe [[MWT Syntax-Makro LOTFUSSPUNKTE|LOTFUSSPUNKTE]]. | * Für Lotfußpunkte als '''eigene Neupunkte''' (statt Rücken des Originalpunkts) siehe [[MWT Syntax-Makro LOTFUSSPUNKTE|LOTFUSSPUNKTE]]. | ||
== Quellen im Code | == Siehe auch == | ||
* VERMCAD\VcEditorUtils.pas: | * [[Rechnen Menü-Das Dialogfenster Ausgleichende Geraden|Das Dialogfenster Ausgleichende Geraden]] | ||
* VERMCAD\VCSCHMWT.PAS: | |||
* VERMCAD\VCSCHMWT.PAS: | == Entwicklerhinweise == | ||
* VERMCAD\VCSCHMWT.PAS: | ''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.'' | ||
* VERMCAD\VCDCHMWT.PAS: | |||
* VERMCAD\VCCALCVT.PAS: | '''Quellen im Code:''' | ||
* VERMCAD\VCPUNKT.PAS: | * VERMCAD\VcEditorUtils.pas:2077 — Keyword-Zuordnung <code>ID[kAusgleichGeraden] := kwAusgleichGeraden</code> | ||
* VERMCAD\VCSCHMWT.PAS:5790-5804, 6186-6190 — Dreiergruppen-Zählung, Komma = neue Gerade, <code>ZP = w;</code>-Zusatzsatz; <code>ErrTolZP</code> wird zu Beginn jedes Satzes zurückgesetzt, ein <code>ZP</code> im Makrokopf (gelesen 5152) erreicht die Übernahme deshalb nicht; 3968-3977 — leere Sätze erhöhen den Satzzähler | |||
* VERMCAD\VCSCHMWT.PAS:6697-6700 — wahlweiser Wert <code><mf></code> je Geradenpunkt (dk_MFa) | |||
* VERMCAD\VCSCHMWT.PAS:6776-6830 — Flags <code>b</code>/<code>s</code>/<code>o</code> in der Geradendefinition | |||
* VERMCAD\VCDCHMWT.PAS:2703-2717 — Zuordnung: mod 3 = 0 Gerade (+ZP), 1 Startpunkt, 2 Endpunkt | |||
* VERMCAD\VCCALCVT.PAS:52-97, 913-1055 — <code>TAusgleichGeradenItem</code>: Lotfußpunkt bei einer, Geradenschnitt bei zwei <code>b</code>-Bedingungen, Start-/Endpunkt-Koordinaten; 997-1007 <code>caMisCondition</code> (nicht fatal, GlobalTypes.pas:1116; mit <code>NE</code> nur Hinweis), Text VCCALCVT.PAS:824-833 (<code>TAusgleichGeradenItem.GetErrorMessage</code>) | |||
* VERMCAD\VCPUNKT.PAS:29822 ff. — <code>TDataPunkte.AusgleichGerade</code>: Gewichtung 1/mf², Ausschluss passiver Punkte (<code>o</code>) | |||
{{Hilfe:NachOben}} | {{Hilfe:NachOben}} | ||
[[Kategorie: | [[Kategorie:Blöcke mit Anweisungen (Makros)|AUSGLEICHGERADEN]] | ||
Aktuelle Version vom 21. September 2026, 09:21 Uhr
Das Rechenmakro AUSGLEICHGERADEN berechnet eine oder mehrere ausgleichende Geraden über beliebig viele Punkte (gewichtete Ausgleichung). Punkte mit Bedingung b werden auf die ausgeglichene Gerade gelotet; steht ein Punkt mit b in zwei Geraden, erhält er den Schnittpunkt beider ausgeglichener Geraden als Bedingungskoordinate.
Syntaxregel
AUSGLEICHGERADEN [, KOORDINATENSYSTEM <n> | , LS <n>] [, <Kopf-Parameter>]*
{ (je ausgleichender Geraden:)
<NV> [<A>] <NR> [<mf>] ['b'|'s'|'o'] {, <NV> [<A>] <NR> [<mf>] ['b'|'s'|'o']}+ ; (Punkte der Geraden)
[ ZP = <w> ; ] (wahlweise: Punkttoleranz dieser Geraden)
[ <PBS-Startpunkt> ; ] (wahlweise: Neupunkt am Geradenanfang)
[ <PBS-Endpunkt> ; ] (wahlweise: Neupunkt am Geradenende)
}+
END
| Regelelement | Bedeutung |
|---|---|
| Punkte der Geraden | kurze Punktidentifikation, kommagetrennt, Abschluss ;. Ein Satz mit Komma gilt stets als neue Geradendefinition — dadurch dürfen ZP-, Start- und Endpunktsatz einfach entfallen.
|
<mf> |
wahlweiser Zahlenwert je Punkt = mittlerer Fehler a priori; der Punkt geht mit Gewicht 1/mf² in die Ausgleichung ein. |
b |
Punkt wird auf die ausgeglichene Gerade gelotet (Bedingungskoordinate). Steht derselbe Punkt mit b in genau zwei Geraden des Makros, erhält er den Schnittpunkt beider Geraden. Mehr als zwei b-Bedingungen je Punkt sind ein Fehler.
|
s |
wie b, zusätzlich Kennzeichnung als Sollwert.
|
o |
Punkt nimmt nicht an der Ausgleichung teil (passiv); er wird nur protokolliert. |
| Start-/Endpunkt | je ein einzelner Punkt (vollständige Punktbeschreibung, ohne Komma im Satz); erhält als Bedingungskoordinate den Anfangs- bzw. Endpunkt der ausgeglichenen Geraden (Lotfußpunkte des ersten/letzten aktiven Punktes). |
Parameter
Allgemeine Kopf-Parameter (NR =, DATUM =, ZEIT =, PNR =, KN = '…', REM = '…', NE, DEA) siehe Blockkopf-Parameter. Makrospezifisch:
| Parameter | Syntax | Pflicht | Bedeutung | Bundesland |
|---|---|---|---|---|
| KOORDINATENSYSTEM / LS | , KOORDINATENSYSTEM <n> bzw. , LS <n> |
nein | Berechnung in anderem Koordinatensystem bzw. Lagestatus | alle |
| NA | , NA |
nein | normale Abhängigkeitsbehandlung des Makros (keine Ausnahmeregel für Durchfluchtung) | alle |
| ZP | , ZP = <w> |
nein | wird im Makrokopf zwar angenommen, aber nicht ausgewertet: VermCad setzt den Wert vor der ersten Geraden zurück. Die zulässige Punktabweichung gibt man je Gerade über den ZP-Satz an | alle |
| NETZ | , NETZ |
nein | berechnete Punkte dem Netz bereitstellen | alle |
Datenzeilen
- Die Sätze werden intern in Dreiergruppen je Gerade gezählt: Geradendefinition — Startpunkt — Endpunkt. Der Satz
ZP = w;unmittelbar nach einer Geradendefinition zählt nicht mit (reiner Zusatz). - Leere Sätze (nur
;) rücken den Satzzähler weiter und können Start-/Endpunkt-Plätze überspringen; einfacher ist es, direkt die nächste Geradendefinition (Satz mit Komma) folgen zu lassen. - Ein Punkt mit
bmuss in der Geradendefinition selbst stehen; die gerückte Koordinate ersetzt seine bisherige nur nach den üblichen Bedingungsregeln (Flag B).
Beispiele
Beispiel (allgemein, aus der Alt-Dokumentation — Punkt 5 im Schnitt zweier Geraden)
AUSGLEICHGERADEN, NR = 1,
xx 4 ,
xx 5 b,
xx 3 ; { Definition erste Gerade }
xx 1 ,
xx 5 b,
xx 2 ; { Definition zweite Gerade }
END
Beispiel (Thüringen, echt — mit Gewichtsspalte und Start-/Endpunkt)
AUSGLEICHGERADEN, NR = 168,
DATUM = 15.09.2015,
ZEIT = 15:12:07,
PNR = 3,
KN = 'Birkenhügel-Lerchenhügel Feldriß 15 vom 11.06.1921',
REM = 'Flst 125/96-119/96'
49 20740 0.0000,
49 10203 22.5500,
49 10202 28.6000,
49 10258 53.3000,
49 10257 77.7500,
49 10256 102.3000,
49 10255 126.2500,
49 10254 150.4500,
49 10250 167.5500;
xx 1 49-20740 000 x ; { Startpunkt der ausgeglichenen Geraden }
xx 1 49-10250 000 x ; { Endpunkt der ausgeglichenen Geraden }
END
Die binären Codierungszeilen ergänzt VermCad automatisch; sie sind hier weggelassen.
Verfügbarkeit und Besonderheiten
- Verfügbar in allen Bundesland-Versionen; in echten Projekten v. a. Sachsen und Thüringen, daneben Anhalt, BW, BRB, Berlin.
- Steht ein Punkt in zwei Geraden, ist aber nur in einer davon mit
bgerückt, meldet VermCad den Fehler Punkt wurde in andere Gerade gerückt. Die aktuelle Gerade geht nicht durch diesen Punkt ! (wahrscheinlich vergessene zweite Bedingung), und die Berechnung hält an. MitNEim Makrokopf (im Dialogfenster Fehler aus) oder der globalen Option$NEerscheint die Meldung nur als Hinweis, und VermCad rechnet weiter. - Für Lotfußpunkte als eigene Neupunkte (statt Rücken des Originalpunkts) siehe LOTFUSSPUNKTE.
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\VcEditorUtils.pas:2077 — Keyword-Zuordnung
ID[kAusgleichGeraden] := kwAusgleichGeraden - VERMCAD\VCSCHMWT.PAS:5790-5804, 6186-6190 — Dreiergruppen-Zählung, Komma = neue Gerade,
ZP = w;-Zusatzsatz;ErrTolZPwird zu Beginn jedes Satzes zurückgesetzt, einZPim Makrokopf (gelesen 5152) erreicht die Übernahme deshalb nicht; 3968-3977 — leere Sätze erhöhen den Satzzähler - VERMCAD\VCSCHMWT.PAS:6697-6700 — wahlweiser Wert
<mf>je Geradenpunkt (dk_MFa) - VERMCAD\VCSCHMWT.PAS:6776-6830 — Flags
b/s/oin der Geradendefinition - VERMCAD\VCDCHMWT.PAS:2703-2717 — Zuordnung: mod 3 = 0 Gerade (+ZP), 1 Startpunkt, 2 Endpunkt
- VERMCAD\VCCALCVT.PAS:52-97, 913-1055 —
TAusgleichGeradenItem: Lotfußpunkt bei einer, Geradenschnitt bei zweib-Bedingungen, Start-/Endpunkt-Koordinaten; 997-1007caMisCondition(nicht fatal, GlobalTypes.pas:1116; mitNEnur Hinweis), Text VCCALCVT.PAS:824-833 (TAusgleichGeradenItem.GetErrorMessage) - VERMCAD\VCPUNKT.PAS:29822 ff. —
TDataPunkte.AusgleichGerade: Gewichtung 1/mf², Ausschluss passiver Punkte (o)