Add Linear Dimension2
Demonstrates how to add a linear dimension from two points given an offset point.
partial class Examples
{
public static Rhino.Commands.Result AddLinearDimension2(Rhino.RhinoDoc doc)
{
Point3d origin = new Point3d(1,1,0);
Point3d offset = new Point3d(11,1,0);
Point3d pt = new Point3d((offset.X-origin.X)/2,3,0);
Plane plane = Plane.WorldXY;
plane.Origin = origin;
double u,v;
plane.ClosestParameter(origin, out u, out v);
Point2d ext1 = new Point2d(u, v);
plane.ClosestParameter(offset, out u, out v);
Point2d ext2 = new Point2d(u, v);
plane.ClosestParameter(pt, out u, out v);
Point2d linePt = new Point2d(u, v);
LinearDimension dimension = new LinearDimension(plane, ext1, ext2, linePt);
if (doc.Objects.AddLinearDimension(dimension) != Guid.Empty)
{
doc.Views.Redraw();
return Rhino.Commands.Result.Success;
}
return Rhino.Commands.Result.Failure;
}
}
import Rhino
import scriptcontext
import System.Guid
def AddLinearDimension2():
origin = Rhino.Geometry.Point3d(1,1,0)
offset = Rhino.Geometry.Point3d(11,1,0)
pt = Rhino.Geometry.Point3d((offset.X-origin.X)/2.0,3,0)
plane = Rhino.Geometry.Plane.WorldXY
plane.Origin = origin
rc, u, v = plane.ClosestParameter(origin)
ext1 = Rhino.Geometry.Point2d(u,v)
rc, u, v = plane.ClosestParameter(offset)
ext2 = Rhino.Geometry.Point2d(u,v)
rc, u, v = plane.ClosestParameter(pt)
linePt = Rhino.Geometry.Point2d(u,v)
dimension = Rhino.Geometry.LinearDimension(plane, ext1, ext2, linePt)
if scriptcontext.doc.Objects.AddLinearDimension(dimension)!=System.Guid.Empty:
scriptcontext.doc.Views.Redraw()
return Rhino.Commands.Result.Success
return Rhino.Commands.Result.Failure
if __name__=="__main__":
AddLinearDimension2()
