Arc

Zusammenfassung

Dieses Design definiert auf dem CAD-Hostsystem einen 3D-Drahtkörperbogen. Für die Festlegung der Abhängigkeiten eines Bogens reicht die Angabe des Radius oder Durchmessers aus. Der Start- und der Endwinkel sind relativ zum startVector des Bogens, der vorgabemäßig auf der x-Achse des lokalen Frame liegt. Alle Winkel sind positiv, und der Startwinkel muss nicht kleiner als der Endwinkel sein. Der Bogen verläuft immer gegen den Uhrzeigersinn relativ zur Lotrechten (Rechte-Hand-Regel in einem nach rechts ausgerichteten Koordinatensystem). Die Abhängigkeiten eines Bogens können auch mit der Funktion Trim() bzw. TrimTan() angegeben werden, mit denen Start- und Endwinkel berechnet werden können. Die hierfür erforderliche Syntax (Stutzen einer Kurve) wird in Beispiel 4 gezeigt.

Mixins

ArcMixin

CurveMixin

InkStrokedMixin

Kanonische Werte

Name Typ Beschreibung
Radius Zahl Radius des Bogens
StartAngle Zahl Der Winkel von der lokalen x-Achse zum Startpunkt des Bogens. Der Wert kann zwischen 360 und -360 Grad liegen.
endAngle Zahl Der Winkel von der lokalen x-Achse zum Endpunkt des Bogens. Der Wert kann zwischen 360 und -360 Grad liegen und muss nicht größer als startAngle sein.

Parameter

Name Typ Beschreibung
center Punkt Mittel punkt des dem Bogen zugrunde liegenden Kreises.
startVector Vektor Vektor zur Angabe der Achse, von der aus der Start- und der Endwinkel gemessen werden. Vorgabegemäß ist dies die lokale x-Achse (1,0,0).
topDir Vektor Vektor, der lotrecht zur Bogenebene steht.
diameter Zahl Durchmesser des Bogens. Dieser kann anstelle des Radius eingegeben werden.
tanArc1 Bauteil Dieser Parameter wird verwendet, wenn dieser Bogen tangential zu einem anderen Bogen liegen soll. Als weitere Abhängigkeiten eines solchen Bogens werden die Parameter inside1 und onRight1 verwendet.
tanArc2 Bauteil Dieser Parameter wird verwendet, wenn dieser Bogen tangential zu einem anderen Bogen liegen soll. Als weitere Abhängigkeiten eines solchen Bogens werden die Parameter inside2 und onRight2 verwendet.
tanLine1 Bauteil Dieser Parameter wird verwendet, wenn dieser Bogen tangential zu einer Linie liegen soll. Als weitere Abhängigkeit eines solchen Bogens wird der Parameter onRight1 verwendet.
tanLine2 Bauteil Dieser Parameter wird verwendet, wenn dieser Bogen tangential zu einer Linie liegen soll. Als weitere Abhängigkeit eines solchen Bogens wird der Parameter onRight2 verwendet.
thruPoint1 Punkt Der Bogen verläuft durch den angegebenen Punkt.
thruPoint2 Punkt Der Bogen verläuft durch den angegebenen Punkt.
thruPoint3 Punkt Der Bogen verläuft durch den angegebenen Punkt.
inside1 Boolesche Operation Dieser Parameter legt fest, auf welcher Seite von tanArc1 der Bogen erstellt werden soll. Bei True wird der Bogen zur Mitte von tanArc1 hin versetzt. Bei False wird der Bogen von der Mitte von tanArc1 weg versetzt.
inside2 Boolesche Operation Dieser Parameter legt fest, auf welcher Seite von tanArc2 der Bogen erstellt werden soll. Bei True wird der Bogen zur Mitte von tanArc2 hin versetzt. Bei False wird der Bogen von der Mitte von tanArc2 weg versetzt.
onRight1 Boolesche Operation Wenn dieser Bogen von tanArc1 und tanArc2 abhängig ist, legt dieser Parameter die Position des Bogenmittelpunkts fest. Dazu wird zwischen den Mittel punkten von tanArc1 und tanArc2 eine imaginäre Linie gezogen. Wenn onRight1 True ist, wird der Mittelpunkt dieses Bogens auf der rechten Seite der Linie platziert. Umgekehrt, wenn onRight1 False ist, wird der Mittelpunkt dieses Bogens auf der linken Seite der Linie platziert. Wenn dieser Bogen von tanLine1 abhängig ist, schränkt dieser Parameter den Mittel punkt dieses Bogens ein. Wenn onRight1 True ist, wird der Mittelpunkt dieses Bogens auf der rechten Seite von tanLine1 platziert. Um zu bestimmen, welche Seite der Linie die richtige ist, wird vom Start- zum End punkt der Linie ein Vektor erstellt. Befindet sich ein Punkt auf der rechten Seite, so hat ein Vektor vom Startpunkt der Linie bis zum betreffenden Punkt einen negativen Winkel zum Linien vektor.
onRight2 Boolesche Operation Wenn dieser Bogen von tanLine2 abhängig ist, schränkt dieser Parameter den Mittel punkt dieses Bogens ein. Wenn onRight2 True ist, wird der Mittelpunkt dieses Bogens auf der rechten Seite von tanLine2 platziert. Um zu bestimmen, welche Seite der Linie die richtige ist, wird vom Start- zum End punkt der Linie ein Vektor erstellt. Befindet sich ein Punkt auf der rechten Seite, so hat ein Vektor vom Startpunkt der Linie bis zum betreffenden Punkt einen negativen Winkel zum Linien vektor.

Regeln

Name Typ Beschreibung
arcLength Zahl Die Länge des Bogens von startAngle zu endAngle.
arc Zahl Der absolute Wert des Bogenwinkels von startAngle zu endAngle
endPoint Punkt Punkt beim Winkel endAngle des Bogens

Methoden

curveParamNearPoint( point p ) number: Findet den Winkel, der einen Punkt auf der zum eingegebenen Punkt p nächstliegenden Kurve hat.

Beispiel 1

Name: arc_Ex01
Design: acDrawingDocument
Name Typ Formel
arcAngleList Liste

Dim a As Part

Dim lst As List = {}

For Each a In Me.Children

lst = lst + {a.arc}

Next ' a Return lst

Untergeordneter Name: Arc_1
Untergeordnetes Design: :Arc
Name Typ Angegeben
Radius Zahl 1
Untergeordneter Name: Arc_2
Untergeordnetes Design: :Arc
Name Typ Angegeben
endAngle Zahl 230
StartAngle Zahl 90
diameter Zahl Arc_1.radius * 3
center Punkt Arc_1.center - Vector(0, Arc_1.radius + Child.radius + 2, 0)
Untergeordneter Name: Arc_3
Untergeordnetes Design: :Arc
Name Typ Angegeben
endAngle Zahl 20
StartAngle Zahl 200
diameter Zahl Arc_1.radius * 4
center Punkt Arc_2.center - Vector(0, Arc_2.radius + Child.radius + 2, 0)

Beispiel 2

Name: Arc_Ex02
Design: acDrawingDocument
Untergeordneter Name: Arc_4
Untergeordnetes Design: :Arc
Name Typ Angegeben
Radius Zahl 1
center Punkt point(0,-10,0)
Untergeordneter Name: Arc_5
Untergeordnetes Design: :Arc
Name Typ Angegeben
Radius Zahl 0.5
center Punkt point(3,-10.5,0)
Untergeordneter Name: Arc_6
Untergeordnetes Design: :Arc
Name Typ Angegeben
Radius Zahl 1.5
tanArc1 Bauteil Arc_4
tanArc2 Bauteil Arc_5
inside1 Boolesche Operation False
inside2 Boolesche Operation False
onRight1 Boolesche Operation False
Untergeordneter Name: Arc_7
Untergeordnetes Design: :Arc
Name Typ Angegeben
Radius Zahl 2
tanArc1 Bauteil Arc_4
tanArc2 Bauteil Arc_5
inside1 Boolesche Operation True
inside2 Boolesche Operation False
onRight1 Boolesche Operation False

Beispiel 3

Name: Arc_Ex03
Design: acDrawingDocument
Untergeordneter Name: Line_1
Untergeordnetes Design: :Line
Name Typ Angegeben
thruPoint1 Punkt Point(6.74, -8.44, 0)
thruPoint2 Punkt Point(12.73, -12.15, 0)
Untergeordneter Name: Line_2
Untergeordnetes Design: :Line
Name Typ Angegeben
thruPoint1 Punkt Point(12.66, -8.29, 0)
thruPoint2 Punkt Point(6.81, -12.25, 0)
Untergeordneter Name: Arc_8
Untergeordnetes Design: :Arc
Name Typ Angegeben
Radius Zahl 1
tanLine1 Bauteil Line_1
tanLine2 Bauteil Line_2
onRight1 Boolesche Operation True
onRight2 Boolesche Operation False
Untergeordneter Name: Arc_9
Untergeordnetes Design: :Arc
Name Typ Angegeben
Radius Zahl 2
tanLine1 Bauteil Line_1
tanLine2 Bauteil Line_2
onRight1 Boolesche Operation False
onRight2 Boolesche Operation True
Untergeordneter Name: Arc_10
Untergeordnetes Design: :Arc
Name Typ Angegeben
Radius Zahl 0.5
tanLine1 Bauteil Arc_8
tanLine2 Bauteil Line_1
onRight1 Boolesche Operation True
onRight2 Boolesche Operation True
Untergeordneter Name: Arc_11
Untergeordnetes Design: :Arc
Name Typ Angegeben
Radius Zahl 0.5
tanLine1 Bauteil Arc_9
tanLine2 Bauteil Line_1
onRight1 Boolesche Operation False
onRight2 Boolesche Operation True

Beispiel 4

Name: Arc_Ex04
Design: acDrawingDocument
Name Typ Formel
PlateThickness Zahl 0.125
PinRadius Zahl 0.125
BendRadius Zahl 0.25
PlateWidth Zahl 1.5
Untergeordneter Name: BottomLine
Untergeordnetes Design: :Line
Name Typ Angegeben
thruPoint1 Punkt Me.origin
thruPoint2 Punkt Me.origin + Vector(PlateThickness, 0, 0)
Untergeordneter Name: PinArc
Untergeordnetes Design: :Arc
Name Typ Angegeben
Radius Zahl PinRadius
center Punkt Point(PlateThickness, PlateWidth, 0)
StartAngle Zahl 280
endAngle Zahl TrimTan(Me.Child, InnerBlendArc)
Untergeordneter Name: OuterArc
Untergeordnetes Design: :Arc
Name Typ Angegeben
Radius Zahl PinArc.radius + PlateThickness
center Punkt PinArc.center
StartAngle Zahl 280
endAngle Zahl TrimTan(Me.Child. OuterBlendArc)
Untergeordneter Name: OuterBlendArc
Untergeordnetes Design: :Arc
Name Typ Angegeben
Radius Zahl BendRadius
tanArc1 Bauteil OuterArc
inside1 Boolesche Operation False
onRight1 Boolesche Operation False
tanLine1 Bauteil LeftLine
onRight2 Boolesche Operation True
endAngle Zahl TrimTan(Me.Child, OuterArc)
Untergeordneter Name: LeftLine
Untergeordnetes Design: :Line
Name Typ Angegeben
thruPoint1 Punkt BottomLine.startPoint
dirVector Vektor Vector(0, 1, 0)
end Zahl TrimTan(Me.Child, OuterBlendArc)
Untergeordneter Name: InnerBlendArc
Untergeordnetes Design: :Arc
Name Typ Angegeben
Radius Zahl BendRadius
tanLArc1 Bauteil PinArc
inside1 Boolesche Operation False
onRight1 Boolesche Operation False
tanLine1 Bauteil RightLine
onRight2 Boolesche Operation True
endAngle Zahl TrimTan(Me.Child, PinArc)
Untergeordneter Name: RightLine
Untergeordnetes Design: :Line
Name Typ Angegeben
thruPoint1 Punkt OuterArc.startPoint
dirVector Vektor Vector(0, 1, 0)
end Zahl TrimTan(Me.Child, InnerBlendArc)
Untergeordneter Name: TopLine
Untergeordnetes Design: :Line
Name Typ Angegeben
thruPoint1 Punkt OuterArc.startPoint
thruPoint2 Punkt PinArc.startPoint