ArcMixin

Synopsis

This design does not define any geometry, but it contains all the rules and methods used to constrain a part that has arc geometry.

Mixins

ArcMixinModifier

Canonicals

Name Type Description
radius number Radius of the arc.

Parameters

Name Type Description
startAngle number Angle from the local X axis to the start of the arc. The value can range between 360 and -360 degrees.
endAngle number Angle from the local X axis to the end of the arc. The value can range between 360 and -360 degrees and does not have to be greater than startAngle.
center point Center point of the underlying circle used to create the arc.
startVector vector Radial vector used to specify an axis used to measure the start and end angles from. By default this is the local x axis (1,0,0).
topdir vector Vector normal to the plane of the arc.
diameter number Diameter of the arc. This can be input in place of the radius.
tanArc1 part This parameter is used when constraining this arc to be tangent to another arc. Used in conjunction with parameters inside1 and onRight1, to fully constrain the arc.
tanArc2 part This parameter is used when constraining this arc to be tangent to another arc. Used in conjunction with parameters inside2 and onRight2, to fully constrain the arc.
tanLine1 part This parameter is used when constraining this arc to be tangent to a line. Used in conjunction with the parameter onRight1, to fully constrain the arc.
tanLine2 part This parameter is used when constraining this arc to be tangent to a line. Used in conjunction with the parameter onRight2, to fully constrain the arc.
thruPoint1 point Constrains the arc to pass through the specified point .
thruPoint2 point Constrains the arc to pass through the specified point .
thruPoint3 point Constrains the arc to pass through the specified point .
inside1 boolean This parameter determines on which side of tanArc1 this arc is located. A value of True will offset this arc toward the center of tanArc1. False will offset this arc away from the center of tanArc1.
inside2 boolean This parameter determines on which side of tanArc2 this arc is located. A value of True will offset this arc toward the center of tanArc2. False will offset this arc away from the center of tanArc2.
onRight1 boolean If this arc is constrained by tanArc1 and tanArc2, this parameter is used to specify the location of the center of this arc. An imaginary line is constructed between the tanArc1 and tanArc2 center points . If onRight1 is True , this arc's center is to the right if the line. Conversely, if onRight1 is false , this arc's center is to the left of the line. When this arc is being constrained by tanLine1, this parameter is used to constrain the center point of this arc. If the value of onRight1 is True , then the center of this arc is placed on the right side of tanLine1. To determine which is the right side of the line, a vector is created from the start to the end point of the line. If a point is on the right, a vector from the start of the line to the point in question will have a negative angle with respect to the line vector .
onRight2 boolean When this arc is being constrained by tanLine2, this parameter is used to constrain the center point of this arc. If the value of onRight2 is True , then the center of this arc is placed on the right side of tanLine2. To determine which is the right side of the line, a vector is created from the start to the end point of the line. If a point is on the right, a vector from the start of the line to the point in question will have a negative angle with respect to the line vector .

Rules

Name Type Description
arc number The absolute value of the angle of the arc, from the startAngle to the endAngle.
endPoint point Point at the endAngle of the arc.
startPoint point Point at the startAngle of the arc.
midPoint point Point on the arc between startAngle and endAngle.
protocols string  
normal vector Normal vector of the arc. It is always the z-axis of the local frame.
curveStartParam number Start parameter of the arc curve. The value is the startAngle.
curveStartParamName name Name of the curve start parameter. The value is :startAngle.
curveEndParam number End parameter of the arc curve. The value is the endAngle.
curveEndParamName name Name of the curve end parameter. The value is :endAngle.
curveClosed? boolean  

Methods

curveParamNearPoint( p As Point ) As Number
Finds the angle that has a point on the curve nearest the input point p.

Group Rules

<diameter> Calculates the radius from the input diameter.

<center> Creates the local frame of the arc from the parent frame, and places at this center.

<startVector topdir> Calculates the local frame from the startVector and topdir.

<tanLine1 tanLine2 onRight1 onRight2> Calculates the location of the arc if it is tangent to two lines.

<tanArc1 tanArc2 inside1 inside2 onRight1> Calculates the location of the arc if it is constrained by being tangent to two arcs.

<center inside1 tanArc1> Calculates the radius of the arc if it is constrained to be tangent to an arc and has a specified center.

<center tanLine1> Calculates the radius of the arc if it is constrained to be tangent to a line and has a specified center.

<inside1 onRight1 onRight2 tanArc1 tanLine1> Calculates the location of the arc if it is tangent to both a line and an arc.

<thruPoint1 thruPoint2 onRight1> Calculates the location of the arc if it is constrained to pass through two points , and the center is either right or left of a line passing through the two points .

<thruPoint1 thruPoint2 thruPoint3> Calculates the radius and location of the arc if it is constrained to pass through three points .

<thruPoint1 tanLine1 onRight1> Calculates the location of the arc if it is constrained to be tangent to a line and passes through a point .

Example 1

Name : arcMixin_Ex01
Design : ArcMixin acDrawingDocument
Name Type Formula
od number 2
id number 0.8 * od
endAngle number 15
radius number 1.5
Child Name : outer_circle
Child Design : :Arc
Name Type Supplied
center point startPoint
diameter number od
topdir vector RotateVector(Vector(0, -1, 0), startAngle, Vector(0, 0, 1))
startVector vector RotateVector(Vector(1, 0, 0), startAngle, Vector(0, 0, 1))
Child Name : outer_solid
Child Design : :RevolvedSolid
Name Type Supplied
angle number abs(endAngle - startAngle)
curves list {outer_circle}
direction vector topdir
origin point center
Child Name : inner_circle
Child Design : :Arc
Name Type Supplied
center point outer_circle.center
diameter number id
topdir vector outer_circle.topdir
startVector vector outer_circle.startVector
Child Name : inner_solid
Child Design : :RevolvedSolid
Name Type Supplied
angle number outer_solid.angle
curves list {inner_circle}
direction vector topdir
origin point center
Child Name : result
Child Design : :BooleanSolid
Name Type Supplied
components list {outer_solid, inner_solid}
operation name :Difference

Example 2

Name : arcMixin_Ex02
Design : acDrawingDocument
Name Type Formula
od number 2.0
id number 1.5
Child Name : elbow_1
Child Design : :arcMixin_Ex01
Name Type Supplied
id number id
od number od
endAngle number 60
radius number 5
center point Point(0, 0, Child.radius)
ReferenceFrame frame frameXY(Child.center, Vector(0, 0, -1), Vector(1, 0, 0))
Child Name : elbow_2
Child Design : :arcMixin_Ex01
Name Type Supplied
id number id
od number od
endAngle number 180
radius number 2.5
center point elbow_1.endPoint - (elbow_1.normal * Child.radius)
referenceFrame frame