Offset Curve
Demonstrates how to offset curves to one side or another by a distance.
partial class Examples
{
public static Result OffsetCurve(RhinoDoc doc)
{
ObjRef obj_ref;
var rs = RhinoGet.GetOneObject(
"Select Curve", false, ObjectType.Curve, out obj_ref);
if (rs != Result.Success)
return rs;
var curve = obj_ref.Curve();
if (curve == null)
return Result.Nothing;
Point3d point;
rs = RhinoGet.GetPoint("Select Side", false, out point);
if (rs != Result.Success)
return rs;
if (point == Point3d.Unset)
return Result.Nothing;
var curves = curve.Offset(point, Vector3d.ZAxis, 1.0,
doc.ModelAbsoluteTolerance, CurveOffsetCornerStyle.None);
foreach (var offset-curve in curves)
doc.Objects.AddCurve(offset-curve);
doc.Views.Redraw();
return Result.Success;
}
}
from Rhino.DocObjects import ObjectType
from Rhino.Geometry import Point3d, Vector3d, CurveOffsetCornerStyle
from Rhino.Input import RhinoGet
from Rhino.Commands import Result
from scriptcontext import doc
import rhinoscriptsyntax as rs
import System
def RunCommand():
rc, obj_ref = RhinoGet.GetOneObject("Select Curve", False, ObjectType.Curve)
if rc != Result.Success:
return rc
curve = obj_ref.Curve()
if curve == None:
return Result.Nothing
rc, point = RhinoGet.GetPoint("Select Side", False)
if rc != Result.Success:
return rc
if point == Point3d.Unset:
return Result.Nothing
curves = curve.Offset(point, Vector3d.ZAxis, 1.0, doc.ModelAbsoluteTolerance, System.Enum.Parse(CurveOffsetCornerStyle, "None"))
for offset_curve in curves:
doc.Objects.AddCurve(offset_curve)
doc.Views.Redraw()
return Result.Success
if __name__ == "__main__":
RunCommand()
