Zum Inhalt springen

MWT Syntax-Makro KLOTOIDE: Unterschied zwischen den Versionen

Aus VermCAD Hilfe Wiki
MWT-Syntax-Referenz: regelbasierte Seite aus Task MWT_Syntax (Quellen: Compiler-Code + Bestands-MWTs)
MWT-Syntax-Referenz: regelbasierte Seite aus Task MWT_Syntax (Quellen: Compiler-Code + Bestands-MWTs)
Zeile 1: Zeile 1:
{{DISPLAYTITLE:Makro KLOTOIDE}}
{{DISPLAYTITLE:KLOTOIDE}}
Das Rechenmakro KLOTOIDE berechnet eine Klotoide (Übergangsbogen) zwischen einer Geraden (Anfangstangente) und einem Kreis. Punkte mit örtlichen Klotoidenkoordinaten werden ins übergeordnete System gerechnet.
Das Rechenmakro KLOTOIDE berechnet eine Klotoide (Übergangsbogen) zwischen einer Geraden (Anfangstangente) und einem Kreis. Punkte mit örtlichen Klotoidenkoordinaten werden ins übergeordnete System gerechnet.


Zeile 98: Zeile 98:


{{Hilfe:NachOben}}
{{Hilfe:NachOben}}
[[Kategorie:MWT Syntax|Makro KLOTOIDE]]
[[Kategorie:MWT Syntax-Blöcke mit Anweisungen (Makros)|KLOTOIDE]]

Version vom 20. Juli 2026, 13:59 Uhr

Das Rechenmakro KLOTOIDE berechnet eine Klotoide (Übergangsbogen) zwischen einer Geraden (Anfangstangente) und einem Kreis. Punkte mit örtlichen Klotoidenkoordinaten werden ins übergeordnete System gerechnet.

Syntaxregel

KLOTOIDE [, KOORDINATENSYSTEM <n> | , LS <n>] [, <Kopf-Parameter>]*
  <NV> <NR> { , <NV> <NR> }+ ;          (Satz 1: Gerade = Startrichtung der Klotoide)
  <NV> <NR> ;                           (Satz 2: Mittelpunkt des Endpunktkreises)
  <NV> <NR> ;                           (Satz 3: Endpunkt der Klotoide)
  [ L = <w> ; ]                         (Satz 4: 0 = kurze, sonst lange Klotoide)
  { <PBS-Punkt> <MassX> <MassY> ; }*    (ab Satz 5: Punkte mit Klotoidenkoordinaten)
END
Regelelement Bedeutung
Satz 1 Liniendefinition der Geraden, die die Startrichtung der Klotoide angibt (mindestens 2 Punkte; bei mehr als 2 Punkten ausgleichende Gerade), siehe Bogen- und Liniendefinition. Anlege-/Endmaße sind hier nicht vorgesehen.
Satz 2 Punktangabe des Mittelpunkts des Endpunktkreises (der Kreis, in den die Klotoide einläuft); genau ein Punkt.
Satz 3 Punktangabe des Endpunkts der Klotoide (Punkt auf dem Endpunktkreis); genau ein Punkt. Die Reihenfolge der Sätze 2 und 3 ist zwingend.
L = <w> wahlweiser Satz an Position 4: L = 0 = kürzest mögliche Klotoide im 1. Quadranten (Default, auch wenn der Satz fehlt); jeder andere Wert = lange Klotoide im 2. Quadranten (90°-180°).
<PBS-Punkt> <MassX> <MassY> vollständige Punktidentifikation mit zwei Pflichtwerten: Abszisse und Ordinate im örtlichen Klotoidenkoordinatensystem.

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/Lagestatus alle
ZP , ZP = <w> nein zulässige Punktabweichung alle
NETZ , NETZ nein berechnete Punkte fürs Netz bereitstellen alle

Datenzeilen

  • Die Sätze 1-3 sind Pflicht ("4 Pflichtsätze" inkl. des wahlweisen L =-Satzes an Position 4); die Klotoide wird aus Startgerade, Endpunktkreis-Mittelpunkt und Endpunkt bestimmt (Parameter A, Radius, Bogenlänge werden berechnet).
  • Fehlt L = …;, wird ohne Fehler die kürzere Klotoide angenommen.
  • Ab Satz 5 folgen beliebig viele Punkte, je Satz einer, mit Abszisse und Ordinate (beide Pflicht, Fehlwert x nicht zulässig); die Punkte erhalten die ins übergeordnete System gerechneten Koordinaten.

Beispiele

Beispiel (allgemein, echt aus Testprojekt)

KLOTOIDE, NR = 49,

  DATUM = 21.03.2006,
  ZEIT = 13:09:56,
  PNR = 777

  xx        2364 ,
  xx        2363 ;            { Gerade: Startrichtung der Klotoide }

  xx        8010;             { Mittelpunkt des Endpunktkreises    }
  xx        8020;             { Endpunkt der Klotoide              }

  xx  x     8021  x   B       1.000      1.000;   { Punkt in Klotoidenkoordinaten }
END

Mit ausdrücklicher Wahl der kurzen Klotoide (aus der Alt-Dokumentation):

KLOTOIDE, NR = 5,
  DATUM = 31.07.2006, ZEIT = 15:14:40

  60       20001 ,
  60       20002 ;

  60       20012;
  60       20011;
  L = 0;

  xx  x       10  x   B       0.000      0.000;
END

Die binären Codierungszeilen ergänzt VermCad automatisch.

Verfügbarkeit und Besonderheiten

  • Verfügbar in allen Bundesland-Versionen; in echten Kundenprojekten kaum verbreitet (nur in Test-/Schulungsdateien beobachtet).
  • Der L =-Satz wird nur an Satzposition 4 erkannt; L ohne = würde als Nummerierungsverbund gedeutet.
  • Für Trassierungen mit Klotoiden-Elementen siehe das Makro TRASSE (TR_KLOTHOIDE).
  • Alt-Dokumentation: Das Makro KLOTOIDE.

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:2074 — Keyword-Zuordnung ID[kKlotoide] := kwKlotoide
  • VERMCAD\GlobalConsts.pas:1630 — kwLKlo = 'L' (kurze oder lange Klotoide)
  • VERMCAD\VCSCHMWT.PAS:5496-5500 — Erkennung L = … an Satzposition 4 (Default ohne Fehler: kurze Klotoide)
  • VERMCAD\VCSCHMWT.PAS:5953, 5988-5993 — ab Satz 5 Punkte mit zwei Pflichtwerten (Abszisse/Ordinate)
  • VERMCAD\VCDCHMWT.PAS:2681-2689 — Satzzuordnung: 2 = Items[0] (Kreismittelpunkt), 3 = Items[1] (Endpunkt), 4 = SetLongKlo
  • VERMCAD\VCCALC.PAS:507-528 — TKlotoide mit Strukturkommentar (Gerade, Endpunktkreis, kurze/lange Klotoide)



[Nach oben]