﻿Curve.RibbonOffset Method (Double, Double, Point3d, Vector3d, Double, Curve[], Surface[])

Offsets a closed curve in the following way: pProject the curve to a plane with given normal. Then, loose Offset the projection by distance + blend_radius and trim off self-intersection. THen, Offset the remaining curve back in the opposite direction by blend_radius, filling gaps with blends. Finally, use the elevations of the input curve to get the correct elevations of the result.

Namespace:  Rhino.Geometry
Assembly:  RhinoCommon (in RhinoCommon.dll)
Since: 7.0
Syntax
```public Curve RibbonOffset(
double distance,
Point3d directionPoint,
Vector3d normal,
double tolerance,
out Curve[] crossSections,
out Surface[] ruledSurfaces
)```

#### Parameters

distance
Type: SystemDouble
The positive distance to offset the curve.
Type: SystemDouble
Positive, typically the same as distance. When the offset results in a self-intersection that gets trimmed off at a kink, the kink will be blended out using this radius.
directionPoint
Type: Rhino.GeometryPoint3d
A point that indicates the direction of the offset. If the offset is inward, the point's projection to the plane should be well within the curve. It will be used to decide which part of the offset to keep if there are self-intersections.
normal
Type: Rhino.GeometryVector3d
A vector that indicates the normal of the plane in which the offset will occur.
tolerance
Type: SystemDouble
Used to determine self-intersections, not offset error.
crossSections
Type: Rhino.GeometryCurve
Contains lines between input and the offset that might be useful as input to Brep.CreateFromSweep or some other surface creation tool.
ruledSurfaces
Type: Rhino.GeometrySurface
Contain ruled surfaces between the input and the parts of the offset that correspond exactly. Note, there will be gaps between these at blends.

#### Return Value

Type: Curve
The offset curve if successful.