Zum Inhalt springen

MWT Syntax-Makro AUSGLEICHGERADEN: Unterschied zwischen den Versionen

Aus VermCAD Hilfe Wiki
MWT-Syntax-Referenz: regelbasierte Seite aus Task MWT_Syntax (Quellen: Compiler-Code + Bestands-MWTs)
 
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:MWT Syntax-Makro AUSGLEICHGERADEN}}
{{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 = &lt;w&gt;</code> || nein || zulässige Punktabweichung (Blockvorgabe; je Gerade über den ZP-Satz überschreibbar) || alle
| ZP || <code>, ZP = &lt;w&gt;</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.
* Sind zwei Geraden vorhanden und ein Punkt nur in einer davon mit <code>b</code> gerückt, gibt VermCad einen Hinweis (wahrscheinlich vergessene zweite Bedingung).
* 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]].
* Alt-Dokumentation: [[MWT-Blöcke mit Anweisungen (Makros)-Das Makro AUSGLEICHGERADEN|Das Makro AUSGLEICHGERADEN]].


== Quellen im Code ==
== Siehe auch ==
* VERMCAD\VcEditorUtils.pas:2072 — Keyword-Zuordnung <code>ID[kAusgleichGeraden] := kwAusgleichGeraden</code>
* [[Rechnen Menü-Das Dialogfenster Ausgleichende Geraden|Das Dialogfenster Ausgleichende Geraden]]
* VERMCAD\VCSCHMWT.PAS:5531-5544 — Dreiergruppen-Zählung, Komma = neue Gerade, <code>ZP = w;</code>-Zusatzsatz; 3952-3958 — leere Sätze erhöhen den Satzzähler
 
* VERMCAD\VCSCHMWT.PAS:6437-6440 — wahlweiser Wert <code>&lt;mf&gt;</code> je Geradenpunkt (dk_MFa)
== Entwicklerhinweise ==
* VERMCAD\VCSCHMWT.PAS:6499-6553 — Flags <code>b</code>/<code>s</code>/<code>o</code> in der Geradendefinition
''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:2701-2715 — Zuordnung: mod 3 = 0 Gerade (+ZP), 1 Startpunkt, 2 Endpunkt
 
* VERMCAD\VCCALCVT.PAS:51-97, 836-1027 — <code>TAusgleichGeradenItem</code>: Lotfußpunkt bei einer, Geradenschnitt bei zwei <code>b</code>-Bedingungen, Start-/Endpunkt-Koordinaten
'''Quellen im Code:'''
* VERMCAD\VCPUNKT.PAS:29790 ff. — <code>TDataPunkte.AusgleichGerade</code>: Gewichtung 1/mf², Ausschluss passiver Punkte (<code>o</code>)
* 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>&lt;mf&gt;</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:MWT Syntax]]
[[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 b muss 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 b 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 NE im Makrokopf (im Dialogfenster Fehler aus) oder der globalen Option $NE erscheint 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; ErrTolZP wird zu Beginn jedes Satzes zurückgesetzt, ein ZP 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 <mf> je Geradenpunkt (dk_MFa)
  • VERMCAD\VCSCHMWT.PAS:6776-6830 — Flags b/s/o 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 — TAusgleichGeradenItem: Lotfußpunkt bei einer, Geradenschnitt bei zwei b-Bedingungen, Start-/Endpunkt-Koordinaten; 997-1007 caMisCondition (nicht fatal, GlobalTypes.pas:1116; mit NE nur Hinweis), Text VCCALCVT.PAS:824-833 (TAusgleichGeradenItem.GetErrorMessage)
  • VERMCAD\VCPUNKT.PAS:29822 ff. — TDataPunkte.AusgleichGerade: Gewichtung 1/mf², Ausschluss passiver Punkte (o)



[Nach oben]