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 Number Radius des Bogens
StartAngle Number Der Winkel von der lokalen x-Achse zum Startpunkt des Bogens. Der Wert kann zwischen 360 und -360 Grad liegen.
endAngle Number 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 point Mittelpunkt des dem Bogen zugrunde liegenden Kreises.
startVector Vector 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 Vector Vektor, der lotrecht zur Bogenebene steht.
diameter Number Durchmesser des Bogens. Dieser kann anstelle des Radius eingegeben werden.
tanArc1 Part 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 Part 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 Part 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 Part 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 point Der Bogen verläuft durch den angegebenen Punkt.
thruPoint2 point Der Bogen verläuft durch den angegebenen Punkt.
thruPoint3 point Der Bogen verläuft durch den angegebenen Punkt.
inside1 Boolean Dieser Parameter legt fest, auf welcher Seite von tanArc1 der Bogen erstellt werden soll. Ist der Wert True, wird der Bogen zur Mitte von tanArc1 hin versetzt. Bei False wird der Bogen von der Mitte von tanArc1 weg versetzt.
inside2 Boolean 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 Boolean Wenn dieser Bogen von tanArc1 und tanArc2 abhängig ist, legt dieser Parameter die Position des Bogenmittelpunkts fest. Dazu wird zwischen den Mittelpunkten von tanArc1 und tanArc2 eine imaginäre Linie gezogen. Wenn onRight1 True ist, wird der Mittelpunkt dieses Bogens auf der rechten Seite dieser Linie platziert. Umgekehrt, wenn onRight1 False ist, wird der Mittelpunkt dieses Bogens auf der linken Seite dieser Linie platziert. Wenn dieser Bogen von tanLine1 abhängig ist, schränkt dieser Parameter den Mittelpunkt 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 Endpunkt 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 Linienvektor.
onRight2 Boolean Wenn dieser Bogen von tanLine2 abhängig ist, schränkt dieser Parameter den Mittelpunkt 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 Endpunkt 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 Linienvektor.

Regeln

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

Methoden

curveParamNearPoint(Punkt p) Zahl: 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 list

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 Number 1
Untergeordneter Name: Arc_2
Untergeordnetes Design: :Arc
Name Typ Angegeben
endAngle Number 230
StartAngle Number 90
diameter Number Arc_1.radius * 3
center point Arc_1.center - Vector(0, Arc_1.radius + Child.radius + 2, 0)
Untergeordneter Name: Arc_3
Untergeordnetes Design: :Arc
Name Typ Angegeben
endAngle Number 20
StartAngle Number 200
diameter Number Arc_1.radius * 4
center point 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 Number 1
center point point(0,-10,0)
Untergeordneter Name: Arc_5
Untergeordnetes Design: :Arc
Name Typ Angegeben
radius Number 0.5
center point point(3,-10.5,0)
Untergeordneter Name: Arc_6
Untergeordnetes Design: :Arc
Name Typ Angegeben
radius Number 1.5
tanArc1 Part Arc_4
tanArc2 Part Arc_5
inside1 Boolean False
inside2 Boolean False
onRight1 Boolean False
Untergeordneter Name: Arc_7
Untergeordnetes Design: :Arc
Name Typ Angegeben
radius Number 2
tanArc1 Part Arc_4
tanArc2 Part Arc_5
inside1 Boolean True
inside2 Boolean False
onRight1 Boolean False

Beispiel 3

Name: Arc_Ex03
Design: acDrawingDocument
Untergeordneter Name: Line_1
Untergeordnetes Design: :Line
Name Typ Angegeben
thruPoint1 point Point(6.74, -8.44, 0)
thruPoint2 point Point(12.73, -12.15, 0)
Untergeordneter Name: Line_2
Untergeordnetes Design: :Line
Name Typ Angegeben
thruPoint1 point Point(12.66, -8.29, 0)
thruPoint2 point Point(6.81, -12.25, 0)
Untergeordneter Name: Arc_8
Untergeordnetes Design: :Arc
Name Typ Angegeben
radius Number 1
tanLine1 Part Line_1
tanLine2 Part Line_2
onRight1 Boolean True
onRight2 Boolean False
Untergeordneter Name: Arc_9
Untergeordnetes Design: :Arc
Name Typ Angegeben
radius Number 2
tanLine1 Part Line_1
tanLine2 Part Line_2
onRight1 Boolean False
onRight2 Boolean True
Untergeordneter Name: Arc_10
Untergeordnetes Design: :Arc
Name Typ Angegeben
radius Number 0.5
tanLine1 Part Arc_8
tanLine2 Part Line_1
onRight1 Boolean True
onRight2 Boolean True
Untergeordneter Name: Arc_11
Untergeordnetes Design: :Arc
Name Typ Angegeben
radius Number 0.5
tanLine1 Part Arc_9
tanLine2 Part Line_1
onRight1 Boolean False
onRight2 Boolean True

Beispiel 4

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