Zum Inhalt springen

MWT Syntax-Bogen und Liniendefinition: 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 120: Zeile 120:


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

Version vom 20. Juli 2026, 13:59 Uhr

Viele Rechenmakros (GERADENSCHNITT, KREISGERADESCHNITT, BOGENSCHNITT, BOGENELEMENTE, BOGENPUNKTE, KREIS, LINIENELEMENTE, KLEINPUNKTE, MESSLINIE, LOTFUSSPUNKTE, EINFLUCHTEN_GERADE u. a.) basieren auf denselben geometrischen Grundfiguren Linie/Strecke und Kreisbogen. Diese Figuren werden in allen Makroblöcken in der gleichen Art und Weise angegeben; diese Seite beschreibt die gemeinsamen Definitionsformen zentral.

Syntaxregel

Liniendefinition  ::= <NV> <NR> [<MassX> [<MassY>]] { , <NV> <NR> [<MassX> [<MassY>]] }+ ;
                      [ Verschiebesatz ]

Verschiebesatz    ::= { P <NV> <NR> | V <NV> <NR> | S = <w> } { , ... } ;

Bogendefinition   ::= <NV> <NR> { , <NV> <NR> }*  ;      (1 bis 3 Punkte)
                      [ R = <w> ; ]                       (Radius als eigener Satz)
Regelelement Bedeutung
<NV> <NR> Punktangabe (Nummerierungsverbund + Punktnummer, siehe Punktidentifikation); die Punkte einer Figur werden durch Komma getrennt, der Satz endet mit ;.
<MassX>, <MassY> wahlweise Anlege-/Endmaß (Station auf der Linie) und seitliches Maß hinter der Punktangabe. Nur in Linien-Makros erlaubt (MESSLINIE, LINIENELEMENTE, KLEINPUNKTE, FASSADE, EINFLUCHTEN_GERADE, BOGENELEMENTE, BOGENPUNKTE) — in Schnitt-Makros (GERADENSCHNITT, LOTFUSSPUNKTE, …) unzulässig. x = Fehlwert.
P / V / S Verschiebesatz der Linie (siehe unten); nur in den Makros zulässig, die einen Verschiebesatz unterstützen (GERADENSCHNITT, KREISGERADESCHNITT, LOTFUSSPUNKTE, RICHTUNGSFUSSPUNKTE, KREIS-Tangenten).
R = <w> Radius des Kreisbogens in Metern als eigener Satz nach dem Punktesatz; Vorzeichen siehe unten.

Die Definition einer Linie bzw. Strecke

Eine Linie (Strecke) wird durch mindestens zwei Punkte beschrieben. Der erste Punkt ist der Anfangspunkt, der zweite der Endpunkt; die Strecke ist vom ersten zum zweiten Punkt orientiert und hat damit eine rechte und eine linke Seite.

  xx   3001   1.41,     { Anfangspunkt                               }
  xx   3000  32.75;     { Endpunkt,     Anlege- und Endmaß wahlweise }

Ausgleichende Gerade: Wird eine Linie durch mehr als zwei Punkte definiert, ermittelt VermCad die ausgleichende Gerade. Anfangspunkt der Strecke ist dann der Lotfußpunkt des ersten Punktes auf die ausgleichende Gerade, Endpunkt der Lotfußpunkt des letzten Punktes.

Verschiebesätze (P, V, S)

In einem weiteren, wahlweisen Satz direkt nach der Liniendefinition kann die Strecke verschoben werden. Drei Schlüsselzeichen stehen zur Verfügung:

Zeichen Syntax Bedeutung
P P <NV> <NR> parallele Strecke durch den angegebenen koordinierten Punkt
V V <NV> <NR> vertikale (senkrechte) Strecke durch den angegebenen koordinierten Punkt; die Senkrechte ist nach rechts orientiert und endet im angegebenen Punkt
S S = <w> seitwärts parallel verschobene Strecke um w Meter; positiv = nach rechts, negativ = nach links

Mehrere Angaben sind kommagetrennt kombinierbar und werden in der angegebenen Reihenfolge angewandt:

{ Strecke von xx 3001 nach xx 3000, parallel durch xx 3023 }
  xx     3001,
  xx     3000;  P  xx  3023;

{ Strecke von xx 3001 nach xx 3000, senkrecht durch xx 3025,
  anschließend parallel nach links verschoben um 4.6 m }
  xx     3001,
  xx     3000;  V  xx  3025,  S = -4.6;

Je P- bzw. V-Angabe ist genau ein Punkt zulässig.

Die Definition eines Kreisbogens

Ein Kreisbogen wird definiert durch:

  1. drei Punkte auf der Kreisperipherie,
  2. zwei Punkte auf der Peripherie und Radius,
  3. Mittelpunkt und Radius.

Die Definition besteht aus höchstens zwei Sätzen: Der erste Satz enthält die Punkte (kommagetrennt), der zweite, wahlweise Satz den Radius R = w;.

  • Sind drei Punkte und ein Radius gegeben, wird der angegebene Radius nur mit dem aus den drei Punkten errechneten verglichen (Überbestimmung/Kontrolle); gerechnet wird stets mit dem errechneten Radius.
  • Vorzeichenregel: Ein positiver Radius beschreibt einen Kreisbogen im Uhrzeigersinn, ein negativer einen Bogen entgegen dem Uhrzeigersinn. Sind mindestens zwei Punkte gegeben, ist der Bogen vom ersten in Richtung des zweiten Punktes orientiert.
{ Kreisbogen aus drei Punkten, Radius nur als Kontrolle }
  xx     10505,
  xx     10605,
  xx     10606;  R = -7.07;       { Radius kann hier entfallen }

{ Kreisbogen aus zwei Punkten und gegebenem Radius }
  xx     10505,
  xx     10605;  R = -7.071;

{ Mittelpunkt und Radius }
  xx     10505;  R = 10;

Beispiele

Die Definitionsformen sind bundeslandunabhängig; weitere Beispiele stehen in den Abschnitten oben sowie auf den Seiten der einzelnen Makros.

Beispiel (Linie mit Verschiebesatz)

{ Strecke von xx 3001 nach xx 3000, parallel durch xx 3023 }
  xx     3001,
  xx     3000;  P  xx  3023;

Beispiel (Kreisbogen aus zwei Punkten und Radius)

  xx     10505,
  xx     10605;  R = -7.071;

Verfügbarkeit und Besonderheiten

  • Die Definitionsformen gelten in allen Bundesland-Versionen gleichermaßen.
  • Welche Sätze ein Makro als Radius- bzw. Verschiebesatz akzeptiert, ist an feste Satznummern gebunden (z. B. GERADENSCHNITT: Verschiebesatz als Satz 2 und 4; BOGENSCHNITT: Radiussatz als Satz 2 und 4; KREIS: Verschiebesatz der Tangenten als Satz 5 und 8). Die Details stehen auf der jeweiligen Makro-Seite.
  • Der Radiussatz wird nur erkannt, wenn er mit R = beginnt; ein R ohne = wird als Nummerierungsverbund interpretiert.
  • Alt-Dokumentation: Die geometrischen Figuren in Makros.

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\VCSCHMWT.PAS:5459-5494 — Erkennung des Radiussatzes (RadiusInput, R =-Prüfung, zulässige Satznummern je Makro)
  • VERMCAD\VCSCHMWT.PAS:5507-5517 — Erkennung des Verschiebesatzes (LineExtInput, Zeichen P/V/S, zulässige Satznummern)
  • VERMCAD\VCSCHMWT.PAS:5858-5866 — Lesen des Radiussatzes (R = w;)
  • VERMCAD\VCSCHMWT.PAS:5882-5922 — Lesen des Verschiebesatzes (Kombination mehrerer P/V/S-Angaben, je P/V genau ein Punkt)
  • VERMCAD\VCSCHMWT.PAS:6308-6376 — Anlege-/Endmaße und seitliche Maße (dk_MassX/dk_MassY) nur in Linien-Makros
  • VERMCAD\GlobalConsts.pas:1629, 4151-4153 — Schlüsselzeichen kwR = 'R', ParallelChar = 'P', VerticalChar = 'V', SideChar = 'S'



[Nach oben]