MWT Syntax-Makro KREISGERADESCHNITT
Erscheinungsbild
Das Rechenmakro KREISGERADESCHNITT berechnet den Schnittpunkt eines Kreises mit einer Geraden. Ermittelt wird der Austrittspunkt der Geraden — derjenige Schnittpunkt, der sich vom Lotfußpunkt des Kreismittelpunktes aus in positiver Richtung der Geraden befindet. Der Schnittpunkt erhält die berechnete Koordinate als Bedingungskoordinate.
Syntaxregel
KREISGERADESCHNITT [, KOORDINATENSYSTEM <n> | , LS <n>] [, <Kopf-Parameter>]*
<Kreis-Punkte> ; (Satz 1: 1-3 Punkte der Kreisdefinition)
[ R = <w> ; ] (Satz 2, wahlweise: Radius)
<Gerade> ; (Satz 3: Geradendefinition OHNE Maße)
[ {P <NV> <NR> | V <NV> <NR> | S = <w>} {, ...} ; ] (Satz 4, wahlweise: Verschiebung der Geraden)
<PBS-Schnittpunkt> ; (Satz 5: Punktidentifikation des Schnittpunktes)
END
| Regelelement | Bedeutung |
|---|---|
<Kreis-Punkte> + R = |
Kreisbogendefinition nach Bogen- und Liniendefinition: drei Punkte, zwei Punkte + Radius oder Mittelpunkt + Radius. Der Radius steht als eigener Satz R = w;.
|
<Gerade> |
Geradendefinition (zwei oder mehr kommagetrennte Punkte); Anlege-/Endmaße sind nicht erlaubt. |
P / V / S |
wahlweiser Verschiebesatz der Geraden: P NV NR Parallele durch Punkt, V NV NR Senkrechte durch Punkt, S = w seitliche Verschiebung (positiv = rechts).
|
<PBS-Schnittpunkt> |
Punktidentifikation des Schnittpunktes (Austrittspunkt). |
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 | Ergebnis fürs Netz bereitstellen | alle |
Datenzeilen
- Satz 1: Punkte der Kreisdefinition, kommagetrennt (
NV NR). Bei nur einem Punkt ist dieser der Mittelpunkt (dann Radius Pflicht). - Satz 2 (wahlweise):
R = w;— Radius; negativer Radius = Bogen entgegen dem Uhrzeigersinn. Ist der Kreis durch drei Punkte bereits bestimmt, dient ein zusätzlicher Radius dem Vergleich (Überbestimmung). - Satz 3: Geradendefinition, ohne Maße; die Orientierung (1. → 2. Punkt) legt die positive Richtung und damit den Austrittspunkt fest.
- Satz 4 (wahlweise): Verschiebesatz
P/V/S =für die Gerade. - Satz 5: Punktidentifikation des Schnittpunktes; VMA und Flags wahlweise.
Beispiele
Beispiel (allgemein, aus der Alt-Dokumentation)
KREISGERADESCHNITT, NR = 1
xx 3008; R = 10.14; { Definition des Kreises: Mittelpunkt + Radius }
xx 3001,
xx 3000; P xx 3023; { Definition der Gerade (ohne Maße), parallel durch Punkt 3023 }
xx x 3062 x; { Schnittpunkt }
END
Die binären Codierungszeilen ergänzt VermCad automatisch.
Verfügbarkeit und Besonderheiten
- Verfügbar in allen Bundesland-Versionen; in echten Projekten v. a. in Sachsen, Baden-Württemberg, Thüringen, Sachsen-Anhalt, Brandenburg und Berlin beobachtet.
- Es wird immer der Austrittspunkt berechnet — soll der Eintrittspunkt bestimmt werden, ist die Gerade umgekehrt zu orientieren (Punkte tauschen).
- Der Schnittpunkt erhält eine Bedingungskoordinate.
- Fehlerquelle „Kein Schnitt. Radius zu klein.“: Ein Schnittpunkt existiert nur, wenn der Abstand der (ggf. per
P/V/S =verschobenen) Geraden vom Kreismittelpunkt kleiner als der Radius ist. Ist der Abstand größer als der Radius, verfehlt die Gerade den Kreis und der Compiler bricht mit dieser Meldung ab (Basistext „Kein Schnitt“, Fehler 106). Auch der exakte Tangentenfall (Abstand = Radius) liefert rechnerisch keinen Schnittpunkt, da die PrüfungR² − d² > 0strikt ist. Abhilfe: Kreisdefinition (Radius/Mittelpunkt) und Geradendefinition bzw. Verschiebesatz kontrollieren. - Alt-Dokumentation: Das Makro KREISGERADESCHNITT.
Quellen im Code
- VERMCAD\VcEditorUtils.pas:2078 — Keyword-Zuordnung
ID[kKreisGeradeSchnitt] := kwKreisGeradeSchnitt - VERMCAD\VCSCHMWT.PAS:5486 — Radius-Satz nur als Satz 2 (
RadiusInput) - VERMCAD\VCSCHMWT.PAS:5510 — Verschiebesatz der Geraden nur als Satz 4 (
LineExtInput) - VERMCAD\VCSCHMWT.PAS:5957-5960 — ab Satz 5 Punktidentifikation des Schnittpunktes
- VERMCAD\VCDCHMWT.PAS:2775-2783 — Satzzuordnung: 1 = Kreis, 2 = Radius, 3 = Gerade, 4 = Verschiebung, 5 = Schnittpunkt
- VERMCAD\VCCALC.PAS:7862-7874 —
TSchnitt.SetRadius/InsertSchnittpunkt - VERMCAD\ANALYTIC.PAS:919-936 —
KreisGeradeSchnitt: Ergebnis nur beiR² − d² > 0(d = Abstand Gerade–Mittelpunkt), sonst Fehlwert - VERMCAD\VCCALC.PAS:8331-8345 —
TKreisGeradeSchnitt.CalculateItem: bei FehlwertCalcStatus := caNotIntersection - VERMCAD\VCCALCBA.PAS:2488, VcCompileErrorMessages.pas:146 — Statustext „Kein Schnitt“ (Fehler 106)