Kreisbewegung
moveCircle3d
moveCircle3d(cx:=LREAL, cy:=LREAL, cz:=LREAL, nx:=LREAL, ny:=LREAL, nz:=LREAL, angle:=LREAL, height:=LREAL)
Kreisbewegung durch Rotation um den Mittelpunkt cx
,cy
,cz
und den Normalenvektor nx
,ny
,nz
um den angegebenen angle
. Wenn height
ungleich Null ist, wird eine Helix beschrieben. Wenn angle
größer als ein Vollkreis ist, wird ein Multiturn-Kreis oder eine Multiturn-Helix beschrieben. Die Drehung wird gemäß der Rechte-Hand-Regel durchgeführt. Die Verwendung eines negativen Winkels oder das Umdrehen der Normalen kehrt die Drehrichtung um. Der Winkelwert wird in der aktuellen Winkeleinheit interpretiert. Die Parameter x
, y
, z
, cx
, cy
, cz
werden in der aktuellen Längeneinheit interpretiert.
Der Radius muss ungleich Null sein. |
Beispiel:
Die resultierende Bahn des folgenden Beispiels ist in Abbildung "BeispielMoveCircle3D" dargestellt. Der Aufruf von moveCircle3D
beschreibt eine spiralförmige Bewegung. Sie beginnt an dem aktuellen Punkt [40,10,0]
. Die Mittelachse der Helix wird durch den Punkt [30,10,0]
und die Richtung [gSin(22.5),0,gCos(22.5)]
definiert. Gegenüber der Normalen der Arbeitsebene [0,0,1]
ist die Achse um 22.5
Grad in X
-Richtung geneigt. Der Winkel von 720+90
Grad beschreibt eine Multiturn-Helix. Sie weist eine Höhe von 30
in Bezug auf die Mittelachse auf. Der Endpunkt der Helix ist nicht explizit programmiert, um Redundanz zu vermeiden. Wenn der Benutzer diese Koordinaten benötigt, können sie, wie gezeigt, mit der Funktion frameGet(…)
abgerufen werden. Die ungefähren Koordinaten sind in der Abbildung "BeispielMoveCircle3D" dargestellt.
{
VAR
x,y,z: LREAL;
END_VAR
!N10 G01 X40 Y10 F6000
moveCircle3D(cx:=30, cy:=10, cz:=0, nx:=gSin(22.5), ny:=0, nz:=gCos(22.5), angle:=720+90, height:=30);
frameGet(x=>x,y=>y,z=>z);
}
M02
Abbildung "BeispielMoveCircle3D".