MWT Syntax-Makro LINIENELEMENTE: 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) MWT-Syntax-Referenz: regelbasierte Seite aus Task MWT_Syntax (Quellen: Compiler-Code + Bestands-MWTs) |
||
| Zeile 1: | Zeile 1: | ||
{{DISPLAYTITLE: | {{DISPLAYTITLE:LINIENELEMENTE}} | ||
Das Rechenmakro LINIENELEMENTE ermittelt die Linienelemente (örtliche kartesische Koordinaten: Abszisse und Ordinate) von Punkten bezüglich einer Geraden. Punkte können zusätzlich in die Linie gerückt werden (Flag <code>b</code>); sie erhalten dann als Bedingungskoordinate ihren Lotfußpunkt auf der Linie. | Das Rechenmakro LINIENELEMENTE ermittelt die Linienelemente (örtliche kartesische Koordinaten: Abszisse und Ordinate) von Punkten bezüglich einer Geraden. Punkte können zusätzlich in die Linie gerückt werden (Flag <code>b</code>); sie erhalten dann als Bedingungskoordinate ihren Lotfußpunkt auf der Linie. | ||
| Zeile 108: | Zeile 108: | ||
{{Hilfe:NachOben}} | {{Hilfe:NachOben}} | ||
[[Kategorie:MWT Syntax| | [[Kategorie:MWT Syntax-Blöcke mit Anweisungen (Makros)|LINIENELEMENTE]] | ||
Version vom 20. Juli 2026, 14:00 Uhr
Das Rechenmakro LINIENELEMENTE ermittelt die Linienelemente (örtliche kartesische Koordinaten: Abszisse und Ordinate) von Punkten bezüglich einer Geraden. Punkte können zusätzlich in die Linie gerückt werden (Flag b); sie erhalten dann als Bedingungskoordinate ihren Lotfußpunkt auf der Linie.
Syntaxregel
LINIENELEMENTE [, KOORDINATENSYSTEM <n> | , LS <n>] [, <Kopf-Parameter>]*
<NV> [<A>] <NR> [<MassX>|x [<MassY>]] {, <NV> [<A>] <NR> [<MassX>|x [<MassY>]]}+ ; (Satz 1: Gerade, 2+ Punkte)
{ <NV> [<A>] <NR> ['b'|'s'] {, <NV> [<A>] <NR> ['b'|'s']}* ; }* (Elementpunkte)
END
| Regelelement | Bedeutung |
|---|---|
| Satz 1 | Definition der Geraden nach Bogen- und Liniendefinition: mindestens zwei Punkte, kommagetrennt, Abschluss mit ;. Bei mehr als zwei Punkten rechnet VermCad mit der ausgleichenden Geraden.
|
<MassX> |
wahlweises Maß je Geradenpunkt (Anlege-/Endmaß bzw. Station); x = Fehlwert. Sind Anlege- und Endmaß gegeben, gehen sie in die Ergebnisdarstellung als gemessene Strecke ein.
|
<MassY> |
wahlweises seitliches Maß (Ordinate) je Geradenpunkt; verschiebt die Linie parallel/verschwenkt sie (nur bei genau zwei Geradenpunkten zulässig). |
b |
Kleinbuchstabe nach der Punktnummer (durch Leerzeichen getrennt): Punkt wird in die Linie gerückt und erhält die Bedingungskoordinate seines Lotfußpunkts (Flag B / cfCurveCoo). |
s |
wie b, zusätzlich wird die gerückte Koordinate als Sollwert gekennzeichnet.
|
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 |
| B | , B |
nein | alle Elementpunkte des Blocks werden in die Linie gerückt (globale Variante des Flags b) |
alle |
| ALL | , ALL |
nein | alle Punkte des Projekts werden berücksichtigt; dann folgt nur die Geradendefinition, keine Elementpunkt-Sätze | alle |
| ZS | , ZS = <w> |
nein | zulässige Spannmaßabweichung (Vergleich gemessene/gerechnete Strecke) | alle |
| ZP | , ZP = <w> |
nein | zulässige Punktabweichung beim Rücken | alle |
| NETZ | , NETZ |
nein | berechnete Punkte dem Netz als Anschlusspunkte bereitstellen | alle |
Datenzeilen
- Ab dem zweiten Datensatz folgen die Elementpunkte; Trennung beliebig mit Komma (innerhalb eines Satzes) oder Semikolon (neuer Satz).
- Kein Punkt darf doppelt in den Elementpunkten stehen (Fehler „Punkt bereits verwendet").
- Elementpunkte sind bestehende, koordinierte Punkte; das Makro erzeugt keine Neupunkte (dafür KLEINPUNKTE bzw. MESSLINIE verwenden).
Beispiele
Beispiel (allgemein, aus der Alt-Dokumentation)
LINIENELEMENTE, NR = 4
xx 3001 1.41,
xx 3000 32.75; { Anlege- und Endmaß kann auch entfallen }
xx 3057 b, { Punkt wird in die Linie gerückt }
xx 3121,
xx 3098 b; { Punkt wird in die Linie gerückt }
xx 3097,
xx 3079;
END
Beispiel (Sachsen, echt)
LINIENELEMENTE, NR = 3, DEA, DATUM = 22.05.2006, ZEIT = 07:49:24 09 439 , 06 1101 ; 06 1083; END
Die binären Codierungszeilen ergänzt VermCad automatisch; sie sind hier weggelassen.
Beispiel mit Option ALL
LINIENELEMENTE, NR = 4, ALL
xx 3001 1.41, { Alle Punkte des Projektes }
xx 3000 32.75; { bezogen auf diese Linie }
END
Verfügbarkeit und Besonderheiten
- Verfügbar in allen Bundesland-Versionen; in echten Projekten v. a. Sachsen, Thüringen, Anhalt, BRB.
- Geradheitsnachweis: ohne
bwerden nur die örtlichen Elemente (Ordinatenabweichungen) protokolliert, Koordinaten bleiben unverändert. - Für Punkte auf einem Kreisbogen statt einer Geraden: BOGENELEMENTE. Für das erzwungene Einrücken aller Punkte: EINFLUCHTEN_GERADE (neu seit 03.07.2026; dort ist
,ALLnicht erlaubt). - Alt-Dokumentation: Das Makro LINIENELEMENTE.
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:2064 — Keyword-Zuordnung
ID[kLinienElement] := kwLinienElemente - VERMCAD\VCSCHMWT.PAS:2924-2932 — Kopf-Option
,B(CurveCoo global); 3638-3643 —,ALL(nur LINIENELEMENTE); 3281-3306 —,ZS - VERMCAD\VCSCHMWT.PAS:6312-6330, 6355-6369 — Maße der Geradenpunkte (MassX, MassY) im 1. Satz
- VERMCAD\VCSCHMWT.PAS:6499-6553 — Flags
b/shinter Elementpunkten (cfCurveCoo, ifDesiredYX) - VERMCAD\VCDCHMWT.PAS:2642-2699 — Übernahme in
TCurveItem(Satz 1 = InsertCurve mit Maßen, Folgesätze = InsertItems); 790-803 — mindestens zwei Punkte für die Gerade - VERMCAD\VCCALC.PAS:272-288 —
TLinienElement; VCCALCBA.PAS:6646 ff. —Calc_Line(seitliche Maße, ausgleichende Gerade)