Add Truncated Cone
Demonstrates how to construct a truncated cone (TCone) from two circles.
partial class Examples
{
public static Rhino.Commands.Result AddTruncatedCone(Rhino.RhinoDoc doc)
{
Point3d bottom_pt = new Point3d(0,0,0);
const double bottom_radius = 2;
Circle bottom_circle = new Circle(bottom_pt, bottom_radius);
Point3d top_pt = new Point3d(0,0,10);
const double top_radius = 6;
Circle top_circle = new Circle(top_pt, top_radius);
LineCurve shapeCurve = new LineCurve(bottom_circle.PointAt(0), top_circle.PointAt(0));
Line axis = new Line(bottom_circle.Center, top_circle.Center);
RevSurface revsrf = RevSurface.Create(shapeCurve, axis);
Brep tcone_brep = Brep.CreateFromRevSurface(revsrf, true, true);
if( doc.Objects.AddBrep(tcone_brep) != Guid.Empty )
{
doc.Views.Redraw();
return Rhino.Commands.Result.Success;
}
return Rhino.Commands.Result.Failure;
}
}
import Rhino
import scriptcontext
import System.Guid
def AddTruncatedCone():
bottom_pt = Rhino.Geometry.Point3d(0,0,0)
bottom_radius = 2
bottom_circle = Rhino.Geometry.Circle(bottom_pt, bottom_radius)
top_pt = Rhino.Geometry.Point3d(0,0,10)
top_radius = 6
top_circle = Rhino.Geometry.Circle(top_pt, top_radius)
shapeCurve = Rhino.Geometry.LineCurve(bottom_circle.PointAt(0), top_circle.PointAt(0))
axis = Rhino.Geometry.Line(bottom_circle.Center, top_circle.Center)
revsrf = Rhino.Geometry.RevSurface.Create(shapeCurve, axis)
tcone_brep = Rhino.Geometry.Brep.CreateFromRevSurface(revsrf, True, True)
if scriptcontext.doc.Objects.AddBrep(tcone_brep)!=System.Guid.Empty:
scriptcontext.doc.Views.Redraw()
return Rhino.Commands.Result.Success
return Rhino.Commands.Result.Failure
if __name__=="__main__":
AddTruncatedCone()
