Make a Circle with RhinoCommon
This sample creates a circle without using functions in the rhinoscript package.
import math
import Rhino
import scriptcontext
# Use a GetPoint to prompt the user to select a point
# If the user doesn't cancel, this function returns a new Circle
# class instance centered at the selection point with a radius of 1
def GetCircleFromUser():
get_result = Rhino.Input.RhinoGet.GetPoint("Circle center", False)
if( get_result[0] != Rhino.Commands.Result.Success ):
print "error getting point"
return None
pt = get_result[1]
print "Got a point at ", pt
# return a new Circle
return Rhino.Geometry.Circle( pt, 1 )
# Add some points to the document that are on a circle
def MakeCirclePoints( circle, count ):
for i in xrange(count):
#circles parameterized between 0 and 2Pi
t = float(i) * 2 * math.pi / float(count)
print t
pt = circle.PointAt(t)
scriptcontext.doc.Objects.AddPoint(pt)
######################################
# Functions have been defined above - let's execute some script
#
# Here we check to see if this file is being executed as the "main" python
# script instead of being used as a module by some other python script
# This allows us to use the module which ever way we want.
if( __name__ == '__main__' ):
print "Python sample script to make a circle curve and plop some points on it"
circle = GetCircleFromUser()
if circle == None:
print "circle is none"
else:
print "got a circle"
scriptcontext.doc.Objects.AddCircle(circle)
MakeCirclePoints( circle, 10 )
# redraw everything so we can see what we got
scriptcontext.doc.Views.Redraw()
print "Script Complete"