I am trying to set the color of a cylinder I created using python. Cylinder is created, but the color does not change.
Here is the script. Any help is appreciated.
import Rhino
import utility as rhutil
import scriptcontext
import System.Guid
import re
import math
import time
import sys
import System.Windows.Forms.DialogResult
import System.IO.File
import object as rhobject
from scriptcontext import doc
import Rhino.UI
import rhinoscriptsyntax
import System.Drawing.Color
import System.Enum
import System.Array
import System.Windows.Forms
from view import __viewhelper
import os
def AddCylinder(base, height, radius, cap=True):
"""
Adds a cylinder-shaped polysurface to the document
Parameters:
base = The 3D base point of the cylinder or the base plane of the cylinder
height = if base is a point, then height is a 3D height point of the cylinder. The height
point defines the height and direction of the cylinder. If base is a plane, then height
is the numeric height value of the cylinder
radius = radius of the cylinder
cap[opt] = cap the cylinder
Returns:
identifier of new object if successful
None on error
"""
cylinder=None
height_point = rhutil.coerce3dpoint(height)
if( height_point!=None ):
#base must be a point
base = rhutil.coerce3dpoint(base)
if( base!=None ):
normal = height_point-base
plane = Rhino.Geometry.Plane(base, normal)
height = normal.Length
circle = Rhino.Geometry.Circle(plane, radius)
cylinder = Rhino.Geometry.Cylinder(circle, height)
else:
#base must be a plane
base = rhutil.coerceplane(base)
if( base!=None ):
circle = Rhino.Geometry.Circle(base, radius)
cylinder = Rhino.Geometry.Cylinder(circle, height)
if( cylinder==None ): return scriptcontext.errorhandler()
brep = cylinder.ToBrep(cap, cap)
id = scriptcontext.doc.Objects.AddBrep(brep)
if( id==System.Guid.Empty ):
return scriptcontext.errorhandler()
return id
"""
scriptcontext.doc.Views.Redraw()
"""
x = 20.
y = 30.
thickness = .5
radius = .5
base = Rhino.Geometry.Point3d(x, y, thickness)
top = Rhino.Geometry.Point3d(x, y, thickness+.1)
scyl = AddCylinder(base, top, radius)
rhinoscriptsyntax.ObjectColor(scyl,(25,50,255))