FEMAG Script Language (FSL)
Objekt- / Funktionsbeschreibung

Objekt- / Funktionsbeschreibung


[Scalar:] Abstände

Abstand zweier Punkte

<number> = Scalar:Distance(<point>, <point>)

Abstände von Punkt zu Punkt sind immer positiv

Abstand zwischen einem Punkt und einer Geraden

<number> = Scalar:Distance(<point>, <line>)

Ergebnis ist positiv, wenn der Punkt in Fahrtrichtung rechts der Geraden liegt
Ergebnis ist negativ, wenn der Punkt in Fahrtrichtung links der Geraden liegt

Abstand zwischen einem Punkt und einem Kreis

<number> = Scalar:Distance(<point>, <circle>)

Ergebnis ist positiv, wenn der Punkt ausserhalb des Kreises liegt
Ergebnis ist negativ, wenn der Punkt innerhalb des Kreises liegt


[Scalar:] Winkel

Winkel zwischen zwei Geraden

<number> = Scalar:Angle(<line_1, line_2>)

Ergebnis ist der erforderliche Winkel, um <line_1> fahrtrichtungsgleich auf <line_2> zu drehen (-180° <= Ergebnis < 180°).


[Point:] Direkte Erstellung

Definition über x/y-Koordinaten

<point> = Point:Create(<number_1>, <number_2>)

<number_1>

:

x-Koordinate

<number_2>

:

y-Koordinate


[Point:] Schnittpunkte

Schnittpunkt zweier Geraden

<point> = Point:Intersection(<line>, <line>)

Schnittpunkt zwischen einer Geraden und einem Kreis

<point> = Point:Intersection(<line>, <circle>, <number>)

<number>   = 1

:

Auswahl des ersten Schnittpunktes in Fahrtrichtung der Geraden

<number>   = 2

:

Auswahl des zweiten Schnittpunktes in Fahrtrichtung der Geraden

Schnittpunkt zweier Kreise

<point> = Point:Intersection(<circle_1>, <circle_2>, <number>)

Bezugsgerade ist die Verbindungsgerade zwischen den Mittelpunkten von <circle_1> und <circle_2>

<number>   = 1

:

Auswahl des Schnittpunktes rechts in Fahrtrichtung der Bezugsgeraden

<number>   = 2

:

Auswahl des Schnittpunktes links in Fahrtrichtung der Bezugsgeraden


[Point:] Lotpunkte

Lotfusspunkt des Lotes durch einen Punkt auf eine Gerade

<point> = Point:Perpendicular(<point>, <line>)

[Point:] Fluchtpunkte

Fluchtpunkt auf der gedachten Verbindungsgerade zweier Punkte

<point> = Point:Align(<point_1>, <point_2>, <number>)

Die Lage des Fluchtpunktes wird über <number> eingestellt.

<number>   < 0

:

der neue Punkt liegt vor <point_1>

<number>   = 0

:

der neue Punkt liegt auf <point_1>

0 <   <number>   < 1

:

der neue Punkt liegt zwischen <point_1> und <point_2>

<number>   = 1

:

der neue Punkt liegt auf <point_2>

<number>   > 1

:

der neue Punkt liegt hinter <point_2>


[Point:] Spiegelpunkte

Spiegelpunkte an Geraden

<point_a>, <point_b>, ... = Point:Mirror(<line_1> [, <line_2>, ...], <point_1> [, <point_2>, ...])

Es werden alle Punkte in ihrer vorgegebenen Reihenfolge an allen Geraden in deren vorgegebener Reihenfolge gespiegelt. Die Parameterübergabe kann gemischt erfolgen.
Beispiel:

pa, pb, pc, pd = fml.Point:Mirror(g1, p1, p2, g2)

pa → p1 gespiegelt an g1
pb → p2 gespiegelt an g1
pc → p1 gespiegelt an g2
pd → p2 gespiegelt an g2


[Point:] Tangentenpunkte

Tangentenpunkt von einem Punkt an einen Kreis

<point> = Point:Tangent(<point>, <circle>, <number>)

Bezugsgerade ist die Verbindungsgerade vom Punkt zum Kreismittelpunkt

<number>   = 1

:

Tangentenpunkt liegt in Fahrtrichtung rechts der Bezugsgeraden

<number>   = 2

:

Tangentenpunkt liegt in Fahrtrichtung links der Bezugsgeraden

Tangentenpunkt zwischen zwei Kreisen

<point> = Point:Tangent(<circle_1>, <circle_2>, <number>)

Bezugsgerade ist die Verbindungsgerade vom Mittelpunkt des <circle_1> zum Mittelpunkt des <circle_2>

<number>   = 1

:

TP liegt auf <circle_1> und in Fahrtrichtung rechts der Bezugsgeraden

<number>   = 2

:

TP liegt auf <circle_2> und in Fahrtrichtung rechts der Bezugsgeraden

<number>   = 3

:

TP liegt auf <circle_2> und in Fahrtrichtung links der Bezugsgeraden

<number>   = 4

:

TP liegt auf <circle_1> und in Fahrtrichtung links der Bezugsgeraden


[Line:] Direkte Erstellung

Definition über zwei Punkte

<line> = Line:Create(<point_1>, <point_2>)

Die Gerade verläuft in Richtung von <point_1> nach <point_2>

Definition über einen Punkt und einen Winkel [ab FML Version 0.32]
<line> = Line:Create(<point>, <number>)

Die Gerade verläuft durch <point> und schließt dabei den Winkel <number> mit der lokalen x-Achse ein.


[Line:] Lotgeraden

Lotgerade durch einen Punkt auf eine Gerade

<line> = Line:Perpendicular(<point>, <line>)

Die Lotgerade verläuft in Richtung von <point> nach <line>

Lotgerade auf der gedachten Verbindungslinie zweier Punkte [ab FML Version 0.32]
<line> = Line:Perpendicular(<point_1>, <point_2>, <number>)

Die Lotgerade verläuft um 90° gegenüber der Verbindungsgeraden von <point_1> nach <point_2> im Gegenuhrzeigersinn gedreht. Dabei erfüllt <number> den gleichen Zweck wie im Befehl Point:Align (bei Wahl von <number> = 0.5 wird beispielsweise die Mittelsenkrechte der Verbindungsgeraden von <point_1> nach <point_2> gebildet).


[Line:] Parallele Geraden

Parallelgerade durch einen Punkt

<line> = Line:Parallel(<line>, <point>)

Die Richtung der Parallelgeraden ist gleich der Richtung der Ausgangsgeraden

Parallelgerade mit vorgegebenem Abstand

<line> = Line:Parallel(<line>, <number>)

Die Richtung der Parallelgeraden ist gleich der Richtung der Ausgangsgeraden

<number>   > 0

:

Parallelgerade liegt in Fahrtrichtung rechts der Ausgangsgeraden

<number>   < 0

:

Parallelgerade liegt in Fahrtrichtung links der Ausgangsgeraden


[Circle:] Direkte Erstellung

Definition über Mittelpunkt und Radius

<circle> = Circle:Create(<point>, <number>)

Definition über drei Punkte auf der Peripherie [ab FML Version 0.32]
<circle> = Circle:Create(<point>, <point>, <point>)