How to add your knowledge

Offset Curve <OffsetCurve>

    Table of contents
    1. 1. Synopsis
    2. 2. Mixins
    3. 3. Canonicals
    4. 4. Parameters
    5. 5. Example 1
    6. 6. Example 2

    Synopsis

    This design generates a curve offset from another curve. The input curve must be planar. The offset distance may be positive or negative. The "positive side" of the curve is defined as follows: If sidePoint: is provided, then the side the point is on is the positive side. If planeNormal is provided, then the positive side is defined by the vector cross product of the curve tangent and the planeNormal. This is "to the right" if you travel along the curve with "up" in the planeNormal direction.

    Mixins

    Canonicals

    Name Type Description
    curve part Curve part to offset.
    offsetDistance number Normal distance from the input curve to the new offset curve.

    Parameters

    Name Type Description
    planeNormal vector Normal vector of the plane used to offset the curve. This is only used to determine the side for positive offset distances, and does not need to be strictly perpendicular to the plane of the curve.
    surface part Surface used to compute the offset vectors for the curve. [This is not yet supported]
    fillType name Algorithm used to fill gaps in the offset curve. Default is Fillet, but choices include Fillet, Tangent, or Natural.
    sidePoint point Used to determine the side for positive offset distances. The point on the curve nearest to sidePoint is used to determine the positive side.

    Example 1

    Name: offsetCurve_Ex01
    Design: acDrawingDocument
    Child Name: baseCurve
    Child Design: :SplineCurve
    NameTypeSupplied
    color string "blue"
    pointList list {point(2,-2,0), point(4,5,0), point(6,6,0), point(8,6,0)}
    Child Name: offsetCurve
    Child Design: :OffsetCurve
    NameTypeSupplied
    curve any baseCurve

    Example 2

    Name: offsetCurve_Ex02
    Design: acDrawingDocument
    NameTypeFormula
    ptList list

    Dim i As Integer

    Dim result As List

    For i = 1 To 9

    result = result + _

    {cl.pointAtLength(cl.length / 9 * i)}

    Next i

    Return result

    Child Name: spine
    Child Design: :SplineCurve
    NameTypeSupplied
    color string "blue"
    pointList list {point(5,-4,0), point(7,4,0), point(4,7,0)}
    Child Name: end
    Child Design: :Line
    NameTypeSupplied
    thruPoint1 point spine.endPoint
    thruPoint2 point leg.endPoint
    Child Name: flange
    Child Design: :offsetCurve
    NameTypeSupplied
    curve part spine
    offsetDistance number 0.1
    Child Name: leg
    Child Design: :OffsetCurve
    NameTypeSupplied
    curve part spine
    offsetDistance number 1.0
    Child Name: start
    Child Design: :Line
    NameTypeSupplied
    thruPoint1 point leg.startPoint
    thruPoint2 point spine.startPoint
    Child Name: cl
    Child Design: :OffsetCurve
    NameTypeSupplied
    curve part spine
    offsetDistance number 0.5
    render? boolean false
    Child Name: pt
    Child List?
    Child Design: :Point
    NameTypeSupplied
    quantity integer length(ptList)
    origin point nth(child.index, ptList)
    color string "red"